This commit is contained in:
Athena Funderburg
2026-05-25 07:05:17 +00:00
commit 4b463a3432
682 changed files with 47796 additions and 0 deletions
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABContactAddResponse xmlns="http://www.msn.com/webservices/AddressBook">
<ABContactAddResult>
<guid>{{ contact_uuid }}</guid>
</ABContactAddResult>
</ABContactAddResponse>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABContactDeleteResponse xmlns="http://www.msn.com/webservices/AddressBook"/>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABContactUpdateResponse xmlns="http://www.msn.com/webservices/AddressBook" />
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,54 @@
{% from 'msn:_funcs.xml' import contact_entry, group_entry, generate_me_entry, ab_properties %}
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABFindAllResponse xmlns="http://www.msn.com/webservices/AddressBook">
<ABFindAllResult>
<groups>
{% for group in detail._groups_by_uuid.values() %}
{{ group_entry(group, now) }}
{% endfor %}
</groups>
<contacts>
{% for ctc in detail.contacts.values() %}
{% if ctc.lists.__and__(ContactList.FL) %}
<Contact>
{{ contact_entry(ab_id, ctc, detail, now) }}
</Contact>
{% endif %}
{% endfor %}
{{ generate_me_entry(user, now) }}
</contacts>
<ab>
<abId>{{ ab_id }}</abId>
<abInfo>
<ownerPuid>0</ownerPuid>
<OwnerCID>{{ cid_format(user.uuid, decimal = True) }}</OwnerCID>
<ownerEmail>{{ user.email }}</ownerEmail>
<fDefault>true</fDefault>
<joinedNamespace>false</joinedNamespace>
<IsBot>false</IsBot>
<IsParentManaged>false</IsParentManaged>
<SubscribeExternalPartner>false</SubscribeExternalPartner>
<NotifyExternalPartner>false</NotifyExternalPartner>
<AddressBookType>Individual</AddressBookType>
</abInfo>
<lastChange>{{ now }}</lastChange>
<DynamicItemLastChanged>0001-01-01T00:00:00</DynamicItemLastChanged>
<createDate>{{ date_format(user.date_created) }}</createDate>
<propertiesChanged />
</ab>
</ABFindAllResult>
</ABFindAllResponse>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,270 @@
{% from 'msn:_funcs.xml' import contact_entry, group_entry, generate_me_entry, ab_properties %}
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABFindContactsPagedResponse xmlns="http://www.msn.com/webservices/AddressBook">
<ABFindContactsPagedResult>
{% if ab_id == '00000000-0000-0000-0000-000000000000' %}
<Groups>
{% for group in detail._groups_by_uuid.values() %}
{{ group_entry(group, now) }}
{% endfor %}
</Groups>
{% endif %}
<Contacts>
{% if ab_id == '00000000-0000-0000-0000-000000000000' %}
{% for ctc in detail.contacts.values() %}
{% if ctc.lists.__and__(ContactList.FL) %}
<Contact>
{{ contact_entry(ab_id, ctc, detail, now) }}
</Contact>
{% endif %}
{% endfor %}
{% for circle in circles %}
<Contact>
<contactId>00000000-0000-0000-0009-{{ circle.chat_id }}</contactId>
<contactInfo>
<contactType>Circle</contactType>
<quickName>circle</quickName>
<passportName>00000000-0000-0000-0009-{{ circle.chat_id.upper() }}@hotmail.com</passportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<displayName>{% if circle.memberships[user.uuid].role == CircleRole.Admin %}{{ circle.name }}{% else %}00000000-0000-0000-0009-{{ circle.chat_id.upper() }}@hotmail.com{% endif %}</displayName>
<puid>{{ puid_format(user.uuid) }}</puid>
<CID>{{ cid_format('00000000-0000-0000-0009-' + circle.chat_id, decimal = True) }}</CID>
<IsNotMobileVisible>false</IsNotMobileVisible>
<isMobileIMEnabled>false</isMobileIMEnabled>
<isMessengerUser>false</isMessengerUser>
<isFavorite>false</isFavorite>
<isSmtp>false</isSmtp>
<hasSpace>false</hasSpace>
<spotWatchState>NoDevice</spotWatchState>
<birthdate>0001-01-01T00:00:00</birthdate>
<primaryEmailType>ContactEmailPersonal</primaryEmailType>
<PrimaryLocation>ContactLocationPersonal</PrimaryLocation>
<PrimaryPhone>ContactPhonePersonal</PrimaryPhone>
<IsPrivate>false</IsPrivate>
<IsHidden>true</IsHidden>
<Gender>Unspecified</Gender>
<TimeZone>None</TimeZone>
<NetworkInfoList>
<NetworkInfo>
<DomainId>1</DomainId>
<SourceId>WL</SourceId>
{% if circle.memberships[user.uuid].role != CircleRole.Admin %}
<DomainTag>00000000-0000-0000-0009-{{ circle.chat_id.upper() }}</DomainTag>
<DisplayName>00000000-0000-0000-0009-{{ circle.chat_id.upper() }}</DisplayName>
{% endif %}
<RelationshipType>5</RelationshipType>
<RelationshipState>{{ circle.memberships[user.uuid].state.value }}</RelationshipState>
<RelationshipStateDate>{{ now }}</RelationshipStateDate>
<RelationshipRole>{% if circle.memberships[user.uuid].role == CircleRole.StatePendingOutbound %}4{% else %}0{% endif %}</RelationshipRole>
<NDRCount>0</NDRCount>
{% if circle.memberships[user.uuid].invite_message %}
<InviterMessage>{{ circle.memberships[user.uuid].invite_message }}</InviterMessage>
{% endif %}
<InviterCID>{% if user.uuid == circle.owner_uuid %}0{% else %}{{ cid_format(circle.memberships[user.uuid].inviter_uuid, decimal = True) }}{% endif %}</InviterCID>
{% if circle.memberships[user.uuid].inviter_name %}
<InviterName>{{ circle.memberships[user.uuid].inviter_name }}</InviterName>
{% endif %}
{% if circle.memberships[user.uuid].inviter_email %}
<InviterEmail>{{ circle.memberships[user.uuid].inviter_email }}</InviterEmail>
{% endif %}
<CreateDate>{{ now }}</CreateDate>
<LastUpdated>{{ now }}</LastUpdated>
<PropertiesChanged />
</NetworkInfo>
</NetworkInfoList>
<IsAutoUpdateDisabled>false</IsAutoUpdateDisabled>
<IsShellContact>false</IsShellContact>
<TrustLevel>0</TrustLevel>
<PropertiesChanged />
</contactInfo>
<propertiesChanged />
<fDeleted>false</fDeleted>
<CreateDate>{{ now }}</CreateDate>
<lastChange>{{ now }}</lastChange>
<CreatedBy>96</CreatedBy>
</Contact>
{% endfor %}
{% else %}
{% for membership in circle.memberships.values() %}
<Contact>
<contactId>{{ membership.head.uuid }}</contactId>
<contactInfo>
<contactType>{% if membership.state == CircleState.WaitingResponse or membership.state == CircleState.Rejected or (membership.role == CircleRole.Empty and membership.state == CircleState.Empty) %}LivePending{% else %}Live{% endif %}</contactType>
<quickName>{{ membership.head.email }}</quickName>
<passportName>{{ membership.head.email }}</passportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<displayName>{{ membership.head.email }}</displayName>
<puid>{{ puid_format(user.uuid) }}</puid>
<CID>{{ cid_format(membership.head.uuid, decimal = True) }}</CID>
<IsNotMobileVisible>false</IsNotMobileVisible>
<isMobileIMEnabled>false</isMobileIMEnabled>
<isMessengerUser>false</isMessengerUser>
<isFavorite>false</isFavorite>
<isSmtp>false</isSmtp>
<hasSpace>false</hasSpace>
<spotWatchState>NoDevice</spotWatchState>
<birthdate>0001-01-01T00:00:00</birthdate>
<primaryEmailType>ContactEmailPersonal</primaryEmailType>
<PrimaryLocation>ContactLocationPersonal</PrimaryLocation>
<PrimaryPhone>ContactPhonePersonal</PrimaryPhone>
<IsPrivate>false</IsPrivate>
<IsHidden>false</IsHidden>
<Gender>Unspecified</Gender>
<TimeZone>None</TimeZone>
{% if not (membership.role == CircleRole.Empty or membership.state == CircleState.Empty) %}
<NetworkInfoList>
<NetworkInfo>
<DomainId>1</DomainId>
<SourceId>WL</SourceId>
<RelationshipType>5</RelationshipType>
<RelationshipState>{% if membership.state == CircleState.WaitingResponse %}2{% else %}{{ membership.state.value }}{% endif %}</RelationshipState>
<RelationshipStateDate>{{ now }}</RelationshipStateDate>
<RelationshipRole>{% if membership.role == CircleRole.StatePendingOutbound %}3{% else %}{{ membership.role.value }}{% endif %}</RelationshipRole>
<NDRCount>0</NDRCount>
{% if membership.invite_message %}
<InviterMessage>{{ membership.invite_message }}</InviterMessage>
{% endif %}
<InviterCID>{% if membership.head.uuid == circle.owner_uuid %}0{% else %}{{ cid_format(membership.inviter_uuid, decimal = True) }}{% endif %}</InviterCID>
{% if membership.inviter_name %}
<InviterName>{{ membership.inviter_name }}</InviterName>
{% endif %}
{% if membership.inviter_email %}
<InviterEmail>{{ membership.inviter_email }}</InviterEmail>
{% endif %}
<CreateDate>{{ now }}</CreateDate>
<LastUpdated>{{ now }}</LastUpdated>
<PropertiesChanged />
</NetworkInfo>
</NetworkInfoList>
{% endif %}
<IsAutoUpdateDisabled>false</IsAutoUpdateDisabled>
<IsShellContact>false</IsShellContact>
<TrustLevel>0</TrustLevel>
<PropertiesChanged />
</contactInfo>
<propertiesChanged />
<fDeleted>{% if membership.state == CircleState.Rejected or (membership.state == CircleState.Empty and not membership.role == CircleRole.Empty) %}true{% else %}false{% endif %}</fDeleted>
<CreateDate>{{ now }}</CreateDate>
<lastChange>{{ now }}</lastChange>
<CreatedBy>96</CreatedBy>
</Contact>
{% endfor %}
{% endif %}
{% if ab_id.startswith('00000000-0000-0000-0009-') %}
<Contact>
<contactId>{{ ab_id }}</contactId>
<contactInfo>
<contactType>Me</contactType>
<quickName>{{ ab_id }}</quickName>
<passportName>{{ ab_id }}@live.com</passportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<displayName>{{ ab_id }}@live.com</displayName>
<puid>{{ puid_format(user.uuid) }}</puid>
<CID>{{ cid_format(ab_id, decimal = True) }}</CID>
<IsNotMobileVisible>false</IsNotMobileVisible>
<isMobileIMEnabled>false</isMobileIMEnabled>
<isMessengerUser>false</isMessengerUser>
<isFavorite>false</isFavorite>
<isSmtp>false</isSmtp>
<hasSpace>false</hasSpace>
<spotWatchState>NoDevice</spotWatchState>
<birthdate>0001-01-01T00:00:00</birthdate>
<primaryEmailType>ContactEmailPersonal</primaryEmailType>
<PrimaryLocation>ContactLocationPersonal</PrimaryLocation>
<PrimaryPhone>ContactPhonePersonal</PrimaryPhone>
<IsPrivate>false</IsPrivate>
<Gender>Unspecified</Gender>
<TimeZone>None</TimeZone>
</contactInfo>
<propertiesChanged />
<fDeleted>false</fDeleted>
<lastChange>{{ now }}</lastChange>
</Contact>
{% else %}
{{ generate_me_entry(user, now) }}
{% endif %}
</Contacts>
{% if ab_id == '00000000-0000-0000-0000-000000000000' %}
<CircleResult>
{% if circles %}
<Circles>
{% for circle in circles %}
{% if circle.memberships[user.uuid].state == CircleState.Accepted or circle.memberships[user.uuid].state == CircleState.WaitingResponse %}
<CircleInverseInfo>
<Content>
<Handle>
<Id>00000000-0000-0000-0009-{{ circle.chat_id }}</Id>
</Handle>
<Info>
<Domain>1</Domain>
<HostedDomain>live.com</HostedDomain>
<Type>2</Type>
<MembershipAccess>{{ circle.membership_access }}</MembershipAccess>
<IsPresenceEnabled>true</IsPresenceEnabled>
<RequestMembershipOption>{{ circle.request_membership_option }}</RequestMembershipOption>
<DisplayName>{{ circle.name }}</DisplayName>
<ProfileLastUpdated>0001-01-01T00:00:00</ProfileLastUpdated>
<Changes />
<CreateDate>0001-01-01T00:00:00</CreateDate>
<LastUpdated>{{ now }}</LastUpdated>
</Info>
</Content>
<PersonalInfo>
<MembershipInfo>
<CirclePersonalMembership>
<Role>{{ circle.memberships[user.uuid].role.name }}</Role>
<State>{{ circle.memberships[user.uuid].state.name }}</State>
</CirclePersonalMembership>
</MembershipInfo>
<Name>{{ circle.name }}</Name>
<IsNotMobileVisible>false</IsNotMobileVisible>
<IsFavorite>false</IsFavorite>
<IsFamily>false</IsFamily>
<Changes />
</PersonalInfo>
<Deleted>false</Deleted>
</CircleInverseInfo>
{% endif %}
{% endfor %}
</Circles>
{% endif %}
<CircleTicket>{{ signedticket }}</CircleTicket>
</CircleResult>
{% endif %}
<Ab>
<abId>{{ ab_id }}</abId>
<abInfo>
<ownerPuid>0</ownerPuid>
<OwnerCID>{% if ab_id.startswith('00000000-0000-0000-0009-') %}{{ cid_format(ab_id, decimal = True) }}{% else %}{{ cid_format(user.uuid, decimal = True) }}{% endif %}</OwnerCID>
<ownerEmail>{% if ab_id.startswith('00000000-0000-0000-0009-') %}{{ ab_id }}@live.com{% else %}{{ user.email }}{% endif %}</ownerEmail>
<fDefault>true</fDefault>
<joinedNamespace>false</joinedNamespace>
<IsBot>false</IsBot>
<IsParentManaged>false</IsParentManaged>
<AccountTierLastChanged>0001-01-01T00:00:00</AccountTierLastChanged>
<ProfileVersion>0</ProfileVersion>
<SubscribeExternalPartner>false</SubscribeExternalPartner>
<NotifyExternalPartner>false</NotifyExternalPartner>
<AddressBookType>{{ ab_type }}</AddressBookType>
</abInfo>
<lastChange>{{ now }}</lastChange>
<DynamicItemLastChanged>0001-01-01T00:00:00</DynamicItemLastChanged>
<createDate>{{ date_format(user.date_created) }}</createDate>
<propertiesChanged />
</Ab>
</ABFindContactsPagedResult>
</ABFindContactsPagedResponse>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABGroupAddResponse xmlns="http://www.msn.com/webservices/AddressBook">
<ABGroupAddResult>
<guid>{{ group_id }}</guid>
</ABGroupAddResult>
</ABGroupAddResponse>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABGroupContactAddResponse xmlns="http://www.msn.com/webservices/AddressBook">
<ABGroupContactAddResult>
<guid>{{ contact_uuid }}</guid>
</ABGroupContactAddResult>
</ABGroupContactAddResponse>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABGroupContactDeleteResponse xmlns="http://www.msn.com/webservices/AddressBook"/>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABGroupDeleteResponse xmlns="http://www.msn.com/webservices/AddressBook"/>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABGroupUpdateResponse xmlns="http://www.msn.com/webservices/AddressBook"/>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<BreakConnectionResponse xmlns="http://www.msn.com/webservices/AddressBook"/>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<CreateContactResponse xmlns="http://www.msn.com/webservices/AddressBook">
<CreateContactResult>
<contactId>{{ head.uuid }}</contactId>
<contactInfo>
<contactType>LivePending</contactType>
<quickName>{{ head.email }}</quickName>
<passportName>{{ head.email }}</passportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<displayName>{{ head.email }}</displayName>
<puid>{{ puid_format(user.uuid) }}</puid>
<CID>{{ cid_format(head.uuid, decimal = True) }}</CID>
<IsNotMobileVisible>false</IsNotMobileVisible>
<isMobileIMEnabled>false</isMobileIMEnabled>
<isMessengerUser>false</isMessengerUser>
<isFavorite>false</isFavorite>
<isSmtp>false</isSmtp>
<hasSpace>false</hasSpace>
<spotWatchState>NoDevice</spotWatchState>
<birthdate>0001-01-01T00:00:00</birthdate>
<primaryEmailType>ContactEmailPersonal</primaryEmailType>
<PrimaryLocation>ContactLocationPersonal</PrimaryLocation>
<PrimaryPhone>ContactPhonePersonal</PrimaryPhone>
<IsPrivate>false</IsPrivate>
<IsHidden>false</IsHidden>
<Gender>Unspecified</Gender>
<TimeZone>None</TimeZone>
<IsAutoUpdateDisabled>false</IsAutoUpdateDisabled>
<IsShellContact>false</IsShellContact>
<TrustLevel>0</TrustLevel>
<PropertiesChanged />
</contactInfo>
<propertiesChanged />
<fDeleted>false</fDeleted>
<CreateDate>{{ now }}</CreateDate>
<lastChange>{{ now }}</lastChange>
<CreatedBy>96</CreatedBy>
</CreateContactResult>
</CreateContactResponse>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Can Not Add Yourself </faultstring>
<faultactor>http://www.msn.com/webservices/AddressBook/{{ action_str }}</faultactor>
<detail>
<errorcode xmlns="http://www.msn.com/webservices/AddressBook">CanNotAddYourself</errorcode>
<errorstring xmlns="http://www.msn.com/webservices/AddressBook">Can Not Add Yourself </errorstring>
<machineName xmlns="http://www.msn.com/webservices/AddressBook">BAYABCHWBB133</machineName>
<additionalDetails>
<conflictObjectId>79ACA834-005D-4812-8749-DC976F38BC5D</conflictObjectId>
</additionalDetails>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Contact Already Exists </faultstring>
<faultactor>http://www.msn.com/webservices/AddressBook/{{ action_str }}</faultactor>
<detail>
<errorcode xmlns="http://www.msn.com/webservices/AddressBook">ContactAlreadyExists</errorcode>
<errorstring xmlns="http://www.msn.com/webservices/AddressBook">Contact Already Exists </errorstring>
<machineName xmlns="http://www.msn.com/webservices/AddressBook">BAYABCHWBB133</machineName>
<additionalDetails>
<conflictObjectId>79ACA834-005D-4812-8749-DC976F38BC5D</conflictObjectId>
</additionalDetails>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Contact Does Not Exist </faultstring>
<faultactor>http://www.msn.com/webservices/AddressBook/{{ action_str }}</faultactor>
<detail>
<errorcode xmlns="http://www.msn.com/webservices/AddressBook">ContactDoesNotExist</errorcode>
<errorstring xmlns="http://www.msn.com/webservices/AddressBook">Contact Does Not Exist </errorstring>
<machineName xmlns="http://www.msn.com/webservices/AddressBook">BAYABCHWBB133</machineName>
<additionalDetails>
<conflictObjectId>79ACA834-005D-4812-8749-DC976F38BC5D</conflictObjectId>
</additionalDetails>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Malformed email Argument Email missing '@' character</faultstring>
<faultactor>http://www.msn.com/webservices/AddressBook/ABContactAdd</faultactor>
<detail>
<errorcode xmlns="http://www.msn.com/webservices/AddressBook">BadEmailArgument</errorcode>
<errorstring xmlns="http://www.msn.com/webservices/AddressBook">Malformed email Argument Email missing '@' character</errorstring>
<machineName xmlns="http://www.msn.com/webservices/AddressBook">BAYABCHWBB136</machineName>
<additionalDetails>
<originalExceptionErrorMessage>Malformed email Argument Email missing '@' character</originalExceptionErrorMessage>
</additionalDetails>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Malformed email Argument Email missing '.' character</faultstring>
<faultactor>http://www.msn.com/webservices/AddressBook/ABContactAdd</faultactor>
<detail>
<errorcode xmlns="http://www.msn.com/webservices/AddressBook">BadEmailArgument</errorcode>
<errorstring xmlns="http://www.msn.com/webservices/AddressBook">Malformed email Argument Email missing '.' character</errorstring>
<machineName xmlns="http://www.msn.com/webservices/AddressBook">BAYABCHWBB137</machineName>
<additionalDetails>
<originalExceptionErrorMessage>Malformed email Argument Email missing '.' character</originalExceptionErrorMessage>
</additionalDetails>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Full sync required. Details: Delta syncs disabled.</faultstring>
<faultactor>http://www.msn.com/webservices/AddressBook/{{ faultactor }}</faultactor>
<detail>
<errorcode xmlns="http://www.msn.com/webservices/AddressBook">FullSyncRequired</errorcode>
<errorstring xmlns="http://www.msn.com/webservices/AddressBook">Full sync required. Details: Delta syncs disabled.</errorstring>
<machineName xmlns="http://www.msn.com/webservices/AddressBook">DM2CDP1012622</machineName>
<additionalDetails>
<originalExceptionErrorMessage>Full sync required. Details: Delta syncs disabled.</originalExceptionErrorMessage>
</additionalDetails>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Group Already Exists </faultstring>
<faultactor>http://www.msn.com/webservices/AddressBook/{{ action_str }}</faultactor>
<detail>
<errorcode xmlns="http://www.msn.com/webservices/AddressBook">GroupAlreadyExists</errorcode>
<errorstring xmlns="http://www.msn.com/webservices/AddressBook">Group Already Exists </errorstring>
<machineName xmlns="http://www.msn.com/webservices/AddressBook">BAYABCHWBB131</machineName>
<additionalDetails>
<conflictObjectId>A4D21A8C-AD06-435F-8AB0-64D8B663FB91</conflictObjectId>
</additionalDetails>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Argument Exceeded Allowed Length GroupName exceeded length</faultstring>
<faultactor>http://www.msn.com/webservices/AddressBook/{{ action_str }}</faultactor>
<detail>
<errorcode xmlns="http://www.msn.com/webservices/AddressBook">BadArgumentLength</errorcode>
<errorstring xmlns="http://www.msn.com/webservices/AddressBook">Argument Exceeded Allowed Length GroupName exceeded length</errorstring>
<parameterFault xmlns="http://www.msn.com/webservices/AddressBook">GroupName</parameterFault>
<machineName xmlns="http://www.msn.com/webservices/AddressBook">BAYABCHWBB143</machineName>
<additionalDetails>
<originalExceptionErrorMessage>Argument Exceeded Allowed Length GroupName exceeded length</originalExceptionErrorMessage>
</additionalDetails>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>The Passport user specified is invalid SignInName: {{ email }}</faultstring>
<faultactor>http://www.msn.com/webservices/AddressBook/{{ action_str }}</faultactor>
<detail>
<errorcode xmlns="http://www.msn.com/webservices/AddressBook">InvalidPassportUser</errorcode>
<errorstring xmlns="http://www.msn.com/webservices/AddressBook">The Passport user specified is invalid SignInName: {{ email }}</errorstring>
<machineName xmlns="http://www.msn.com/webservices/AddressBook">BAYABCHWBB137</machineName>
<additionalDetails>
<originalExceptionErrorMessage>The Passport user specified is invalid SignInName: {{ email }}</originalExceptionErrorMessage>
</additionalDetails>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ManageWLConnectionResponse xmlns="http://www.msn.com/webservices/AddressBook">
<ManageWLConnectionResult>
{% if error %}
<clientErrorData>
{{ error }}
</clientErrorData>
{% endif %}
{% if not error %}
<clientErrorData />
<contactId>{% if ab_id == '00000000-0000-0000-0000-000000000000' %}00000000-0000-0000-0009-{{ circle.chat_id }}{% else %}{{ head.uuid }}{% endif %}</contactId>
<contactInfo>
<contactType>{% if ab_id == '00000000-0000-0000-0000-000000000000' %}Circle{% else %}{% if circle.memberships[head.uuid].state == CircleState.WaitingResponse or circle.memberships[head.uuid].state == CircleState.Rejected or (circle.memberships[head.uuid].role == CircleRole.Empty or circle.memberships[head.uuid].state == CircleState.Empty) %}LivePending{% else %}Live{% endif %}{% endif %}</contactType>
<quickName>{% if ab_id == '00000000-0000-0000-0000-000000000000' %}circle{% else %}{{ head.email }}{% endif %}</quickName>
<passportName>{% if ab_id == '00000000-0000-0000-0000-000000000000' %}00000000-0000-0000-0009-{{ circle.chat_id.upper() }}@hotmail.com{% else %}{{ head.email }}{% endif %}</passportName>
<IsPassportNameHidden>false</IsPassportNameHidden>
<displayName>{% if ab_id == '00000000-0000-0000-0000-000000000000' %}{{ circle.name }}{% else %}{{ head.email }}{% endif %}</displayName>
<puid>{{ puid_format(user.uuid) }}</puid>
<CID>{{ cid_format('00000000-0000-0000-0009-' + circle.chat_id, decimal = True) }}</CID>
<IsNotMobileVisible>false</IsNotMobileVisible>
<isMobileIMEnabled>false</isMobileIMEnabled>
<isMessengerUser>false</isMessengerUser>
<isFavorite>false</isFavorite>
<isSmtp>false</isSmtp>
<hasSpace>false</hasSpace>
<spotWatchState>NoDevice</spotWatchState>
<birthdate>0001-01-01T00:00:00</birthdate>
<primaryEmailType>ContactEmailPersonal</primaryEmailType>
<PrimaryLocation>ContactLocationPersonal</PrimaryLocation>
<PrimaryPhone>ContactPhonePersonal</PrimaryPhone>
<IsPrivate>false</IsPrivate>
<IsHidden>{% if ab_id == '00000000-0000-0000-0000-000000000000' %}true{% else %}false{% endif %}</IsHidden>
<Gender>Unspecified</Gender>
<TimeZone>None</TimeZone>
{% if (ab_id == '00000000-0000-0000-0000-000000000000' or ab_id.startswith('00000000-0000-0000-0009-')) and not (circle.memberships[head.uuid].role == CircleRole.Empty or circle.memberships[head.uuid].state == CircleState.Empty) %}
<NetworkInfoList>
<NetworkInfo>
<DomainId>1</DomainId>
<SourceId>WL</SourceId>
{% if ab_id == '00000000-0000-0000-0000-000000000000' and circle.memberships[head.uuid].role != CircleRole.Admin %}
<DomainTag>00000000-0000-0000-0009-{{ circle.chat_id.upper() }}</DomainTag>
<DisplayName>00000000-0000-0000-0009-{{ circle.chat_id.upper() }}</DisplayName>
{% endif %}
<RelationshipType>5</RelationshipType>
<RelationshipState>{% if ab_id.startswith('00000000-0000-0000-0009-') and circle.memberships[head.uuid].state == CircleState.WaitingResponse %}2{% else %}{{ circle.memberships[head.uuid].state.value }}{% endif %}</RelationshipState>
<RelationshipStateDate>{{ now }}</RelationshipStateDate>
<RelationshipRole>{% if ab_id == '00000000-0000-0000-0000-000000000000' %}{% if circle.memberships[head.uuid].role == CircleRole.StatePendingOutbound %}4{% else %}0{% endif %}{% else %}{% if circle.memberships[head.uuid].role == CircleRole.StatePendingOutbound %}3{% else %}{{ circle.memberships[head.uuid].role.value }}{% endif %}{% endif %}</RelationshipRole>
<NDRCount>0</NDRCount>
{% if circle.memberships[head.uuid].invite_message %}
<InviterMessage>{{ circle.memberships[head.uuid].invite_message }}</InviterMessage>
{% endif %}
<InviterCID>{% if head.uuid == circle.owner_uuid %}0{% else %}{{ cid_format(circle.memberships[head.uuid].inviter_uuid, decimal = True) }}{% endif %}</InviterCID>
{% if circle.memberships[head.uuid].inviter_name %}
<InviterName>{{ circle.memberships[head.uuid].inviter_name }}</InviterName>
{% endif %}
{% if circle.memberships[head.uuid].inviter_email %}
<InviterEmail>{{ circle.memberships[head.uuid].inviter_email }}</InviterEmail>
{% endif %}
<CreateDate>{{ now }}</CreateDate>
<LastUpdated>{{ now }}</LastUpdated>
<PropertiesChanged />
</NetworkInfo>
</NetworkInfoList>
{% endif %}
<IsAutoUpdateDisabled>false</IsAutoUpdateDisabled>
<IsShellContact>false</IsShellContact>
<TrustLevel>0</TrustLevel>
<PropertiesChanged />
</contactInfo>
<propertiesChanged />
<fDeleted>false</fDeleted>
<CreateDate>{{ now }}</CreateDate>
<lastChange>{{ now }}</lastChange>
<CreatedBy>96</CreatedBy>
{% endif %}
</ManageWLConnectionResult>
</ManageWLConnectionResponse>
</soap:Body>
</soap:Envelope>
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<ServiceHeader xmlns="http://www.msn.com/webservices/AddressBook">
<Version>15.01.1408.0000</Version>
<CacheKey>12r1:{{ cachekey }}</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>{{ host }}</PreferredHostName>
<SessionId>{{ session_id }}</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<UpdateDynamicItemResponse xmlns="http://www.msn.com/webservices/AddressBook" />
</soap:Body>
</soap:Envelope>