Comprehensive Report
Products | D&B Direct 2.0, D&B Direct Onboard |
Product Code(s) | COMPR |
Level(s) | Standard |
Monitoring Available | No |
Interface | SOAP |
WSDL | download (Embedded format) |
Alternate WSDL | download (MTOM attached) |
Format(s) | XML, JSON |
Service | ReportProduct |
Operation | OrderCompanyProduct |
{version} | 3.2 |
3.2 Released On | April 22, 2016 |
D&B's Comprehensive Report is our most complete risk management report, designed to help you assess new and existing business relationships where the large-dollar and/or long-term nature of the commitment pose a significant risk or opportunity to your business. This report combines the background, payments and financial information from the Business Information Report with the power of D&B's predictive scores and ratings, helping you determine both the current profile and future outlook for an account.
Update History
- August 11, 2023 (ALL SOAP & REST): Enable PDF report for OPAL Unity markets.
- April 21, 2023 (ALL SOAP & REST): Defect fix to support COMPR PDF for Nordic countries (Poland, Norway, Denmark, Sweden, Finland, Faroe Islands, Greenland, Czech Republic, Hungary, Slovakia).
- October 09, 2020 (ALL SOAP & REST):Defect fix to return the proper Chinese characters in BIR, COMPR HTML report of Hongkong, Korea, Singapore, Malaysia and Japan markets.
- August 07, 2020 (ALL SOAP & REST):Defect fix to return the proper Chinese characters in BIR, COMPR HTML report of Taiwan market and TEXT report of China market.
- July 10, 2020 (ALL SOAP & REST):Defect fix to return the proper non ISO-8859-1 language set for BIR/COMPR - HTML report for china (CN) country.
- August 30, 2019 (ALL SOAP & REST):PDF BIR & Comprehensive reports for Asia Pacific(OPAL) countries will be fabricated using HTML report with graphs instead of plain Text report.
- June 3, 2016 (v3.2 SOAP & REST): Comprehensive reports are available in PDF format for all countries except CA and AU.
Report Request
IMPORTANT: Due to a known issue, please do not include request values for SubmittingOfficeID.
Overview
When requesting this feature, a valid D-U-N-S Number for a company, a product (format) preference, and the appropriate product code will be required. For improved performance, include its country code.
A trade up option exists to request data for the headquarters when the requested organization is a branch.
NOTE: When ordering information for organizations located in Germany, customers are required to provide a valid order reason code.
Options exist to specify a report format and/or language, where available. Unless otherwise specified, reports are delivered in English, in a simple text format.
NOTE: Comprehensive reports are available in PDF format for all countries except CA and AU.
Report sample(s):
This report is available in the following languages for the respective countries.
Supported Languages | Supported Formats |
---|---|
United States of America: English | TEXT, PDF, HTML |
Canada: English & French | PDF, HTML |
United Kingdom, Ireland, Italy, San Marino, Spain, Portugal, Andorra, German, Netherlands, Belgium, Luxembourg: English, French, Spanish, German, Portuguese, Italian, Dutch, Belgian Dutch, Belgian French | TEXT, PDF, HTML |
Switzerland, Liechtenstein: English, French, German, Italian | TEXT, PDF, HTML |
Czech Republic, Hungary, Slovakia: English & German | TEXT, PDF, HTML |
Norway, Denmark, Sweden: English | TEXT, PDF, HTML |
Finland, Faroe Islands, Greenland: English & German | TEXT, PDF, HTML |
Austria, Poland: English & German | TEXT, PDF, HTML |
France, French Guiana, Guadeloupe, Monaco, Martinique, Reunion Island: English | TEXT, PDF, HTML |
Albania, Australia, Bosnia-Herzegovina, Croatia, Cyprus, Estonia, Macedonia, Montenegro, Serbia, Slovenia: English | TEXT, PDF, HTML |
Global Availability
The COMPR data layer is available for businesses domiciled in the following countries:
Country | ISO Code |
---|---|
United States of America | US |
Belgium | BE |
France | FR |
Germany | DE |
Italy | IT |
Netherlands | NL |
Portugal | PT |
Spain | ES |
United Kingdom | GB |
Australia | AU |
Andorra | AD |
Canada | CA |
Ireland | IE |
Luxembourg | LU |
Monaco | MC |
San Marino | SM |
Albania | AL |
Armenia | AM |
Azerbaijan | AZ |
Bosnia And Herzegovina | BA |
Bulgaria | BG |
Belarus | BY |
Croatia | HR |
Cyprus | CY |
Turkish Republic of Northern Cyprus | XT |
Estonia | EE |
French Guiana | GF |
Georgia | GE |
Gibraltar | GI |
Greece | GR |
Guadeloupe | GP |
Iceland | IS |
Kazakhstan | KZ |
Kyrgyzstan | KG |
Latvia | LV |
Lithuania | LT |
North Macedonia | MK |
Malta | MT |
Martinique | MQ |
Moldova | MD |
Montenegro | ME |
Reunion Island | RE |
Romania | RO |
Russian Federation | RU |
Serbia | RS |
Slovenia | SI |
Tajhikstan | TJ |
Turkiye | TR |
Turkmenistan | TM |
Ukraine | UA |
Uzbekistan | UZ |
Kosovo | XK |
Data Layer Entitlement
For customers in U.S. and Canadian markets, the API is provisioned for specific collections of products, reports, and/or features (collectively referred to as data layers) for production and trial usage. Entitlement is not required for testing in the sandbox environment.
- This particular report is entitled as "D&B Business Information Report (BIR) & Other D&B Reports" for D&B Direct 2.0 customers.
For customers in the UK, Ireland, Belgium, Netherlands and Luxembourg markets, the API is provisioned as a specific set of data layers for production, trial, and sandbox usage.
- This particular data layer is included in the D&B Direct Onboard 2.0 suite.
Specification
The D&B Direct 2.0 API supports HTTP compression. To utilize this option, add the following line to the header of your request: Accept-Encoding: gzip,deflate
<soapenv:Envelope xmlns:rep="http://services.dnb.com/ReportProductServiceV2.0" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsse:UsernameToken wsu:Id="UsernameToken-6" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:Username>Myusername</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Mypassword</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> <soapenv:Body> <rep:OrderCompanyReportRequest ServiceVersionNumber="3.2"> <TransactionDetail> <ApplicationTransactionID>Sample</ApplicationTransactionID> <TransactionTimestamp>2011-06-17T07:32:12.111+05:30</TransactionTimestamp> <SubmittingOfficeID>123</SubmittingOfficeID> </TransactionDetail> <OrderCompanyReportRequestDetail> <InquiryDetail> <DUNSNumber>804735132</DUNSNumber> <CountryISOAlpha2Code>US</CountryISOAlpha2Code> <OrganizationIdentificationNumberDetail> <OrganizationIdentificationNumber>20</OrganizationIdentificationNumber> <OrganizationIdentificationNumberTypeCode>10</OrganizationIdentificationNumberTypeCode> </OrganizationIdentificationNumberDetail> </InquiryDetail> <ProductSpecification> <DNBProductID>COMPR</DNBProductID> <ProductFormatPreferenceCode>15106</ProductFormatPreferenceCode> <CharacterSetPreferenceCode>123</CharacterSetPreferenceCode> <LanguagePreferenceCode>39</LanguagePreferenceCode> <OrderReasonCode>6332</OrderReasonCode> <TradeUpIndicator>false</TradeUpIndicator> <ReturnOnlyInDateDataIndicator>true</ReturnOnlyInDateDataIndicator> <IncludeAttachmentIndicator>false</IncludeAttachmentIndicator> </ProductSpecification> <ArchiveDetail> <ArchiveProductOptOutIndicator>false</ArchiveProductOptOutIndicator> <ExtendArchivePeriodIndicator>true</ExtendArchivePeriodIndicator> <PortfolioAssetContainerID>1</PortfolioAssetContainerID> </ArchiveDetail> <InquiryReferenceDetail> <CustomerReferenceText>Sample</CustomerReferenceText> </InquiryReferenceDetail> </OrderCompanyReportRequestDetail> </rep:OrderCompanyReportRequest> </soapenv:Body> </soapenv:Envelope>
<soapenv:Envelope xmlns:rep="http://services.dnb.com/ReportProductServiceV2.0" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsse:UsernameToken wsu:Id="UsernameToken-6" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:Username>Myusername</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Mypassword</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> <soapenv:Body> <rep:OrderCompanyReportRequest ServiceVersionNumber="3.2"> <TransactionDetail> <ApplicationTransactionID>Sample</ApplicationTransactionID> <TransactionTimestamp>2011-06-17T07:32:12.111+05:30</TransactionTimestamp> <SubmittingOfficeID>123</SubmittingOfficeID> </TransactionDetail> <OrderCompanyReportRequestDetail> <InquiryDetail> <DUNSNumber>804735132</DUNSNumber> <CountryISOAlpha2Code>US</CountryISOAlpha2Code> <OrganizationIdentificationNumberDetail> <OrganizationIdentificationNumber>20</OrganizationIdentificationNumber> <OrganizationIdentificationNumberTypeCode>10</OrganizationIdentificationNumberTypeCode> </OrganizationIdentificationNumberDetail> </InquiryDetail> <ProductSpecification> <DNBProductID>COMPR</DNBProductID> <ProductFormatPreferenceCode>15106</ProductFormatPreferenceCode> <CharacterSetPreferenceCode>123</CharacterSetPreferenceCode> <LanguagePreferenceCode>39</LanguagePreferenceCode> <OrderReasonCode>6332</OrderReasonCode> <TradeUpIndicator>false</TradeUpIndicator> <ReturnOnlyInDateDataIndicator>true</ReturnOnlyInDateDataIndicator> <IncludeAttachmentIndicator>true</IncludeAttachmentIndicator> </ProductSpecification> <ArchiveDetail> <ArchiveProductOptOutIndicator>false</ArchiveProductOptOutIndicator> <ExtendArchivePeriodIndicator>true</ExtendArchivePeriodIndicator> <PortfolioAssetContainerID>1</PortfolioAssetContainerID> </ArchiveDetail> <InquiryReferenceDetail> <CustomerReferenceText>Sample</CustomerReferenceText> </InquiryReferenceDetail> </OrderCompanyReportRequestDetail> </rep:OrderCompanyReportRequest> </soapenv:Body> </soapenv:Envelope>
Embedded | MTOM | Name | Characteristics |
---|---|---|---|
Y | Y | OrderCompanyReportRequest | Aggregate |
Y | Y | OrderCompanyReportRequest@ServiceVersionNumber | Attribute |
Y | Y | OrderCompanyReportRequest. TransactionDetail | Aggregate, Optional Records information necessary to process this request. |
Y | Y | OrderCompanyReportRequest. TransactionDetail. ApplicationTransactionID | string up to 64 chars., Optional A number assigned by the calling application to uniquely identify this request. |
Y | Y | OrderCompanyReportRequest. TransactionDetail. TransactionTimestamp | dateTime, Optional The date and time when this request was created. When the request is from an intermediary, such as a workflow manager or service bus, this is the date and time when the message was sent to the D&B function, i.e., the date and time when the xml document was created by the requesting intermediary. |
Y | Y | OrderCompanyReportRequest. TransactionDetail. SubmittingOfficeID | string up to 64 chars., Optional A number that identifies the system or the software application from where this request originated. / A number used to uniquely identfy the D&B business segment or delivery channel from where this request originated. |
Y | Y | END: OrderCompanyReportRequest. TransactionDetail | /Aggregate |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail | Aggregate, Optional Records data relating to requests for a product. This may include such details as the product required, the subject about which the product should be produced, the content of the product. |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. InquiryDetail | Aggregate, Required Records data that allows the customer to specify identifying information about the subject being inquired, e.g., the DUNS Number, the address, the telephone number. |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. InquiryDetail. DUNSNumber | string up to 15 chars. Pattern: {([0-9a-zA-Z]*)}., Optional The D-U-N-S Number is D&B's identification number, which provides unique identification of this organization, in accordance with the Data Universal Numbering System (D-U-N-S). |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. InquiryDetail. CountryISOAlpha2Code | string at least 2 chars. up to 2 chars., Optional The two-letter country code, defined in the ISO 3166-1 scheme published by International Organization for Standardization (ISO)identifying the country of the inquired subject. |
Y | Y | END: OrderCompanyReportRequest. OrderCompanyReportRequestDetail. InquiryDetail | /Aggregate |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. ProductSpecification | Aggregate, Required Records data that allows the customer to specify the details of the requested product. This may include details such as the identifier of the product, the language in which the product needs to be rendered, the format in which the product needs to be rendered. |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. ProductSpecification. DNBProductID | string up to 64 chars., Required An alphanumeric string that uniquely identifies the product being requested. |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. ProductSpecification. ProductFormatPreferenceCode | integer up to 7 digits., Optional A D&B code value that describes the defined structure in which the product is to be rendered, e.g., txt, xml, pdf. Possible values: HTML - 5183; TEXT - 15106 (default); PDF - 13204 |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. ProductSpecification. LanguagePreferenceCode | integer up to 7 digits., Optional A D&B code value that defines the language in which the customer wants this product to be rendered. Possible values: English - 39 (default); US English - 331; French - 40; Spanish - 44; German - 41; Portuguese - 43; Italian - 42; Dutch - 38; Belgian Dutch - 36; Belgian French - 37 |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. ProductSpecification. OrderReasonCode | integer up to 7 digits., Optional A D&B code value that defines the grounds for the customer requesting the product, e.g., required to support a credit decision. Possible values: 6332 [Credit Decision]; 6333 [Assessment of credit solvency for intended business connection]; 6334 [Assessment of credit solvency for ongoing business connection]; 6335 [Debt Collection]; 6336 [Commercial Credit Insurance]; 6337 [Insurance Contract]; 6338 [Leasing Agreement]; 6339 [Rental Agreement] |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. ProductSpecification. TradeUpIndicator | boolean, Optional When true (set to 1) this denotes that the customer has requested that D&B return the data for the Headquarters when the requested organization is a Branch. When false (set to 0) this denotes that the customer has not requested that D&B return the data for the Headquarters when the requested organization is a Branch; however as this is the assumed condition there is no requirement to create this tag to represent this fact. Note: There are D&B WorldWide Network operations where the Headquarters information will be returned automatically, regardless of the customer request. |
N | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. ProductSpecification. IncludeAttachmentIndicator | boolean, Optional When true (set to 1), the Content Object will be returned as an MTOM Attachment. When false (set to 0), the content object will be returned embedded within the XML / JSON Response. Possible values: true/false |
Y | Y | END: OrderCompanyReportRequest. OrderCompanyReportRequestDetail. ProductSpecification | /Aggregate |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. ArchiveDetail | Aggregate, Optional Records data that allows the customer to specify details about the archival of the product being requested. |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. ArchiveDetail. ArchiveProductOptOutIndicator | boolean, Optional When true (set to 1), it indicates that the product being ordered is not to be stored. When false (set to 0), it indicates that the product being ordered is to be stored; however as this is the assumed condition there is no requirement to create this tag to represent this fact. |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. ArchiveDetail. ExtendArchivePeriodIndicator | boolean, Optional When true (set to 1), the duration to archive the data is to be extended. Note: There is an additional cost for extending the archival period of the data purchased. When false (set to 0), the duration to archive the data is not to be extended. |
Y | Y | END: OrderCompanyReportRequest. OrderCompanyReportRequestDetail. ArchiveDetail | /Aggregate |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. InquiryReferenceDetail | Aggregate, Optional Records data that allows the customer to specify information to be linked to the request in order to support subsequent order reconciliation. |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. InquiryReferenceDetail. CustomerReferenceText | string up to 240 chars., Optional(Up to 5x) A freeform reference string provided by the customer to be linked to the product in order to support subsequent order reconciliation. |
Y | Y | OrderCompanyReportRequest. OrderCompanyReportRequestDetail. InquiryReferenceDetail. CustomerBillingEndorsementText | string at least 1 chars. up to 240 chars., Optional Text that is filled in by customer and commonly contains requesting individual or department name, or customer's own account/reference number and/or name for the case on which the product was provided.This text is a reference used during the billing process. |
Y | Y | END: OrderCompanyReportRequest. OrderCompanyReportRequestDetail. InquiryReferenceDetail | /Aggregate |
Y | Y | END: OrderCompanyReportRequest. OrderCompanyReportRequestDetail | /Aggregate |
Y | Y | END: OrderCompanyReportRequest | /Aggregate |
Endpoint
Use the following endpoint for requesting this report. The {version} is dependent on the underlying service delivering the report.
NOTE: While "organizations" is part of this endpoint, there is no service by this name. Many D&B Direct calls have a similar structure; however, the {version} component is based on the SERVICE to which a given product is associated.
Endpoint (ReportProduct) |
---|
https://direct.dnb.com/ReportProduct/V{version} |
Testing
The following parameters may be used for D&B Direct 2.0 developer sandbox requests to retrieve successful responses. The data returned from sandbox requests may not represent actual values that this feature will deliver.
Report | D-U-N-S Number (Country Code) |
---|---|
Business Background Report | 804735132 (US) |
Business Information Report | 804735132 (US) |
+ BIR Banking (US) | 804735132 (US) |
+ BIR Finance (US) | 804735132 (US) |
+ BIR History & Operations (US) | 804735132 (US) |
+ BIR Special Events/Changes/Updates (US) | 804800217 (US) |
+ BIR ID and Summary | 804735132 (US) |
+ BIR Payments | 804735132 (US) |
+ BIR Public Filings | 804735132 (US) |
+ PAR Payment Habits by Industry (US) | 804735132 (US) |
Compact Report | 214567885 (GB) |
Comprehensive Report | 804735132 (US) |
Electronic Credit File | 214567885 (GB) |
KYC | 804735132 (US) 214567885 (GB) |
Market Analysis Report | n/a |
Report Response
Specification
Text reports are returned in a Base64 encoded format within the Report Content/Data tags. All other formats are returned using the Message Transmission Optimization Mechanism (MTOM) method. An option is available to return all report formats as MTOM attachments.
NOTE: The D-U-N-S Number returned in the response will be a nine-digit zero-padded, numeric value.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <rep:OrderCompanyReportResponse ServiceVersionNumber="3.2" xmlns:rep="http://services.dnb.com/ReportProductServiceV2.0"> <TransactionDetail> <ApplicationTransactionID>Sample</ApplicationTransactionID> <ServiceTransactionID>Id-6c7525705199cbef102b742e-2</ServiceTransactionID> <TransactionTimestamp>2015-07-06T05:34:17.232-04:00</TransactionTimestamp> </TransactionDetail> <TransactionResult> <SeverityText>Information</SeverityText> <ResultID>CM000</ResultID> <ResultText>Success</ResultText> </TransactionResult> <OrderCompanyReportResponseDetail> <InquiryDetail> <DUNSNumber>804735132</DUNSNumber> <CountryISOAlpha2Code>US</CountryISOAlpha2Code> </InquiryDetail> <Product> <DNBProductID>COMPR</DNBProductID> <LanguageCode>39</LanguageCode> <Organization> <SubjectHeader> <DUNSNumber>804735132</DUNSNumber> <CountryISOAlpha2Code>US</CountryISOAlpha2Code> </SubjectHeader> <OrganizationName> <OrganizationPrimaryName> <OrganizationName>GORMAN MANUFACTURING CO INC</OrganizationName> </OrganizationPrimaryName> </OrganizationName> </Organization> <ObjectAttachment> <ContentObject>ICAgICAgIENPUFlSSUdIVCAyMDE1IERVTiAmIEJSQURTVFJFRVQgSU5DLiAtIFBST1ZJREVEIFVOREVSIENPTlRSQUNUDQogICAgICAgICAgICAgICAgRk9SIFRIRSBFWENMVVNJVkUgVVNFIE9GIFNVQlNDUklCRVIgMjYzLTE2MDM0MS4NCg0KICAgICAgICAgICAgICAgICAgICAgQVRUTjogQXJ1bg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTVBSRUhFTlNJVkUgUkVQT1JUDQoNCkRVTlM6IDgwLTQ3My01MTMyDQpHT1JNQU4gTUFOVUZBQ1RVUklORyBDT01QQU5ZLA0KSU5DLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTkFOQ0lBTCBTVFJFU1MgQ0xBU1M6IDQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDUkVESVQgU0NPUkUgQ0xBU1M6ICAgICA1DQo0OTIgS09MTEVSIFNUICAgICAgICAgICAgICAgICAgICAgICAgICAgRCZCIFZJQUJJTElUWSBSQVRJTkc6ICAyN0FBDQpBTkQgQlJBTkNIKEVTKSBPUiBESVZJU0lPTihTKSAgICAgICAgICAgICAgICAgICAgICBLRVkNClNBTiBGUkFOQ0lTQ08gQ0EgOTQxMTAgICAgICAgICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpURUw6IDY1MCA1NTUtMDAwMCAgICAgICAgICAgICAgICAgICAgICBMT1dFU1QgUklTSyAgICAgIEhJR0hFU1QgUklTSw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgICAgMiAgICAzICAgIDQgICAgNQ0KU0lDOiAgICAgIDI3IDUyDQpMSU5FIE9GIEJVU0lORVNTOiBMSVRIT0dSQVBISUMgQ09NTUVSQ0lBTCBQUklOVElORw0KWUVBUiBTVEFSVEVEOiAgICAgIDE5ODUNCkNPTlRST0wgREFURTogICAgICAxOTg1ICAgICAgICAgICAgICAgICAgICAgICAgIERBVEUgUFJJTlRFRDogSlVMIDA2IDIwMTUNCg0KTEVTTElFIFNNSVRILCBQUkVTDQoNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCkVYRUNVVElWRSBTVU1NQVJZDQoNCi0gVGhlIEZpbmFuY2lhbCBTdHJlc3MgQ2xhc3Mgb2YgNCBmb3IgdGhpcyBjb21wYW55IHNob3dzIHRoYXQgZHVyaW5nIHRoZQ0KICBwcmV2aW91cyB5ZWFyLCBmaXJtcyB3aXRoIHRoaXMgY2xhc3NpZmljYXRpb24gaGFkIGEgZmFpbHVyZSByYXRlIG9mDQogIC44NCUgKDg0IHBlciAxMCwwMDApLCB3aGljaCBpcyAxLjc1IHRpbWVzIGhpZ2hlciB0aGFuIHRoZSBuYXRpb25hbCBhdmVyYWdlLg0KLSBUaGUgQ3JlZGl0IFNjb3JlIENsYXNzIG9mIDUgZm9yIHRoaXMgY29tcGFueSBzaG93cyB0aGF0IGR1cmluZyB0aGUgcHJldmlvdXMNCiAgeWVhciwgNTMuMSUgb2YgdGhlIGZpcm1zIHdpdGggdGhpcyBjbGFzc2lmaWNhdGlvbiBwYWlkIG9uZSBvciBtb3JlIGJpbGxzDQogIHNldmVyZWx5IGRlbGlucXVlbnQsIHdoaWNoIGlzIDUuMjEgdGltZXMgaGlnaGVyIHRoYW4gdGhlIG5hdGlvbmFsIGF2ZXJhZ2UuDQotIFN1YmplY3QgY29tcGFueSBwYXlzIGl0cyBiaWxscyBhbiBhdmVyYWdlIDMgZGF5cyBiZXlvbmQgdGVybXMuDQotIFN1YmplY3QgY29tcGFueSdzIGluZHVzdHJ5IHBheXMgaXRzIGJpbGxzIGFuIGF2ZXJhZ2UgOSBkYXlzIGJleW9uZCB0ZXJtcy4NCi0gU3ViamVjdCBjb21wYW55IHBheXMgaXRzIGJpbGxzIG1vcmUgcHJvbXB0bHkgdGhhbiB0aGUgYXZlcmFnZSBmb3IgaXRzDQogIGluZHVzdHJ5Lg0KLSBGaW5hbmNpYWwgaW5mb3JtYXRpb24gZnJvbSBhIGZpc2NhbCBjb25zb2xpZGF0ZWQgc3RhdGVtZW50IGRhdGVkIDEyLzMxLzE0DQogIGlzIGluY2x1ZGVkLg0KLSBTYWxlcyBmb3IgdGhlIGZpc2NhbCB5ZWFyIGVuZGluZyBEZWNlbWJlciAyMDE0IGFyZSB1cCBieSA2LjAlLg0KLSBOZXQgd29ydGggZm9yIHRoZSBmaXNjYWwgeWVhciBlbmRpbmcgRGVjZW1iZXIgMjAxNCBpcyB1cCBieSAxMS44JS4NCi0gT3BlcmF0aW9ucyBhcmUgcHJvZml0YWJsZS4NCi0gVUNDIGZpbGluZyhzKSBhcmUgcmVwb3J0ZWQgZm9yIHRoaXMgYnVzaW5lc3MuDQotIEZpbmFuY2luZyBpcyBzZWN1cmVkLg0KLSBVbmRlciBwcmVzZW50IG1hbmFnZW1lbnQgY29udHJvbCAzMCB5ZWFycy4NCi0gRXZpZGVuY2Ugb2Ygb3BlbiBTdWl0KHMpIGFuZCBKdWRnbWVudChzKSBpbiB0aGUgRCZCIGRhdGFiYXNlLg0KLSBIaXN0b3J5IGlzIGNsZWFyLg0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpWSUFCSUxJVFkgUkFUSU5HDQoNClRoZSBEJkIgdmlhYmlsaXR5IHJhdGluZyB1c2VzIEQmQidzIHByb3ByaWV0YXJ5IGFuYWx5dGljcyB0byBjb21wYXJlIHRoZSBtb3N0DQpwcmVkaWN0aXZlIGJ1c2luZXNzIHJpc2sgaW5kaWNhdG9ycyBhbmQgZGVsaXZlciBhIGhpZ2hseSByZWxpYWJsZSBhc3Nlc3NtZW50DQpvZiB0aGUgcHJvYmFiaWxpdHkgdGhhdCBhIGNvbXBhbnkgd2lsbCBubyBsb25nZXIgYmUgaW4gYnVzaW5lc3Mgd2l0aGluIHRoZSBuZXh0DQoxMiBtb250aHMNCg0KRCZCIFZJQUJJTElUWSBSQVRJTkc6ICAyN0FBDQoNCkQmQiBWSUFCSUxJVFkgQ09NUE9ORU5UUw0KDQpWSUFCSUxJVFkgU0NPUkUNCg0KUkFUSU5HIDIgICAgICAgICAgICBMT1cgUklTSyAgICAgICAgICAgICAgICAgSElHSCBSSVNLDQoNCiAgICAgICAgICA8MS0tPDI+LS0zLS0tNC0tLTUtLS02LS0tNy0tLTgtLS05Pg0KDQpDb21wYXJlZCB0byBBbGwgVVMgQnVzaW5lc3NlcyB3aXRoaW4gRCZCIERhdGFiYXNlOg0KDQpMZXZlbCBvZiByaXNrOiBMb3cgUmlzaw0KQnVzaW5lc3NlcyByYW5rZWQgMiBoYXZlIGEgcHJvYmFiaWxpdHkgb2YgYmVjb21pbmcgbm8gbG9uZ2VyIHZpYWJsZTogMiUNClBlcmNlbnRhZ2Ugb2YgYnVzaW5lc3NlcyByYW5rZWQgMjogNCUNCkFjcm9zcyBhbGwgVVMgYnVzaW5lc3NlcywgdGhlIGF2ZXJhZ2UgcHJvYmFiaWxpdHkgb2YgYmVjb21pbmcgbm8gbG9uZ2VyDQp2aWFibGU6IDE0JQ0KDQpQT1JURk9MSU8gQ09NUEFSSVNPTg0KDQpSQVRJTkcgNyAgICAgICAgICAgIExPVyBSSVNLICAgICAgICAgICAgSElHSCBSSVNLDQoNCiAgICAgICAgICA8MS0tLTItLS0zLS0tNC0tLTUtLS02LS08Nz4tLTgtLS05Pg0KDQpDb21wYXJlZCB0byBhbGwgQnVzaW5lc3NlcyB3aXRoaW4gdGhlIHNhbWUgTU9ERUwgU0VHTUVOVDoNCg0KTW9kZWwgU2VnbWVudDogQXZhaWxhYmxlIEZpbmFuY2lhbCBEYXRhDQoNCkxldmVsIG9mIHJpc2s6IEhpZ2ggdG8gTW9kZXJhdGUgUmlzaw0KQnVzaW5lc3NlcyByYW5rZWQgNyB3aXRoaW4gdGhpcyBtb2RlbCBzZWdtZW50IGhhdmUgYSBwcm9iYWJpbGl0eSBvZg0KYmVjb21pbmcgbm8gbG9uZ2VyIHZpYWJsZTogMSUNClBlcmNlbnRhZ2Ugb2YgYnVzaW5lc3NlcyByYW5rZWQgNyB3aXRoaW4gdGhpcyBtb2RlbCBzZWdtZW50OiAxMCUNCldpdGhpbiB0aGlzIG1vZGVsIHNlZ21lbnQsdGhlIGF2ZXJhZ2UgcHJvYmFiaWxpdHkgb2YgYmVjb21pbmcgbm8NCmxvbmdlciB2aWFibGU6IDAuNiUNCg0KREFUQSBERVBUSCBJTkRJQ0FUT1INCg0KREFUQSBERVBUSCBBDQoNCkRhdGEgRGVwdGggSW5kaWNhdG9yIERldGFpbHM6DQoNClJpY2ggRmlybW9ncmFwaGljcw0KRXh0ZW5zaXZlIENvbW1lcmNpYWwgVHJhZGluZyBBY3Rpdml0eQ0KQ29tcHJlaGVuc2l2ZSBGaW5hbmNpYWwgQXR0cmlidXRlcw0KDQpDT01QQU5ZIFBST0ZJTEUNCg0KQ09NUEFOWSBQUk9GSUxFIEENCg0KQ29tcGFueSBQcm9maWxlIERldGFpbHM6DQoNCkZpbmFuY2lhbCBEYXRhICAgIDogQXZhaWxhYmxlDQpUcmFkZSBQYXltZW50cyAgICA6IEF2YWlsYWJsZTogMytUcmFkZQ0KQnVzaW5lc3MgU2l6ZSAgICAgOiBMYXJnZTogRW1wbG95ZWVzOjUwKyBvciBTYWxlczogJDUwMEsrDQpZZWFycyBpbiBCdXNpbmVzcyA6IEVzdGFibGlzaGVkOiA1Kw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KQ1JFRElUIENBUEFDSVRZIFNVTU1BUlkNCg0KRCZCIFJhdGluZzogICAgIDNBNCAgICAgICAgICAgICAgICBQYXltZW50IEFjdGl2aXR5DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhc2VkIG9uIDIyIGV4cGVyaWVuY2VzKToNClNhbGVzICgkKTogICAgICAyMCw4MzksMzcyICAgICAgICAgICAgQXZlcmFnZSBIaWdoIENyZWRpdDogICAgJDIzNywzMDANCiMgb2YgRW1wbG95ZWVzICAgICAgICAgICAgICAgICAgICAgICAgSGlnaGVzdCBDcmVkaXQ6ICAgICAgICAgJDgwMCwwMDANClRvdGFsOiAgICAgICAgICAxMjUgICAgICAgICAgICAgICAgICAgVG90YWwgSGlnaGVzdCBDcmVkaXRzOiAgJDUsMjIwLDYwMA0KICAgICAgICAgICAgICAgKDExMCBIZXJlKQ0KDQpBcyBvZiAxMi8zMS8xNCAgV29ydGg6ICAgICAgICAgICAgJDEsNDkwLDA3Nw0KICAgICAgICAgICAgICAgIFdvcmtpbmcgQ2FwaXRhbDogICQxLDkyNiwxNjMNCg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KRklOQU5DSUFMIFNUUkVTUyBTVU1NQVJZDQoNClRoZSBGaW5hbmNpYWwgU3RyZXNzIE1vZGVsIHByZWRpY3RzIHRoZSBsaWtlbGlob29kIG9mIGJ1c2luZXNzIGZhaWx1cmUgIHdoaWNoDQppbmNsdWRlcyBjZWFzaW5nIGJ1c2luZXNzIHdpdGhvdXQgcGF5aW5nIGFsbCBjcmVkaXRvcnMgaW4gZnVsbCwgcmVvcmdhbml6YXRpb24NCm9yIG9idGFpbmluZyByZWxpZWYgZnJvbSBjcmVkaXRvcnMgdW5kZXIgc3RhdGUvZmVkZXJhbCBsYXcgb3ZlciB0aGUgbmV4dCAxMg0KbW9udGhzLiBTY29yZXMgd2VyZSBjYWxjdWxhdGVkIHVzaW5nIGEgc3RhdGlzdGljYWxseSB2YWxpZCBtb2RlbCBkZXJpdmVkIGZyb20NCkQmQidzIGV4dGVuc2l2ZSBkYXRhIGZpbGVzLg0KDQoNCiBGaW5hbmNpYWwgU3RyZXNzIENsYXNzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0DQogKEhpZ2hlc3QgUmlzazogNTsgTG93ZXN0IFJpc2s6IDEpDQoNCiBQcm9iYWJpbGl0eSBvZiBGYWlsdXJlIEFtb25nDQogQnVzaW5lc3NlcyB3aXRoIHRoaXMgQ2xhc3M6ICAgICAgICAgICAgICAgICAgICAgICAgICAgMC44NCUgKDg0IHBlciAxMCwwMDApDQoNCiBGaW5hbmNpYWwgU3RyZXNzIE5hdGlvbmFsIFBlcmNlbnRpbGU6ICAgICAgICAgICAgICAgICA5DQogKEhpZ2hlc3QgUmlzazogMTsgTG93ZXN0IFJpc2s6IDEwMCkNCg0KIEZpbmFuY2lhbCBTdHJlc3MgU2NvcmU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzOTcNCiAoSGlnaGVzdCBSaXNrOiAxLDAwMTsgTG93ZXN0IFJpc2s6IDEsODc1KQ0KDQogUHJvYmFiaWxpdHkgb2YgRmFpbHVyZSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC40OCUgKDQ4IHBlciAxMCwwMDApDQogLSBBdmVyYWdlIG9mIGJ1c2luZXNzZXMgaW4gRCZCJ3MgZGF0YWJhc2UNCg0KVGhlIEZpbmFuY2lhbCBTdHJlc3MgU2NvcmUgb2YgdGhpcyBidXNpbmVzcyBpcyBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIGZhY3RvcnM6DQoNCiAgIC0gQ29tcG9zaXRlIGNyZWRpdCBhcHByYWlzYWwgaXMgcmF0ZWQgbGltaXRlZC4NCiAgIC0gRmluYW5jaWFsIHJhdGlvcyBpbmRpY2F0ZSBoaWdoZXIgcmlzay4NCiAgIC0gSGlnaCBwcm9wb3J0aW9uIG9mIHNsb3cgcGF5bWVudCBleHBlcmllbmNlcyB0byB0b3RhbCBudW1iZXIgb2YgcGF5bWVudA0KICAgICBleHBlcmllbmNlcy4NCiAgIC0gTG93IHByb3BvcnRpb24gb2Ygc2F0aXNmYWN0b3J5IHBheW1lbnQgZXhwZXJpZW5jZXMgdG8gdG90YWwgcGF5bWVudA0KICAgICBleHBlcmllbmNlcy4NCiAgIC0gVUNDIEZpbGluZ3MgcmVwb3J0ZWQuDQogICAtIFVuc3RhYmxlIFBheWRleCBvdmVyIGxhc3QgMTIgbW9udGhzLg0KDQogTm90ZXM6DQoNCi0gVGhlIEZpbmFuY2lhbCBTdHJlc3MgQ2xhc3MgaW5kaWNhdGVzIHRoYXQgdGhpcyBmaXJtIHNoYXJlcyBzb21lIG9mDQp0aGUgc2FtZSBidXNpbmVzcyBhbmQgZmluYW5jaWFsIGNoYXJhY3RlcmlzdGljcyBvZiBvdGhlciBjb21wYW5pZXMgd2l0aA0KdGhpcyBjbGFzc2lmaWNhdGlvbi4gIEl0IGRvZXMgbm90IG1lYW4gdGhlIGZpcm0gd2lsbCBuZWNlc3NhcmlseQ0KZXhwZXJpZW5jZSBmaW5hbmNpYWwgc3RyZXNzLg0KDQotIFRoZSBQcm9iYWJpbGl0eSBvZiBmYWlsdXJlIHNob3dzIHBlcmNlbnRhZ2Ugb2YgZmlybXMgaW4gYQ0KZ2l2ZW4gcGVyY2VudGlsZSB0aGF0IGRpc2NvbnRpbnVlIG9wZXJhdGlvbnMgd2l0aCBsb3NzIHRvIGNyZWRpdG9ycy4NClRoZSBhdmVyYWdlIHByb2JhYmlsaXR5IG9mIGZhaWx1cmUgaXMgYmFzZWQgb24gYnVzaW5lc3NlcyBpbg0KRCZCJ3MgZGF0YWJhc2UgYW5kIGlzIHByb3ZpZGVkIGZvciBjb21wYXJhdGl2ZSBwdXJwb3Nlcy4NCg0KLSBUaGUgRmluYW5jaWFsIFN0cmVzcyBOYXRpb25hbCBQZXJjZW50aWxlIHJlZmxlY3RzIHRoZSByZWxhdGl2ZQ0KcmFua2luZyBvZiBhIGNvbXBhbnkgYW1vbmcgYWxsIHNjb3JhYmxlIGNvbXBhbmllcyBpbiBEJkIncyBmaWxlLg0KDQotIFRoZSBGaW5hbmNpYWwgU3RyZXNzIFNjb3JlIG9mZmVycyBhIG1vcmUgcHJlY2lzZSBtZWFzdXJlIG9mIHRoZSBsZXZlbA0Kb2YgcmlzayB0aGFuIHRoZSBDbGFzcyBhbmQgUGVyY2VudGlsZS4gIEl0IGlzIGVzcGVjaWFsbHkgaGVscGZ1bCB0bw0KY3VzdG9tZXJzIHVzaW5nIGEgc2NvcmVjYXJkIGFwcHJvYWNoIHRvIGRldGVybWluaW5nIG92ZXJhbGwgYnVzaW5lc3MNCnBlcmZvcm1hbmNlLg0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpGSU5BTkNJQUwgU1RSRVNTIE5PUk1TDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmF0aW9uYWwNCk5vcm1zIGZvciBDb21wYW5pZXMgaW4gdGhlIFNhbWUgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlcmNlbnRpbGUNCg0KICAgICAtIFJlZ2lvbiAgKFBBQ0lGSUMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUyDQoNCiAgICAgLSBJbmR1c3RyeTogTUFOVUZBQ1RVUklORyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Mg0KDQogICAgIC0gRW1wbG95ZWUgUmFuZ2UgKDEwMC00OTkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNzUNCg0KICAgICAtIFllYXJzIGluIEJ1c2luZXNzIFJhbmdlICgyNispICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc3DQoNCiAgICAgLSBTdWJqZWN0IENvbXBhbnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOQ0KDQpLZXkgQ29tcGFyaXNvbnMNClRoZSBzdWJqZWN0IGNvbXBhbnkgaGFzIGEgRmluYW5jaWFsIFN0cmVzcyBQZXJjZW50aWxlIHRoYXQgc2hvd3M6DQoNCiAgIC0gSGlnaGVyIHJpc2sgdGhhbiBvdGhlciBjb21wYW5pZXMgaW4gdGhlIHNhbWUgcmVnaW9uLg0KICAgLSBIaWdoZXIgcmlzayB0aGFuIG90aGVyIGNvbXBhbmllcyBpbiB0aGUgc2FtZSBpbmR1c3RyeS4NCiAgIC0gSGlnaGVyIHJpc2sgdGhhbiBvdGhlciBjb21wYW5pZXMgaW4gdGhlIHNhbWUgZW1wbG95ZWUgc2l6ZSByYW5nZS4NCiAgIC0gSGlnaGVyIHJpc2sgdGhhbiBvdGhlciBjb21wYW5pZXMgd2l0aCBhIGNvbXBhcmFibGUgbnVtYmVyIG9mIHllYXJzIGluDQogICAgIGJ1c2luZXNzLg0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpDUkVESVQgU0NPUkUgU1VNTUFSWQ0KDQpUaGUgQ29tbWVyY2lhbCBDcmVkaXQgU2NvcmUgcHJlZGljdHMgdGhlIGxpa2VsaWhvb2QgdGhhdCBhIGNvbXBhbnkgd2lsbCBwYXkgaXRzDQpiaWxscyBpbiBhIHNldmVyZWx5IGRlbGlucXVlbnQgbWFubmVyICg5MSBkYXlzIG9yIG1vcmUgcGFzdCB0ZXJtcyksIG9idGFpbg0KbGVnYWwgcmVsaWVmIGZyb20gY3JlZGl0b3JzIG9yIGNlYXNlIG9wZXJhdGlvbnMgd2l0aG91dCBwYXlpbmcgYWxsIGNyZWRpdG9ycyBpbg0KZnVsbCBvdmVyIHRoZSBuZXh0IDEyIG1vbnRocy4gIFNjb3JlcyBhcmUgY2FsY3VsYXRlZCB1c2luZyBhIHN0YXRpc3RpY2FsbHkNCnZhbGlkIG1vZGVsIGRlcml2ZWQgZnJvbSBEJkIncyBleHRlbnNpdmUgZGF0YSBmaWxlcy4NCg0KQ3JlZGl0IFNjb3JlIENsYXNzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUNCg0KSW5jaWRlbmNlIG9mIERlbGlucXVlbnQgUGF5bWVudCBBbW9uZw0KQ29tcGFuaWVzIHdpdGggdGhpcyBDbGFzczogICAgICAgICAgICAgICAgICAgICAgNTMuMTAlDQoNClBlcmNlbnRpbGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1DQoNCkNyZWRpdCBTY29yZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAyDQoNCkluY2lkZW5jZSBvZiBEZWxpbnF1ZW50IFBheW1lbnQ6ICAgICAgICAgICAgICAgIDEwLjIwJQ0KLSBBdmVyYWdlIGNvbXBhcmVkIHRvIGJ1c2luZXNzZXMgaW4gRCZCJ3MgZGF0YWJhc2UNCg0KVGhlIENyZWRpdCBTY29yZSBvZiB0aGlzIGJ1c2luZXNzIGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZmFjdG9yczoNCg0KICAtIEV2aWRlbmNlIG9mIG5lZ2F0aXZlIHRyYWRlDQogIC0gUmVjZW50IGFtb3VudCBwYXN0IGR1ZQ0KICAtIFByb3BvcnRpb24gb2Ygc2xvdyBwYXltZW50IGV4cGVyaWVuY2VzIHRvIHRvdGFsIG51bWJlciBvZiBwYXltZW50DQogICAgZXhwZXJpZW5jZXMgcmVwb3J0ZWQNCiAgLSBWZW5kb3IgcGF5bWVudCBjb21tZW50YXJ5DQogIC0gUGF5bWVudCBpbmZvcm1hdGlvbiBpbmRpY2F0ZXMgbmVnYXRpdmUgcGF5bWVudCBjb21tZW50cw0KDQpOb3RlczoNCg0KICAtIFRoZSBDb21tZXJjaWFsIENyZWRpdCBTY29yZSBSaXNrIENsYXNzIGluZGljYXRlcyB0aGF0IHRoaXMgZmlybSBzaGFyZXMNCiAgICBzb21lIG9mIHRoZSBzYW1lIGJ1c2luZXNzIGFuZCBmaW5hbmNpYWwgY2hhcmFjdGVyaXN0aWNzIG9mIG90aGVyDQogICAgY29tcGFuaWVzIHdpdGggdGhpcyBjbGFzc2lmaWNhdGlvbi4gSXQgZG9lcyBub3QgbWVhbiB0aGUgZmlybSB3aWxsDQogICAgbmVjZXNzYXJpbHkgZXhwZXJpZW5jZSBzZXZlcmUgZGVsaW5xdWVuY3kuDQoNCiAgLSBUaGUgSW5jaWRlbmNlIG9mIERlbGlucXVlbnQgUGF5bWVudCBpcyB0aGUgcGVyY2VudGFnZSBvZiBjb21wYW5pZXMgd2l0aA0KICAgIHRoaXMgY2xhc3NpZmljYXRpb24gdGhhdCB3ZXJlIHJlcG9ydGVkIDkxIGRheXMgcGFzdCBkdWUgb3IgbW9yZSBieQ0KICAgIGNyZWRpdG9ycy4gVGhlIGNhbGN1bGF0aW9uIG9mIHRoaXMgdmFsdWUgaXMgYmFzZWQgb24gRCZCJ3MgdHJhZGUNCiAgICBwYXltZW50IGRhdGFiYXNlLg0KDQogIC0gVGhlIENvbW1lcmNpYWwgQ3JlZGl0IFNjb3JlIHBlcmNlbnRpbGUgcmVmbGVjdHMgdGhlIHJlbGF0aXZlIHJhbmtpbmcgb2YNCiAgICBhIGZpcm0gYW1vbmcgYWxsIHNjb3JhYmxlIGNvbXBhbmllcyBpbiBEJkIncyBmaWxlLg0KDQogIC0gVGhlIENvbW1lcmNpYWwgQ3JlZGl0IFNjb3JlIG9mZmVycyBhIG1vcmUgcHJlY2lzZSBtZWFzdXJlIG9mIHRoZSBsZXZlbA0KICAgIG9mIHJpc2sgdGhhbiB0aGUgUmlzayBDbGFzcyBhbmQgUGVyY2VudGlsZS4gSXQgaXMgZXNwZWNpYWxseSBoZWxwZnVsIHRvDQogICAgY3VzdG9tZXJzIHVzaW5nIGEgc2NvcmVjYXJkIGFwcHJvYWNoIHRvIGRldGVybWluaW5nIG92ZXJhbGwgYnVzaW5lc3MNCiAgICBwZXJmb3JtYW5jZS4NCg0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpDUkVESVQgU0NPUkUgTk9STVMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYXRpb25hbA0KTm9ybXMgZm9yIENvbXBhbmllcyBpbiB0aGUgU2FtZSAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyY2VudGlsZQ0KDQogICAgIC0gUmVnaW9uICAoUEFDSUZJQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTANCg0KICAgICAtIEluZHVzdHJ5OiBNQU5VRkFDVFVSSU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYyDQoNCiAgICAgLSBFbXBsb3llZSBSYW5nZSAoMTAwLTQ5OSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4OQ0KDQogICAgIC0gWWVhcnMgaW4gQnVzaW5lc3MgUmFuZ2UgKDI2KykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgODUNCg0KICAgICAtIFN1YmplY3QgQ29tcGFueSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1DQoNCktleSBDb21wYXJpc29ucw0KVGhlIHN1YmplY3QgY29tcGFueSBoYXMgYSBDcmVkaXQgU2NvcmUgUGVyY2VudGlsZSB0aGF0IHNob3dzOg0KDQogICAtIEhpZ2hlciByaXNrIHRoYW4gb3RoZXIgY29tcGFuaWVzIGluIHRoZSBzYW1lIHJlZ2lvbi4NCiAgIC0gSGlnaGVyIHJpc2sgdGhhbiBvdGhlciBjb21wYW5pZXMgaW4gdGhlIHNhbWUgaW5kdXN0cnkuDQogICAtIEhpZ2hlciByaXNrIHRoYW4gb3RoZXIgY29tcGFuaWVzIGluIHRoZSBzYW1lIGVtcGxveWVlIHNpemUgcmFuZ2UuDQogICAtIEhpZ2hlciByaXNrIHRoYW4gb3RoZXIgY29tcGFuaWVzIHdpdGggYSBjb21wYXJhYmxlIG51bWJlciBvZiB5ZWFycyBpbg0KICAgICBidXNpbmVzcy4NCg0KDQoNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClBBWU1FTlQgVFJFTkRTDQoNClBBWURFWCBzY29yZXMgYmVsb3cgYXJlIGJhc2VkIG9uIGRvbGxhciB3ZWlnaHRlZCB0cmFkZSBpbiBtb3N0IHJlY2VudCAxMiBtb3MuDQoNCiAgICAgICAgICAgICAgICAnMTMgJzEzICcxNCAnMTQgJzE0ICcxNCAnMTQgJzE0ICcxNCAnMTUgJzE1ICcxNSAnMTUgJzE1ICcxNSAnMTUNCiAgICAgICAgICAgICAgICBTRVAgREVDIE1BUiBKVU4gQVVHIFNFUCBPQ1QgTk9WIERFQyBKQU4gRkVCIE1BUiBBUFIgTUFZIEpVTiBKVUwNCg0KRklSTSAgICAgICAgICAgICA2NCAgNzUgIDc1ICA4MCAgODAgIDgwICA3OSAgNzkgIDc5ICA3OSAgNzkgIDc5ICA3OSAgNzggIDc4ICA3OA0KDQpJbmR1c3RyeQ0KUXVhcnRpbGVzDQotLS0tLS0tLS0tDQpVcHBlciAgICAgICAgICAgIDgwICA4MCAgNzkgIDc5ICAgICAgNzkgICAgICAgICAgNzkgICAgICAgICAgNzkgICAgICAgICAgNzkNCk1lZGlhbiAgICAgICAgICAgNzcgIDc4ICA3NSAgNzQgICAgICA3NCAgICAgICAgICA3NCAgICAgICAgICA3NSAgICAgICAgICA3NA0KTG93ZXIgICAgICAgICAgICA2OCAgNzEgIDY3ICA2NiAgICAgIDY2ICAgICAgICAgIDY2ICAgICAgICAgIDY2ICAgICAgICAgIDYzDQoNCiAgIEluZHVzdHJ5IFBBWURFWCBiYXNlZCBvbjogICAgICAgS0VZIFRPIFBBWURFWCBTQ09SRVM6DQogICBTSUM6ICAyNzUyICAgICAgICAgICAgICAgICAgICAgICAgODAgICAgIFdpdGhpbiB0ZXJtcw0KICAgMTY5IEZpcm1zICAgICAgICAgICAgICAgICAgICAgICAgIDc0ICAgOSBEYXlzIEJleW9uZCBUZXJtcw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYzICAyMCBEYXlzIEJleW9uZCBUZXJtcw0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpTVU1NQVJZIE9GIFBBWU1FTlQgSEFCSVRTDQoNCkRvbGxhciBSYW5nZSBDb21wYXJpc29uczoNCg0KU3VwcGxpZXJzIFRoYXQgICAgICAgICAgTnVtYmVyIG9mICAgICAgICBUb3RhbCAgICAgICAlIG9mIERvbGxhcnMNCkV4dGVuZCBDcmVkaXQgb2YuLi4gICAgIEV4cGVyaWVuY2VzOiAgICAgQW1vdW50ICAgICAgV2l0aGluIFRlcm1zDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAkICAgICAgICAgICAgICAlDQoNCk9WRVIgJDEwMCwwMDAgICAgICAgICAgICAgICAxMyAgICAgICAgNSwxNTAsMDAwICAgICAgICAgIDk2DQokNTAsMDAwIC0gOTksOTk5ICAgICAgICAgICAgIDAgICAgICAgICAgICAgICAgMCAgICAgICAgICAgMA0KJDE1LDAwMCAtIDQ5LDk5OSAgICAgICAgICAgICAzICAgICAgICAgICA1NSwwMDAgICAgICAgICAgNjQNCiQgNSwwMDAgLSAxNCw5OTkgICAgICAgICAgICAgMiAgICAgICAgICAgMTUsMDAwICAgICAgICAgIDgzDQokIDEsMDAwIC0gNCw5OTkgICAgICAgICAgICAgIDAgICAgICAgICAgICAgICAgMCAgICAgICAgICAgMA0KICAgIFVuZGVyIDEsMDAwICAgICAgICAgICAgICA0ICAgICAgICAgICAgICA2MDAgICAgICAgICAgOTYNCg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUEFZTUVOVCBBTkFMWVNJUyBCWSBJTkRVU1RSWQ0KDQpUaGVyZSBhcmUgMjIgcGF5bWVudCBleHBlcmllbmNlcyBpbiBEJkIncyBmaWxlIGZvciB0aGUgbW9zdCByZWNlbnQgMTIgbW9udGhzLA0Kd2l0aCAxNSBleHBlcmllbmNlcyByZXBvcnRlZCBkdXJpbmcgdGhlIGxhc3QgdGhyZWUgbW9udGggcGVyaW9kLg0KDQogICAgICAgICAgICAgICAgICAgICAgVG90YWwgICAgIERvbGxhciAgICBIaWdoZXN0ICAgV2l0aGluIFNsb3cgU2xvdyAgU2xvdyBTbG93DQogICAgICAgICAgICAgICAgICAgICAgUmVjZCAgICAgIEFtb3VudCAgICBDcmVkaXQgICAgVGVybXMgIDEtMzAgMzEtNjAgNjEtOTAgOTErDQogICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICQgICAgICAgICAkICAgICAgIC0tLSAlIG9mIGRvbGxhciBhbW91bnQgLS0tDQoNClRvdGFsIGluIEQmQidzIEZpbGUgICAgMjIgICAgICA1LDIyMCw2MDAgICAgODAwLDAwMA0KDQpJbmR1c3RyeQ0KDQpSZWFsIGVzdGF0ZSBhZ2VudC9tZ3IgICA1ICAgICAgMSw5NjUsMDAwICAgIDgwMCwwMDAgICAgOTcgICAzICAgICAwICAgIDAgICAgMA0KUmV0IG1pc2MgdmVoaWNsZXMgICAgICAgNSAgICAgIDEsNjUwLDAwMCAgICA4MDAsMDAwICAgIDk0ICAgMyAgICAgMyAgICAwICAgIDANCkNhciBib2R5IHJlcGFpci9wYWludCAgIDUgICAgICAxLDU3NSwwMDAgICAgNzAwLDAwMCAgICA5NiAgIDMgICAgIDAgICAgMSAgICAwDQpNaXNjIGNvbXB1dGVyIHNlcnZpY2UgICA0ICAgICAgICAgICAgNjAwICAgICAgICAyNTAgICAgOTYgICAwICAgICAwICAgIDQgICAgMA0KTWZnIGhvbWUgZnVybml0dXJlICAgICAgMSAgICAgICAgIDE1LDAwMCAgICAgMTUsMDAwICAgMTAwICAgMCAgICAgMCAgICAwICAgIDANCkFkanVzdC9jb2xsZWN0IHN2Y3MgICAgIDEgICAgICAgICAxMCwwMDAgICAgIDEwLDAwMCAgIDEwMCAgIDAgICAgIDAgICAgMCAgICAwDQpGbG9vcmluZyBjb250cmFjdG9yICAgICAxICAgICAgICAgIDUsMDAwICAgICAgNSwwMDAgICAgNTAgIDUwICAgICAwICAgIDAgICAgMA0KDQpPVEhFUiBQQVlNRU5UIENBVEVHT1JJRVM6DQpDYXNoIEV4cGVyaWVuY2VzICAgICAgICAwICAgICAgICAgICAgICAwDQpQYXlpbmcgUmVjb3JkIFVua25vd24gICAwICAgICAgICAgICAgICAwDQpVbmZhdm9yYWJsZSBDb21tZW50cyAgICAwICAgICAgICAgICAgICAwDQpQbGFjZWQgZm9yIENvbGxlY3Rpb24NCiAgd2l0aCBEJkIgICAgICAgICAgICAgIDAgICAgICAgICAgICAgIDANCiAgb3RoZXIgICAgICAgICAgICAgICAgIDAgICAgICAgICAgICBOL0ENCg0KSW5kaWNhdGlvbnMgb2Ygc2xvd25lc3MgY2FuIGJlIHRoZSByZXN1bHQgb2YgZGlzcHV0ZXMgb3ZlciBtZXJjaGFuZGlzZSwgc2tpcHBlZA0KaW52b2ljZXMsIGV0Yy4NCg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUFVCTElDIEZJTElOR1MgU1VNTUFSWQ0KDQpUaGUgZm9sbG93aW5nIGRhdGEgaW5jbHVkZXMgYm90aCBvcGVuIGFuZCBjbG9zZWQgZmlsaW5ncyBmb3VuZCBpbg0KRCZCJ3MgZGF0YWJhc2Ugb24gdGhlIHN1YmplY3QgY29tcGFueS4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1vc3QgUmVjZW50DQogICAgICAgICAgICBSZWNvcmQgVHlwZSAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgRmlsaW5nIERhdGUNCg0KICAgICBCYW5rcnVwdGN5IFByb2NlZWRpbmdzICAgICAgICAgICAgICAgIDAgICAgICAgICAgICAgICAgLQ0KICAgICBKdWRnbWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgICAgICAgICAgICAwMS8wMS8yMDE0DQogICAgIExpZW5zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCAgICAgICAgICAgICAgICAtDQogICAgIFN1aXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgIDAyLzAxLzIwMTQNCiAgICAgVUNDJ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3ICAgICAgICAgICAgMDMvMDEvMjAxNA0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpQVUJMSUMgRklMSU5HUyBERVRBSUwNCg0KICAgICAgICAgVGhlIGZvbGxvd2luZyBkYXRhIGlzIGZvciBpbmZvcm1hdGlvbiBwdXJwb3NlcyBvbmx5IGFuZCBpcyBub3QgdGhlDQogICAgICAgICBvZmZpY2lhbCByZWNvcmQuICBDZXJ0aWZpZWQgY29waWVzIGNhbiBvbmx5IGJlIG9idGFpbmVkIGZyb20gdGhlDQogICAgICAgICBvZmZpY2lhbCBzb3VyY2UuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICogKiAqIEpVREdNRU5UKFMpICogKiAqDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGSUxJTkcgTk8uOiAxMjM0NTYNCkpER01UIEFXQVJEOiAkNzAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFUVVM6IFVuc2F0aXNmaWVkDQpKREdNVCBUWVBFOiAgSnVkZ21lbnQgICAgICAgICAgICAgICAgICAgICAgICAgREFURSBTVEFUVVMgQVRUQUlORUQ6ICAwMS8wMS8yMDE0DQpBR0FJTlNUOiAgICAgR09STUFOIE1BTlVGQUNUVVJJTkcgQ09NUEFOWSAgICAgREFURSBFTlRFUkVEOiAgICAgICAgICAwMS8wMS8yMDE0DQogICAgICAgICAgICAgSU5DIC0gVEVTVCBDQVNFICAgICAgICAgICAgICAgICAgTEFURVNUIElORk8gUkVDRUlWRUQ6ICAwNC8wNy8yMDE0DQpJTiBGQVZPUiBPRjogQUJDIE1BTlVGQUNUVVJJTkcgLSBURVNUIENBU0UNCldIRVJFIEZJTEVEOiBMb3MgQW5nZWxlcywgQ291bnR5IE9mLCBOb3J3YWxrDQogICAgICAgICAgICAgQ0ENCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkRPQ0tFVCBOTy46IG5tanRlc3QwNQ0KSkRHTVQgQVdBUkQ6IE90aGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQVRVUzogVW5zYXRpc2ZpZWQNCkpER01UIFRZUEU6ICBKdWRnbWVudCAgICAgICAgICAgICAgICAgICAgICAgICBEQVRFIFNUQVRVUyBBVFRBSU5FRDogIDAxLzAxLzIwMDgNCkFHQUlOU1Q6ICAgICBHb3JtYW4gTWZnIChUZXN0IENhc2UpICAgICAgICAgICBEQVRFIEVOVEVSRUQ6ICAgICAgICAgIDAxLzAxLzIwMDgNCklOIEZBVk9SIE9GOiBUZXN0IFBsYWludGlmZiAgICAgICAgICAgICAgICAgICBMQVRFU1QgSU5GTyBDT0xMRUNURUQ6IDAxLzAxLzIwMDgNCldIRVJFIEZJTEVEOiBSRUNPUkRFUiBPRiBERUVEUywgTk9SV0FMSywgQ0ENCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkRPQ0tFVCBOTy46IG5tanRlc3QwMQ0KSkRHTVQgVFlQRTogIEp1ZGdtZW50ICAgICAgICAgICAgICAgICAgICAgICAgIFNUQVRVUzogVW5zYXRpc2ZpZWQNCkFHQUlOU1Q6ICAgICBHb3JtYW4gTWZnIFRlc3QgICAgICAgICAgICAgICAgICBEQVRFIFNUQVRVUyBBVFRBSU5FRDogIDAxLzAxLzIwMDgNCklOIEZBVk9SIE9GOiBUZXN0IFBsYWludGlmZiAgICAgICAgICAgICAgICAgICBEQVRFIEVOVEVSRUQ6ICAgICAgICAgIDAxLzAxLzIwMDgNCldIRVJFIEZJTEVEOiBSRUNPUkRFUiBPRiBERUVEUywgTk9SV0FMSywgQ0EgICBMQVRFU1QgSU5GTyBDT0xMRUNURUQ6IDAxLzAyLzIwMDgNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAqICogU1VJVChTKSAqICogKg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRklMSU5HIE5PLjogOTk5OTkNClNVSVQgQU1PVU5UOiAkNzUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFUVVM6IFBlbmRpbmcNClBMQUlOVElGRjogICBURVNUIENBU0UgICAgICAgICAgICAgICAgICAgICAgICBEQVRFIFNUQVRVUyBBVFRBSU5FRDogIDAyLzAxLzIwMTQNCkRFRkVOREFOVDogICBHT1JNQU4gTUFOVUZBQ1RVUklORyBJTkMgLSBURVNUICBEQVRFIEZJTEVEOiAgICAgICAgICAgIDAyLzAxLzIwMTQNCiAgICAgICAgICAgICBDQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMQVRFU1QgSU5GTyBSRUNFSVZFRDogIDA0LzA3LzIwMTQNCldIRVJFIEZJTEVEOiBTdXByZW1lIENvdXJ0IE9mIFRoZSBTdGF0ZSBPZg0KICAgICAgICAgICAgIFRlbm5lc3NlZSwgS25veHZpbGxlLCBUTg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRklMSU5HIE5PLjogQ1YxMjM0NTYNClBMQUlOVElGRjogICBBbmdlbCBNYXNvbi10ZXN0ICAgICAgICAgICAgICAgICBTVEFUVVM6IFBlbmRpbmcNCkRFRkVOREFOVDogICBHT1JNQU4gTUFOVUZBQ1RVUklORyBJTkMgICAgICAgICBEQVRFIFNUQVRVUyBBVFRBSU5FRDogIDAxLzAxLzIwMTANCldIRVJFIEZJTEVEOiBrbm94IGNvdW50eSBnZW5lcmFsIHNlc3Npb25zLCAgICBEQVRFIEZJTEVEOiAgICAgICAgICAgIDAxLzAxLzIwMTANCiAgICAgICAgICAgICBLbm94dmlsbGUsIFROICAgICAgICAgICAgICAgICAgICBMQVRFU1QgSU5GTyBSRUNFSVZFRDogIDA3LzEyLzIwMTANCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICogKiAqIFVDQyBGSUxJTkcoUykgKiAqICoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkNPTExBVEVSQUw6IEFsbCBJbnZlbnRvcnkgaW5jbHVkaW5nIHByb2NlZWRzIGFuZCBwcm9kdWN0cyAtIEFsbCBGaXh0dXJlcw0KICAgICAgICAgICAgaW5jbHVkaW5nIHByb2NlZWRzIGFuZCBwcm9kdWN0cyAtIEFsbCBFcXVpcG1lbnQgaW5jbHVkaW5nIHByb2NlZWRzDQogICAgICAgICAgICBhbmQgcHJvZHVjdHMNCkZJTElORyBOTzogIDExMTExICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRFIEZJTEVEOiAgICAgICAgICAgIDAxLzAxLzIwMTQNClRZUEU6ICAgICAgIE9yaWdpbmFsICAgICAgICAgICAgICAgICAgICAgICAgICBMQVRFU1QgSU5GTyBDT0xMRUNURUQ6IDAxLzA3LzIwMTQNClNFQy4gUEFSVFk6IFZBTCBNQUdFRSAtIFRFU1QsIEFMTEVOVE9XTiwgUEEgICBGSUxFRCBXSVRIOiBTRUNSRVRBUlkgT0YNCkRFQlRPUjogICAgIEdPUk1BTiBNQU5VRkFDVFVSSU5HIENPTVBBTlkgSU5DICAgICAgICAgICAgICBTVEFURS9VQ0MgRElWSVNJT04sDQogICAgICAgICAgICAtIFRFU1QgQ0FTRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEENCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZJTElORyBOTzogIDIyMjIyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRFIEZJTEVEOiAgICAgICAgICAgIDAyLzAxLzIwMTQNClRZUEU6ICAgICAgIEFzc2lnbm1lbnQgICAgICAgICAgICAgICAgICAgICAgICBMQVRFU1QgSU5GTyBDT0xMRUNURUQ6IDAyLzA3LzIwMTQNClNFQy4gUEFSVFk6IFZBTCBNQUdFRSAtIFRFU1QsIEFMTEVOVE9XTiwgUEEgICBPUklHLiBVQ0MgRklMRUQ6IDAxLzAxLzIwMTQNCkFTU0lHTkVFOiAgIE5BVElPTkFMIEJBTksgLSBURVNULCBBTExFTlRPV04sICBPUklHLiBGSUxJTkcgTk86IDExMTExDQogICAgICAgICAgICBQQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRUQgV0lUSDogU0VDUkVUQVJZIE9GDQpERUJUT1I6ICAgICBHT1JNQU4gTUFOVUZBQ1RVUklORyBDT01QQU5ZIElOQyAgICAgICAgICAgICAgU1RBVEUvVUNDIERJVklTSU9OLA0KICAgICAgICAgICAgLSBURVNUIENBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGSUxJTkcgTk86ICAzMzMzMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREFURSBGSUxFRDogICAgICAgICAgICAwMy8wMS8yMDE0DQpUWVBFOiAgICAgICBUZXJtaW5hdGlvbiAgICAgICAgICAgICAgICAgICAgICAgTEFURVNUIElORk8gQ09MTEVDVEVEOiAwMy8wNy8yMDE0DQpTRUMuIFBBUlRZOiBWQUwgTUFHRUUgLSBURVNULCBBTExFTlRPV04sIFBBICAgT1JJRy4gVUNDIEZJTEVEOiAwMS8wMS8yMDE0DQogICAgICAgICAgICBOQVRJT05BTCBCQU5LIC0gVEVTVCwgQUxMRU5UT1dOLCAgT1JJRy4gRklMSU5HIE5POiAxMTExMQ0KICAgICAgICAgICAgUEEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEVEIFdJVEg6IFNFQ1JFVEFSWSBPRg0KREVCVE9SOiAgICAgR09STUFOIE1BTlVGQUNUVVJJTkcgQ09NUEFOWSBJTkMgICAgICAgICAgICAgIFNUQVRFL1VDQyBESVZJU0lPTiwNCiAgICAgICAgICAgIC0gVEVTVCBDQVNFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQ09MTEFURVJBTDogTGVhc2VkIEVxdWlwbWVudA0KRklMSU5HIE5POiAgMzA2LTEyMTY0MCAgICAgICAgICAgICAgICAgICAgICAgIERBVEUgRklMRUQ6ICAgICAgICAgICAgMDQvMTgvMjAwNg0KVFlQRTogICAgICAgT3JpZ2luYWwgICAgICAgICAgICAgICAgICAgICAgICAgIExBVEVTVCBJTkZPIFJFQ0VJVkVEOiAgMDUvMTIvMjAwNg0KU0VDLiBQQVJUWTogUkFZTU9ORCBMRUFTSU5HIENPUlBPUkFUSU9OLCAgICAgIEZJTEVEIFdJVEg6IFNFQ1JFVEFSWSBPRg0KICAgICAgICAgICAgR1JFRU5FLCBOWSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUQVRFL1VDQyBESVZJU0lPTiwNCkRFQlRPUjogICAgIEdPUk1BTiBNQU5VRkFDVFVSSU5HIENPTVBBTlksICAgICAgICAgICAgICAgICBUTg0KICAgICAgICAgICAgSU5DDQoNCk9uIDEyLzI5LzEwLCBMZXNsaWUgU21pdGgsIFByZXNpZGVudCwgR09STUFOIE1BTlVGQUNUVVJJTkcgQ09NUEFOWSwgSU5DLCBzdGF0ZWQNCnRoYXQgdGhlIGZpbmFuY2luZyBzdGF0ZW1lbnQgd2FzIHRlcm1pbmF0ZWQuDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpDT0xMQVRFUkFMOiBMZWFzZWQgRXF1aXBtZW50DQpGSUxJTkcgTk86ICAwMDk2Nzk4MTIgICAgICAgICAgICAgICAgICAgICAgICAgREFURSBGSUxFRDogICAgICAgICAgICAwMy8zMC8yMDA1DQpUWVBFOiAgICAgICBPcmlnaW5hbCAgICAgICAgICAgICAgICAgICAgICAgICAgTEFURVNUIElORk8gUkVDRUlWRUQ6ICAwNC8wNy8yMDA1DQpTRUMuIFBBUlRZOiBSQVlNT05EIExFQVNJTkcgQ09SUE9SQVRJT04sICAgICAgRklMRUQgV0lUSDogU0VDUkVUQVJZIE9GDQogICAgICAgICAgICBHUkVFTkUsIE5ZICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBVEUvVUNDIERJVklTSU9OLA0KREVCVE9SOiAgICAgR09STUFOIE1BTlVGQUNUVVJJTkcgQ09NUEFOWSwgICAgICAgICAgICAgICAgIElMDQogICAgICAgICAgICBJTkMuDQogICAgICAgICAgICBhbmQgT1RIRVJTDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpGSUxJTkcgTk86ICA3Nzc3NyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREFURSBGSUxFRDogICAgICAgICAgICAwMS8wMS8yMDE0DQpUWVBFOiAgICAgICBPcmlnaW5hbCAgICAgICAgICAgICAgICAgICAgICAgICAgTEFURVNUIElORk8gUkVDRUlWRUQ6ICAwNS8wMi8yMDE0DQpTRUMuIFBBUlRZOiBWQUwgTUFHRUUgLSBURVNULCBBTExFTlRPV04sIFBBICAgRklMRUQgV0lUSDogU0VDUkVUQVJZIE9GDQpERUJUT1I6ICAgICBHT1JNQU4gTUFOVUZBQ1RVUklORyBDT01QQU5ZIElOQyAgICAgICAgICAgICAgU1RBVEUvVUNDIERJVklTSU9OLA0KICAgICAgICAgICAgLSBURVNUIENBU0UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExFSElHSCwgUEENCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZJTElORyBOTzogIDU1NTU1ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRFIEZJTEVEOiAgICAgICAgICAgIDAxLzAxLzIwMTQNClRZUEU6ICAgICAgIE9yaWdpbmFsICAgICAgICAgICAgICAgICAgICAgICAgICBMQVRFU1QgSU5GTyBSRUNFSVZFRDogIDAxLzAzLzIwMTQNClNFQy4gUEFSVFk6IFRFU1QgQ0FTRSBCVVNJTkVTUyAxLCBEVUJMSU4sICAgICBGSUxFRCBXSVRIOiBTRUNSRVRBUlkgT0YNCiAgICAgICAgICAgIElSRUxBTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFURS9VQ0MgRElWSVNJT04sDQpERUJUT1I6ICAgICBHT1JNQU4gTUFOVUZBQ1RVUklORyBDT01QQU5ZICAgICAgICAgICAgICAgICAgUEENCiAgICAgICAgICAgIGFuZCBPVEhFUlMNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KICAgICAgICAgVGhlIHB1YmxpYyByZWNvcmQgaXRlbXMgY29udGFpbmVkIGluIHRoaXMgcmVwb3J0IG1heSBoYXZlIGJlZW4NCiAgICAgICAgIHBhaWQsIHRlcm1pbmF0ZWQsIHZhY2F0ZWQgb3IgcmVsZWFzZWQgcHJpb3IgdG8gdGhlIGRhdGUgdGhpcw0KICAgICAgICAgcmVwb3J0IHdhcyBwcmludGVkLg0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpCVVNJTkVTUyBCQUNLR1JPVU5EDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBISVNUT1JZDQogICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiAgICAgICAgIFRoZSBDb3Jwb3JhdGUgRGV0YWlscyBwcm92aWRlZCBiZWxvdyBtYXkgaGF2ZSBiZWVuIHN1Ym1pdHRlZCBieSB0aGUNCiAgICAgICAgIG1hbmFnZW1lbnQgb2YgdGhlIHN1YmplY3QgYnVzaW5lc3MgYW5kIG1heSBub3QgaGF2ZSBiZWVuIHZlcmlmaWVkIHdpdGgNCiAgICAgICAgIHRoZSBnb3Zlcm5tZW50IGFnZW5jeSB3aGljaCByZWNvcmRzIHN1Y2ggZGF0YS4NCg0KICAgICAgICAgQlVTSU5FU1MgVFlQRTogQ09SUE9SQVRJT04gICAgICAgICBTVEFURSBPRiBJTkNPUlA6ICAgQ0FMSUZPUk5JQQ0KICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KMDIvMDMvMTUNCiAgICAgICAgIExFU0xJRSBTTUlUSCwgUFJFUyAgICAgICAgICAgICAgICAgS0VWSU4gSiBIVU5ULCBTRUMtVFJFQVMNCiAgICAgICAgIERJUkVDVE9SKFMpOiAgVEhFIE9GRklDRVIoUykNCg0KICAgICAgICAgICAgICBUaGUgQ2FsaWZvcm5pYSAgU2VjcmV0YXJ5IG9mIFN0YXRlJ3MgYnVzaW5lc3MgcmVnaXN0cmF0aW9ucyBmaWxlDQogICAgICAgICBzaG93ZWQgdGhhdCBHb3JtYW4gTWFudWZhY3R1cmluZyBDb21wYW55LCBJbmMuIHdhcyByZWdpc3RlcmVkIGFzIGENCiAgICAgICAgIENvcnBvcmF0aW9uIG9uIE1heSAyMSwgMTk4NS4NCiAgICAgICAgICAgICAgQnVzaW5lc3Mgc3RhcnRlZCAxOTg1IGJ5IExlc2xpZSBTbWl0aCBhbmQgS2V2aW4gSiBIdW50LiAgNjAlIG9mDQogICAgICAgICBjYXBpdGFsIHN0b2NrIGlzIG93bmVkIGJ5IExlc2xpZSBTbWl0aC4gIDQwJSBvZiBjYXBpdGFsIHN0b2NrIGlzIG93bmVkDQogICAgICAgICBieSBLZXZpbiBKIEh1bnQuDQogICAgICAgICAgICAgIExFU0xJRSBTTUlUSCBib3JuIDE5NDYuICBHcmFkdWF0ZWQgZnJvbSB0aGUgVW5pdmVyc2l0eSBvZg0KICAgICAgICAgQ2FsaWZvcm5pYSwgTG9zIEFuZ2VsZXMsIENBLCBpbiBKdW5lIDE5Njcgd2l0aCBhIEJTIGRlZ3JlZSBpbiBCdXNpbmVzcw0KICAgICAgICAgTWFuYWdlbWVudC4gIDE5NjctODUgR2VuZXJhbCBNYW5hZ2VyIGZvciBSYXltb3IgUHJpbnRpbmcgQ28sIFNhbg0KICAgICAgICAgRnJhbmNpc2NvLCBDQS4gIDE5ODUgZm9ybWVkIHN1YmplY3Qgd2l0aCBLZXZpbiBKIEh1bnQuICAxOTg1IHRvDQogICAgICAgICBwcmVzZW50IGFjdGl2ZSBhcyBQcmluY2lwYWwgaW4gR29ybWFuIEFmZmlsaWF0ZSBMdGQsIFNhbiBGcmFuY2lzY28sDQogICAgICAgICBDQS4NCiAgICAgICAgICAgICAgS0VWSU4gSiBIVU5UIGJvcm4gMTk0NS4gIEdyYWR1YXRlZCBmcm9tIE5vcnRod2VzdGVybiBVbml2ZXJzaXR5LA0KICAgICAgICAgRXZhbnN0b24sIElMIGluIEp1bmUgMTk2Ni4gIDE5NjYtMTk4NSB3YXMgR2VuZXJhbCBNYW5hZ2VyIGZvciBSYXltb3INCiAgICAgICAgIFByaW50aW5nIENvLCBTYW4gRnJhbmNpc2NvLCBDQS4gIDE5ODUgZm9ybWVkIHN1YmplY3Qgd2l0aCBMZXNsaWUNCiAgICAgICAgIFNtaXRoLiAgMTk4NSB0byBwcmVzZW50IGFjdGl2ZSBhcyBQcmluY2lwYWwgaW4gR29ybWFuIEFmZmlsaWF0ZSBMdGQsDQogICAgICAgICBTYW4gRnJhbmNpc2NvLCBDQS4NCiAgICAgICAgICAgICAgQUZGSUxJQVRFOiBUaGUgZm9sbG93aW5nIGlzIHJlbGF0ZWQgdGhyb3VnaCBjb21tb24gcHJpbmNpcGFscywNCiAgICAgICAgIG1hbmFnZW1lbnQgYW5kL29yIG93bmVyc2hpcC4gIEdvcm1hbiBBZmZpbGlhdGUgTHRkLCBTYW4gRnJhbmNpc2NvLCBDQSwNCiAgICAgICAgIHN0YXJ0ZWQgMTk4NS4gIE9wZXJhdGVzIGFzIGNvbW1lcmNpYWwgcHJpbnRlci4gIEludGVyY29tcGFueQ0KICAgICAgICAgcmVsYXRpb25zOiBOb25lIHJlcG9ydGVkIGJ5IG1hbmFnZW1lbnQuDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QRVJBVElPTlMNCg0KMDIvMDMvMTUgICAgICBFbmdhZ2VkIGluIGNvbW1lcmNpYWwgbGl0aG9ncmFwaGljIHByaW50aW5nICgxMDAlKS4NCiAgICAgICAgIFRlcm1zIGFyZSBOZXQgMzAgZGF5cy4gSGFzIDI0MCBhY2NvdW50KHMpLiAgU2VsbHMgdG8gY29tbWVyY2lhbA0KICAgICAgICAgY29uY2VybnMuICBUZXJyaXRvcnkgOiBVbml0ZWQgU3RhdGVzLg0KICAgICAgICAgTm9uc2Vhc29uYWwuDQogICAgICAgICAgICAgIEVNUExPWUVFUzogIDEyNSB3aGljaCBpbmNsdWRlcyBvZmZpY2VyKHMpLiAgMTEwIGVtcGxveWVkIGhlcmUuDQogICAgICAgICAgICAgIEZBQ0lMSVRJRVM6ICBPY2N1cGllcyBwcmVtaXNlcyBpbiBhIG9uZSBzdG9yeSBjaW5kZXIgYmxvY2sNCiAgICAgICAgIGJ1aWxkaW5nLg0KICAgICAgICAgICAgICBMT0NBVElPTjogIENlbnRyYWwgYnVzaW5lc3Mgc2VjdGlvbiBvbiB3ZWxsIHRyYXZlbGVkIHN0cmVldC4NCiAgICAgICAgICAgICAgQlJBTkNIRVM6ICBUaGlzIGJ1c2luZXNzIGhhcyBtdWx0aXBsZSBicmFuY2hlcywgZGV0YWlsZWQNCiAgICAgICAgIGJyYW5jaC9kaXZpc2lvbiBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUgaW4gRCZCJ3MgbGlua2FnZSBvZiBmYW1pbHkNCiAgICAgICAgIHRyZWUgcHJvZHVjdHMuDQogICAgICAgICAgICAgIFNVQlNJRElBUklFUzogIFRoaXMgYnVzaW5lc3MgaGFzIG11bHRpcGxlIHN1YnNpZGlhcmllcywgZGV0YWlsZWQNCiAgICAgICAgIHN1YnNpZGlhcnkgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlIGluIEQmQnMgbGlua2FnZSBvciBmYW1pbHkgdHJlZQ0KICAgICAgICAgcHJvZHVjdHMuDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1RIRVIgQ09SUE9SQVRFIERFVEFJTFMNCkNPUlBPUkFURSBTVEFUVVM6ICBBQ1RJVkUNCkNPUlBPUkFURSBBR0VOVDogICBDIEZFU1RBLCAxMjMgTUFJTiBTVFJFRVQsIFNBTiBGUkFOQ0lTQ08sIENBDQoNCg0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpGSU5BTkNJQUwgU1VNTUFSWQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICBLRVkgQlVTSU5FU1MgUkFUSU9TDQoNCiAgICAgICAgICAgICBCYXNlZCBvbiBhIEZpbmFuY2lhbCBTdGF0ZW1lbnQgRGF0ZWQgRGVjZW1iZXIgMzEsIDIwMTQNCg0KICAgICAgICAgICAgICAgICAgKEluZHVzdHJ5IE5vcm1zIEJhc2VkIG9uIDE4IEVzdGFibGlzaG1lbnRzKQ0KDQogICAgICAgICAgUHJvZml0YWJpbGl0eSAgICAgICBTaG9ydC1UZXJtICAgICAgICBFZmZpY2llbmN5ICAgICAgICAgVXRpbGl6YXRpb24NCiAgICAgICAgICAgICAgICAlICAgICAgICAgICAgIFNvbHZlbmN5ICAgICAgICAgICAgICglKSAgICAgICAgICAgICAgICAgKCUpDQogICAgICAgICAgUmV0dXJuICAgUmV0dXJuICAgIEN1cnIgICBRdWljayAgICBBc3NldHMvICBTYWxlcy8gICAgICBUb3RhbCBMaWFicy8NCiAgICAgICAgIG9uIFNhbGVzICBvbiBOZXQgICAgUmF0aW8gIFJhdGlvICAgICBTYWxlcyAgTmV0IHdvcmtpbmcgICAgTmV0IFdvcnRoDQogICAgICAgICAgICAgICAgICAgV29ydGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FwaXRhbA0KDQpGaXJtICAgICAgICAwLjggICAgIDEwLjYgICAgICAxLjIgICAgMC44ICAgICAgNTYuMiAgICAgICAxMC44ICAgICAgICA2ODUuOA0KDQpJbmR1c3RyeSAgICA1LjUgICAgIDEyLjIgICAgICAyLjggICAgMi4yICAgICAgNjEuMSAgICAgICAgNC42ICAgICAgICAgNDcuMg0KTWVkaWFuDQoNCkluZHVzdHJ5ICAgIDQgICAgICAgIDMgICAgICAgIDQgICAgICA0ICAgICAgICAgMiAgICAgICAgICAxICAgICAgICAgICAgNA0KUXVhcnRpbGUNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSU5BTkNJQUwgSU5GT1JNQVRJT04NCg0KMDIvMDMvMTUgICAgICAgICAgICAgICAgICAgICAgICAgICBGaXNjYWwgICAgICAgICAgICBGaXNjYWwgICAgICAgICAgICBGaXNjYWwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29uc29saWRhdGVkICAgICAgQ29uc29saWRhdGVkICAgICAgQ29uc29saWRhdGVkDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWMgMzEgMjAxMiAgICAgICBEZWMgMzEgMjAxMyAgICAgICBEZWMgMzEgMjAxNA0KICAgICAgICAgQ3VyciBBc3NldHMgICAgICAgICAgICA4LDA0OSwyMTcgICAgICAgICA5LDMzNywwOTIgICAgICAgIDEwLDA4NCwwNjANCiAgICAgICAgIEN1cnIgTGlhYnMgICAgICAgICAgICAgNiw4MjYsOTE4ICAgICAgICAgNyw4OTcsNTcyICAgICAgICAgOCwxNTcsODk3DQogICAgICAgICBDdXJyZW50IFJhdGlvICAgICAgICAgICAgICAgMS4xOCAgICAgICAgICAgICAgMS4xOCAgICAgICAgICAgICAgMS4yNA0KICAgICAgICAgV29ya2luZyBDYXBpdGFsICAgICAgICAxLDIyMiwyOTkgICAgICAgICAxLDQzOSw1MjAgICAgICAgICAxLDkyNiwxNjMNCiAgICAgICAgIE90aGVyIEFzc2V0cyAgICAgICAgICAgMSw0OTcsODUzICAgICAgICAgMSw3MzcsNTA5ICAgICAgICAgMSw2MjUsNDA5DQogICAgICAgICBXb3J0aCAgICAgICAgICAgICAgICAgIDEsMTgwLDIwMCAgICAgICAgIDEsMzMyLDg0OSAgICAgICAgIDEsNDkwLDA3Nw0KICAgICAgICAgU2FsZXMgICAgICAgICAgICAgICAgIDE5LDQ2NSwxMzQgICAgICAgIDE5LDY1OSw3ODUgICAgICAgIDIwLDgzOSwzNzINCiAgICAgICAgIExvbmcgVGVybSBMaWFiICAgICAgICAgMSw1MzksOTUyICAgICAgICAgMSw4NDQsMTgwICAgICAgICAgMiwwNjEsNDk1DQogICAgICAgICBOZXQgUHJvZml0IChMb3NzKSAgICAgICAgMTk3LDI4MSAgICAgICAgICAgMTUyLDY0OSAgICAgICAgICAgMTU3LDIyOA0KICAgICAgICAgICAgICBGaXNjYWwgQ29uc29saWRhdGVkIHN0YXRlbWVudCBkYXRlZCBERUMgMzEgMjAxNDoNCiAgICAgICAgIENhc2ggICAgICAgICAgICAgICAkICAgICAgIDg1OSw0MDYgIEFjY3RzIFBheSAgICAgICAgICAkICAgICA1LDA0NSwzMDgNCiAgICAgICAgIEFjY3RzIFJlYyAgICAgICAgICAgICAgICA1LDQwMSw5MjYgIE5vdGVzIFBheSAgICAgICAgICAgICAgICAgIDM1NywyNzkNCiAgICAgICAgIEludmVudG9yeSAgICAgICAgICAgICAgICAzLDUyNCw3ODEgIEwuVC4gTGlhYi0oMXlyKSAgICAgICAgICAxLDY3NSw1NzQNCiAgICAgICAgIE90aGVyIEN1cnIgQXNzZXRzICAgICAgICAgIDI5Nyw5NDcgIE90aGVyIEN1cnIgTGlhYnMgICAgICAgICAxLDA3OSw3MzYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICAgQ3VyciBBc3NldHMgICAgICAgICAgIDEwLDA4NCwwNjAgICAgQ3VyciBMaWFicyAgICAgICAgICAgICA4LDE1Nyw4OTcNCiAgICAgICAgIEZpeHQgJiBFcXVpcCAgICAgICAgICAgICAxLDI1NSw1MDMgIEwuVC4gTGlhYi1PdGhlciAgICAgICAgICAyLDA2MSw0OTUNCiAgICAgICAgIE90aGVyIEFzc2V0cyAgICAgICAgICAgICAgIDM2OSw5MDYgIENPTU1PTiBTVE9DSyAgICAgICAgICAgICAgICA1MCwwMDANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFVEFJTkVEIEVBUk5JTkdTICAgICAgICAxLDQ0MCwwNzcNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICAgVG90YWwgQXNzZXRzICAgICAgICAgIDExLDcwOSw0NjkgICAgVG90YWwgICAgICAgICAgICAgICAgIDExLDcwOSw0NjkNCiAgICAgICAgICAgICAgRnJvbSBKQU4gMDEgMjAxNCB0byBERUMgMzEgMjAxNCBhbm51YWwgc2FsZXMNCiAgICAgICAgICQyMCw4MzksMzcyOyBjb3N0IG9mIGdvb2RzIHNvbGQgJDE4LDkwOSw1NjcuICBHcm9zcyBwcm9maXQNCiAgICAgICAgICQxLDkyOSw4MDU7IG9wZXJhdGluZyBleHBlbnNlcyAkMSw3OTAsMDIyLiAgT3BlcmF0aW5nIGluY29tZQ0KICAgICAgICAgJDEzOSw3ODM7IG90aGVyIGluY29tZSAkMzEsMjc2OyBuZXQgaW5jb21lIGJlZm9yZSB0YXhlcw0KICAgICAgICAgJDE3MSwwNTk7IEZlZGVyYWwgaW5jb21lIHRheCAkMTMsODMxLiAgTmV0IGluY29tZSAkMTU3LDIyOC4NCiAgICAgICAgICAgICAgU3RhdGVtZW50IHJlY2VpdmVkIGJ5IG1haWwgSkFOIDMwIDIwMTUuICBQcmVwYXJlZCBmcm9tDQogICAgICAgICBzdGF0ZW1lbnQocykgYnkgQWNjb3VudGFudDogSm9obnNvbiwgSm9yZGFuICYgSm9uZXMgQ1BBcy4NCiAgICAgICAgICAgICAgQUNDT1VOVEFOVFMgT1BJTklPTjogIEEgcmV2aWV3IG9mIHRoZSBhY2NvdW50YW50J3Mgb3Bpbmlvbg0KICAgICAgICAgaW5kaWNhdGVzIHRoZSBmaW5hbmNpYWwgc3RhdGVtZW50cyBtZWV0IGdlbmVyYWxseSBhY2NlcHRlZCBhY2NvdW50aW5nDQogICAgICAgICBwcmluY2lwbGVzIGFuZCB0aGF0IHRoZSBhdWRpdCBjb250YWlucyBubyBxdWFsaWZpY2F0aW9ucy4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLTAtLQ0KICAgICAgICAgICAgICBGaXhlZCBhc3NldHMgc2hvd24gbmV0IGxlc3MgJDg1LDMxMiBkZXByZWNpYXRpb24uDQogICAgICAgICAgICAgIEFzIG9mIEZlYnJ1YXJ5IDMsIDIwMTUgYXR0ZW1wdHMgdG8gY29udGFjdCBtYW5hZ2VtZW50IHdlcmUNCiAgICAgICAgIHVuc3VjY2Vzc2Z1bC4gIE91dHNpZGUgc291cmNlcyBjb25maXJtZWQgb3BlcmF0aW9ucyBhbmQgbG9jYXRpb24uDQoNCg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1VTVE9NRVIgU0VSVklDRQ0KSWYgeW91IG5lZWQgYW55IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIG9yIGhhdmUgYW55IHF1ZXN0aW9ucyByZWdhcmRpbmcgdGhpcw0KcmVwb3J0LCBwbGVhc2UgY2FsbCBvdXIgQ3VzdG9tZXIgU2VydmljZSBDZW50ZXIgYXQgKDgwMCkgMjM0LTM4NjcgZnJvbQ0KYW55d2hlcmUgd2l0aGluIHRoZSBVLlMuICBGcm9tIG91dHNpZGUgdGhlIFUuUy4sIHBsZWFzZSBjYWxsIHlvdXIgbG9jYWwgRCZCDQpvZmZpY2UuDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTkQgT0YgQ09NUFJFSEVOU0lWRSBSRVBPUlQNCg==</ContentObject> <ObjectFormatTypeText>TEXT</ObjectFormatTypeText> <DNBProductModuleID/> </ObjectAttachment> <ArchiveDetail> <PortfolioAssetID>1270032</PortfolioAssetID> <PortfolioAssetContainerID>1</PortfolioAssetContainerID> </ArchiveDetail> </Product> <InquiryReferenceDetail> <CustomerReferenceText>Sample</CustomerReferenceText> </InquiryReferenceDetail> </OrderCompanyReportResponseDetail> </rep:OrderCompanyReportResponse> </soap:Body> </soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <rep:OrderCompanyReportResponse ServiceVersionNumber="3.2" xmlns:rep="http://services.dnb.com/ReportProductServiceV2.0"> <TransactionDetail> <ApplicationTransactionID>tracehtmlfailureinstg</ApplicationTransactionID> <ServiceTransactionID>Id-6c7525705199cbef102b742e-2</ServiceTransactionID> <TransactionTimestamp>2015-07-06T05:52:04.087-04:00</TransactionTimestamp> </TransactionDetail> <TransactionResult> <SeverityText>Information</SeverityText> <ResultID>CM000</ResultID> <ResultText>Success</ResultText> </TransactionResult> <OrderCompanyReportResponseDetail> <InquiryDetail> <DUNSNumber>804735132</DUNSNumber> <CountryISOAlpha2Code>US</CountryISOAlpha2Code> </InquiryDetail> <Product> <DNBProductID>COMPR</DNBProductID> <LanguageCode>39</LanguageCode> <Organization> <SubjectHeader> <DUNSNumber>804735132</DUNSNumber> <CountryISOAlpha2Code>US</CountryISOAlpha2Code> </SubjectHeader> <OrganizationName> <OrganizationPrimaryName> <OrganizationName>GORMAN MANUFACTURING CO INC</OrganizationName> </OrganizationPrimaryName> </OrganizationName> </Organization> <ObjectAttachment> <ContentObject> <inc:Include href="cid:29c99d18:14e62627888:-17fb" xmlns:inc="http://www.w3.org/2004/08/xop/include"/> </ContentObject> <ObjectFormatTypeText>TEXT</ObjectFormatTypeText> <DNBProductModuleID/> </ObjectAttachment> <ArchiveDetail> <PortfolioAssetID>1270289</PortfolioAssetID> <PortfolioAssetContainerID>1</PortfolioAssetContainerID> </ArchiveDetail> </Product> <InquiryReferenceDetail> <CustomerReferenceText>Sample</CustomerReferenceText> </InquiryReferenceDetail> </OrderCompanyReportResponseDetail> </rep:OrderCompanyReportResponse> </soap:Body> </soapenv:Envelope>
Response Codes & Error Handling
Successful service requests will return a CM000 response code in the TransactionResult ResultID field. Otherwise, one of the D&B Direct standard response codes will be returned.
This operation may return the following response codes: CM001-CM005, CM007, CM008, CM011, CM012, PD001-PD006, and SC001-SC008.
Report Notes
The Product Availability Lookup feature may be utilized to determine if a particular report is available for a given D-U-N-S Number.
HTML formatted COMPR reports include embedded links to rendergraphics.dnb.com for such resources as CSS (cascading style sheet) and image files. The browser which displays these reports will need to have access to rendergraphics.dnb.com in order for the report to properly display.