WHO SMART Guidelines - HIV
0.3.0 - ci-build

WHO SMART Guidelines - HIV - Local Development build (v0.3.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: HIV.IND.16 Logic - TTL Representation

Draft as of 2024-08-21

Raw ttl | Download

@prefix fhir: <http://hl7.org/fhir/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

# - resource -------------------------------------------------------------------

 a fhir:Library ;
  fhir:nodeRole fhir:treeRoot ;
  fhir:id [ fhir:v "HIVIND16Logic"] ; # 
  fhir:meta [
    ( fhir:profile [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library>     ] [
fhir:v "http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"^^xsd:anyURI ;
fhir:link <http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module>     ] )
  ] ; # 
  fhir:text [
fhir:status [ fhir:v "generated" ] ;
fhir:div "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: Library HIVIND16Logic</b></p><a name=\"HIVIND16Logic\"> </a><a name=\"hcHIVIND16Logic\"> </a><a name=\"HIVIND16Logic-en-US\"> </a><h2>Related Artifacts</h2><table class=\"grid\"><tr><td>Depends On</td><td>Library HIC</td><td><code>http://smart.who.int/hiv/Library/HIVCommon|0.0.1</code></td></tr><tr><td>Depends On</td><td>Library WCom</td><td><a href=\"Library-WHOCommon.html\">WHOCommon</a></td></tr><tr><td>Depends On</td><td>Library HCC</td><td><a href=\"Library-HIVConceptsCustom.html\">HIVConceptsCustom</a></td></tr><tr><td>Depends On</td><td>Library HIE</td><td><a href=\"Library-HIVIndicatorElements.html\">HIVIndicatorElements</a></td></tr></table><h2>Parameters</h2><table class=\"grid\"><tr><td>Measurement Period</td><td>in</td><td>0</td><td>1</td><td>Period</td></tr><tr><td>Patient</td><td>out</td><td>0</td><td>1</td><td>Patient</td></tr><tr><td>Initial Population</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Numerator</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Denominator</td><td>out</td><td>0</td><td>1</td><td>boolean</td></tr><tr><td>Administrative Gender Stratifier</td><td>out</td><td>0</td><td>1</td><td>Coding</td></tr><tr><td>Age Stratifier</td><td>out</td><td>0</td><td>1</td><td>string</td></tr><tr><td>Geographic Region Stratifier</td><td>out</td><td>0</td><td>1</td><td>string</td></tr><tr><td>Setting</td><td>out</td><td>0</td><td>*</td><td>string</td></tr><tr><td>VMMC_adverse_event_type</td><td>out</td><td>0</td><td>1</td><td>Coding</td></tr><tr><td>VMMC_adverse_event_timing</td><td>out</td><td>0</td><td>1</td><td>Coding</td></tr><tr><td>Stratification</td><td>out</td><td>0</td><td>1</td><td>string</td></tr></table><h2>Contents</h2><p><code>text/cql</code></p><pre><code class=\"language-sql\">/**\n * Library: HIV.IND.16 Logic\n * Ref No: PRV.16\n * Short Name: VMMC adverse events\n *\n * Definition: a) Number or (b) % of adverse events during the reporting period\n *\n * Numerator: Number of people experiencing at least one moderate or severe adverse event during or following circumcision surgery during the reporting period\n * Numerator Calculation: COUNT of clients with &quot;VMMC procedure date&quot; in the reporting period AND &quot;Adverse event severity&quot; IN 'Moderate', 'Severe' AND &quot;Timing of adverse event&quot; LESS THAN 30 days from &quot;VMMC procedure date&quot;\n * Numerator Exclusions: \n *\n * Denominator: a) 1 | b) Total number of individuals under going VMMC performed according to national standard during the reporting period\n * Denominator Calculation: a) 1 | b) COUNT of clients with a &quot;VMMC procedure date&quot; in the reporting period\n * Denominator Exclusions: \n *\n * Disaggregations:\n * • Age (0–4, 5–9, 10–14, 15–19, 20–24, 25–49, 50+ years) \n *  • Type and seriousness of adverse event \n *  • Timing of adverse event (intraoperative, postoperative) \n *  • Service site \n *  • Provider type (key population-led or community-led organization, public sector provider, other entities such as private for-profit and not-for-profit organizations, including faith- based, international, nongovernmental) \n *  • Setting: facility-based service (including hospitals, health clinics, general practice offices, etc.) or community-based service (including drop-in centres, community service delivery points, mobile clinics or vans, outreach teams, community support groups, etc.) \n *  • Cities and other administrative regions of epidemiologic importance \n *  \n *\n * Disaggregation Elements: Age | Adverse event severity | Timing of adverse event | Type of adverse VMMC event\n *\n * Numerator and Denominator Elements:\n * Adverse event severity \n *  Timing of adverse event \n *  VMMC procedure date\n *\n * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022\n * \n * Data Concepts:\n * HIV.A.DE17: Age | Calculated age (number of years) of the client based on date of birth\n * HIV.B.DE198: VMMC procedure date | Date on which a voluntary medical male circumcision procedure was performed\n * HIV.B.DE201: Adverse event severity | Severity of the adverse event associated with voluntary medical male circumcision (VMMC) procedure\n * HIV.B.DE202: Moderate | Severity of the adverse event associated with VMMC procedure was moderate\n * HIV.B.DE203: Severe | Severity of the adverse event associated with VMMC procedure was severe\n * HIV.B.DE204: Timing of adverse event | When the adverse event associated with VMMC procedure occurred\n * HIV.B.DE205: Intraoperative | The adverse event associated with VMMC procedure occurred during the procedure\n * HIV.B.DE206: Postoperative | The adverse event associated with VMMC procedure occurred within the first 30 days after the procedure\n * HIV.B.DE207: Type of adverse VMMC event | Type of adverse event associated with voluntary medical male circumcision (VMMC) procedure\n * HIV.B.DE208: Abnormal pain | Client experienced abnormal pain\n * HIV.B.DE209: Anaesthesia-related effects | Client had anaesthesia-related effects\n * HIV.B.DE210: Bleeding | Client had bleeding\n * HIV.B.DE211: Damage to the penis | Client had damage to the penis\n * HIV.B.DE212: Difficulty urinating | Client had difficulty urinating\n * HIV.B.DE213: Excessive bleeding | Client experienced excessive bleeding\n * HIV.B.DE214: Excessive skin removal | Client experienced excessive skin removal\n * HIV.B.DE215: Excessive swelling | Client experienced excessive swelling\n * HIV.B.DE216: Haematoma | Client experienced haematoma\n * HIV.B.DE217: Infection | Client experienced infection\n * HIV.B.DE218: Injury to glans | Client experienced injury to glans\n * HIV.B.DE219: Scar or disfigurement | Client experienced scar or disfigurement\n * HIV.B.DE220: Sharps injury to personnel | During VMMC procedure there was sharps injury to personnel\n * HIV.B.DE221: Wound disruption | Client experienced wound disruption\n * HIV.B.DE222: Other | Client experienced other adverse VMMC event\n *\n * Additional Context\n * - what it measures: • This indicator measures whether VMMC services meet national standards of safety and effectiveness.\n * - rationale: • Staff conducting medical circumcisions must have appropriate training and access to proper equipment. | • Trends in adverse events may indicate where service providers need additional support. | • Intraoperative adverse events may include pain, excessive bleeding, anaesthesia-related effects, excessive skin removal, damage to the penis, sharps injury to personnel. Postoperative adverse events may include abnormal pain, excessive swelling, infection, haematoma, bleeding, difficulty urinating, wound disruption, scar or disfigurement, injury to glans, excessive skin removal. | • Moderate or severe adverse events include complications resulting in death or hospitalization within 30 days or permanent disability.\n * - method: Individual-level data obtained from programme records |  | This indicator can be reported as simply the absolute number of men experiencing adverse events occurring in the reporting period or can be reported as a proportion of the number of procedures conducted.\n * \n * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm\n */\n\nlibrary HIVIND16Logic\n\n// Included Libraries\nusing FHIR version '4.0.1'\n\ninclude HIVCommon version '0.0.1' called HIC\ninclude FHIRHelpers version '4.0.1'\ninclude WHOCommon called WCom\ninclude HIVConceptsCustom called HCC\n\ninclude HIVIndicatorElements called HIE\n\n// Indicator Definition\nparameter &quot;Measurement Period&quot; Interval&lt;Date&gt; default Interval[@2023-01-01, @2023-01-30]\n\ncontext Patient\n/* Populations */\n\n/*\n *Initial Population\n */\n\ndefine &quot;Initial Population&quot;:\n  true\n\n/**\n * Numerator\n * \n * Definition: Number of people experiencing at least one moderate or severe adverse event during or following circumcision surgery during the reporting period\n * Calculation: COUNT of clients with &quot;VMMC procedure date&quot; in the reporting period AND &quot;Adverse event severity&quot; IN 'Moderate', 'Severe' AND &quot;Timing of adverse event&quot; LESS THAN 30 days from &quot;VMMC procedure date&quot;\n */\n\ndefine &quot;Numerator&quot;:\n  exists(HIE.&quot;VMMC_adverse_event&quot; VMAC\n    where (VMAC.severity = HCC.&quot;severe&quot;\n    or VMAC.severity = HCC.&quot;moderate&quot;)\n  )\n\n\n/**\n * Denominator\n *\n * Definition: a) 1 | b) Total number of individuals under going VMMC performed according to national standard during the reporting period\n * Calculation: a) 1 | b) COUNT of clients with a &quot;VMMC procedure date&quot; in the reporting period\n */\n\ndefine &quot;Denominator&quot;:\n  HIE.&quot;VMMC&quot;\n    \n\n/* end Populations */\n\n\n\n/*\n * Disaggregators\n */\n\ndefine &quot;Administrative Gender Stratifier&quot;:\n	HIE.&quot;By Administrative Gender Stratifier&quot;\n\ndefine &quot;Age Stratifier&quot;:\n	HIE.&quot;By Age Stratifier 3&quot;\n\ndefine &quot;Geographic Region Stratifier&quot;:\n	HIE.&quot;By Geographic Region Stratifier&quot;\n\ndefine &quot;Setting&quot;:\n    HIE.&quot;setting&quot;\n\ndefine &quot;VMMC_adverse_event_type&quot;:\n    HIE.&quot;VMMC_adverse_event_type&quot;\n\ndefine &quot;VMMC_adverse_event_timing&quot;:\n    HIE.VMMC_adverse_event_timing\n\n\n//provider type not provided?\n//service site not provided?\n\ndefine &quot;Stratification&quot;:\n HIE.&quot;By Administrative Gender Stratifier&quot;.code \n  + ':' + HIE.&quot;By Age Stratifier&quot;\n+ ':' + HIE.&quot;By Geographic Region Stratifier&quot;\n+ Combine(HIE.setting, ':')\n+ ':' + HIE.&quot;VMMC_adverse_event_type&quot;.code \n+ ':' + HIE.&quot;VMMC_adverse_event_timing&quot;.code </code></pre><p><code>Content not shown - (</code><code>application/elm+xml</code>, size = 32Kb )</p></div>"
  ] ; # 
  fhir:extension ( [
fhir:url [ fhir:v "http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability"^^xsd:anyURI ] ;
fhir:value [ fhir:v "computable" ]
  ] ) ; # 
  fhir:url [ fhir:v "http://smart.who.int/hiv/Library/HIVIND16Logic"^^xsd:anyURI] ; # 
  fhir:version [ fhir:v "0.3.0"] ; # 
  fhir:name [ fhir:v "HIVIND16Logic"] ; # 
  fhir:title [ fhir:v "HIV.IND.16 Logic"] ; # 
  fhir:status [ fhir:v "draft"] ; # 
  fhir:experimental [ fhir:v "true"^^xsd:boolean] ; # 
  fhir:type [
    ( fhir:coding [
fhir:system [ fhir:v "http://terminology.hl7.org/CodeSystem/library-type"^^xsd:anyURI ] ;
fhir:code [ fhir:v "logic-library" ]     ] )
  ] ; # 
  fhir:date [ fhir:v "2024-08-21T16:05:17+00:00"^^xsd:dateTime] ; # 
  fhir:publisher [ fhir:v "WHO"] ; # 
  fhir:contact ( [
fhir:name [ fhir:v "WHO" ] ;
    ( fhir:telecom [
fhir:system [ fhir:v "url" ] ;
fhir:value [ fhir:v "http://who.int" ]     ] )
  ] ) ; # 
  fhir:description [ fhir:v "a) Number or (b) % of adverse events during the reporting period"] ; # 
  fhir:relatedArtifact ( [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library HIC" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/HIVCommon|0.0.1"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/HIVCommon|0.0.1>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library WCom" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/WHOCommon"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/WHOCommon>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library HCC" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/HIVConceptsCustom"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/HIVConceptsCustom>     ]
  ] [
fhir:type [ fhir:v "depends-on" ] ;
fhir:display [ fhir:v "Library HIE" ] ;
fhir:resource [
fhir:v "http://smart.who.int/hiv/Library/HIVIndicatorElements"^^xsd:anyURI ;
fhir:link <http://smart.who.int/hiv/Library/HIVIndicatorElements>     ]
  ] ) ; # 
  fhir:parameter ( [
fhir:name [ fhir:v "Measurement Period" ] ;
fhir:use [ fhir:v "in" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Period" ]
  ] [
fhir:name [ fhir:v "Patient" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Patient" ]
  ] [
fhir:name [ fhir:v "Initial Population" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "Numerator" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "Denominator" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "boolean" ]
  ] [
fhir:name [ fhir:v "Administrative Gender Stratifier" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Coding" ]
  ] [
fhir:name [ fhir:v "Age Stratifier" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "string" ]
  ] [
fhir:name [ fhir:v "Geographic Region Stratifier" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "string" ]
  ] [
fhir:name [ fhir:v "Setting" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "*" ] ;
fhir:type [ fhir:v "string" ]
  ] [
fhir:name [ fhir:v "VMMC_adverse_event_type" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Coding" ]
  ] [
fhir:name [ fhir:v "VMMC_adverse_event_timing" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "Coding" ]
  ] [
fhir:name [ fhir:v "Stratification" ] ;
fhir:use [ fhir:v "out" ] ;
fhir:min [ fhir:v "0"^^xsd:integer ] ;
fhir:max [ fhir:v "1" ] ;
fhir:type [ fhir:v "string" ]
  ] ) ; # 
  fhir:content ( [
fhir:contentType [ fhir:v "text/cql" ] ;
fhir:data [ fhir:v "LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuMTYgTG9naWMKICogUmVmIE5vOiBQUlYuMTYKICogU2hvcnQgTmFtZTogVk1NQyBhZHZlcnNlIGV2ZW50cwogKgogKiBEZWZpbml0aW9uOiBhKSBOdW1iZXIgb3IgKGIpICUgb2YgYWR2ZXJzZSBldmVudHMgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqCiAqIE51bWVyYXRvcjogTnVtYmVyIG9mIHBlb3BsZSBleHBlcmllbmNpbmcgYXQgbGVhc3Qgb25lIG1vZGVyYXRlIG9yIHNldmVyZSBhZHZlcnNlIGV2ZW50IGR1cmluZyBvciBmb2xsb3dpbmcgY2lyY3VtY2lzaW9uIHN1cmdlcnkgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIE51bWVyYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICJWTU1DIHByb2NlZHVyZSBkYXRlIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgIkFkdmVyc2UgZXZlbnQgc2V2ZXJpdHkiIElOICdNb2RlcmF0ZScsICdTZXZlcmUnIEFORCAiVGltaW5nIG9mIGFkdmVyc2UgZXZlbnQiIExFU1MgVEhBTiAzMCBkYXlzIGZyb20gIlZNTUMgcHJvY2VkdXJlIGRhdGUiCiAqIE51bWVyYXRvciBFeGNsdXNpb25zOiAKICoKICogRGVub21pbmF0b3I6IGEpIDEgfCBiKSBUb3RhbCBudW1iZXIgb2YgaW5kaXZpZHVhbHMgdW5kZXIgZ29pbmcgVk1NQyBwZXJmb3JtZWQgYWNjb3JkaW5nIHRvIG5hdGlvbmFsIHN0YW5kYXJkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBEZW5vbWluYXRvciBDYWxjdWxhdGlvbjogYSkgMSB8IGIpIENPVU5UIG9mIGNsaWVudHMgd2l0aCBhICJWTU1DIHByb2NlZHVyZSBkYXRlIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBEZW5vbWluYXRvciBFeGNsdXNpb25zOiAKICoKICogRGlzYWdncmVnYXRpb25zOgogKiDigKIgQWdlICgw4oCTNCwgNeKAkzksIDEw4oCTMTQsIDE14oCTMTksIDIw4oCTMjQsIDI14oCTNDksIDUwKyB5ZWFycykgCiAqICDigKLCoFR5cGUgYW5kIHNlcmlvdXNuZXNzIG9mIGFkdmVyc2UgZXZlbnQgCiAqICDigKIgVGltaW5nIG9mIGFkdmVyc2UgZXZlbnQgKGludHJhb3BlcmF0aXZlLCBwb3N0b3BlcmF0aXZlKSAKICogIOKAoiBTZXJ2aWNlIHNpdGUgCiAqICDigKLCoFByb3ZpZGVyIHR5cGUgKGtleSBwb3B1bGF0aW9uLWxlZCBvciBjb21tdW5pdHktbGVkIG9yZ2FuaXphdGlvbiwgcHVibGljIHNlY3RvciBwcm92aWRlciwgb3RoZXIgZW50aXRpZXMgc3VjaCBhcyBwcml2YXRlIGZvci1wcm9maXQgYW5kIG5vdC1mb3ItcHJvZml0IG9yZ2FuaXphdGlvbnMsIGluY2x1ZGluZyBmYWl0aC0gYmFzZWQsIGludGVybmF0aW9uYWwsIG5vbmdvdmVybm1lbnRhbCkgCiAqICDigKLCoFNldHRpbmc6IGZhY2lsaXR5LWJhc2VkIHNlcnZpY2UgKGluY2x1ZGluZyBob3NwaXRhbHMsIGhlYWx0aCBjbGluaWNzLCBnZW5lcmFsIHByYWN0aWNlIG9mZmljZXMsIGV0Yy4pIG9yIGNvbW11bml0eS1iYXNlZCBzZXJ2aWNlIChpbmNsdWRpbmcgZHJvcC1pbiBjZW50cmVzLCBjb21tdW5pdHkgc2VydmljZSBkZWxpdmVyeSBwb2ludHMsIG1vYmlsZSBjbGluaWNzIG9yIHZhbnMsIG91dHJlYWNoIHRlYW1zLCBjb21tdW5pdHkgc3VwcG9ydCBncm91cHMsIGV0Yy4pIAogKiAg4oCiwqBDaXRpZXMgYW5kIG90aGVyIGFkbWluaXN0cmF0aXZlIHJlZ2lvbnMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlIAogKiAgCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBBZ2UgfCBBZHZlcnNlIGV2ZW50IHNldmVyaXR5IHwgVGltaW5nIG9mIGFkdmVyc2UgZXZlbnQgfCBUeXBlIG9mIGFkdmVyc2UgVk1NQyBldmVudAogKgogKiBOdW1lcmF0b3IgYW5kIERlbm9taW5hdG9yIEVsZW1lbnRzOgogKiBBZHZlcnNlIGV2ZW50IHNldmVyaXR5IAogKiAgVGltaW5nIG9mIGFkdmVyc2UgZXZlbnQgCiAqICBWTU1DIHByb2NlZHVyZSBkYXRlCiAqCiAqIFJlZmVyZW5jZTogQ29uc29saWRhdGVkIGd1aWRlbGluZXMgb24gcGVyc29uLWNlbnRyZWQgSElWIHN0cmF0ZWdpYyBpbmZvcm1hdGlvbjogc3RyZW5ndGhlbmluZyByb3V0aW5lIGRhdGEgZm9yIGltcGFjdC4gR2VuZXZhOiBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uOyAyMDIyCiAqIAogKiBEYXRhIENvbmNlcHRzOgogKiBISVYuQS5ERTE3OiBBZ2UgfCBDYWxjdWxhdGVkIGFnZSAobnVtYmVyIG9mIHllYXJzKSBvZiB0aGUgY2xpZW50IGJhc2VkIG9uIGRhdGUgb2YgYmlydGgKICogSElWLkIuREUxOTg6IFZNTUMgcHJvY2VkdXJlIGRhdGUgfCBEYXRlIG9uIHdoaWNoIGEgdm9sdW50YXJ5IG1lZGljYWwgbWFsZSBjaXJjdW1jaXNpb24gcHJvY2VkdXJlIHdhcyBwZXJmb3JtZWQKICogSElWLkIuREUyMDE6IEFkdmVyc2UgZXZlbnQgc2V2ZXJpdHkgfCBTZXZlcml0eSBvZiB0aGUgYWR2ZXJzZSBldmVudCBhc3NvY2lhdGVkIHdpdGggdm9sdW50YXJ5IG1lZGljYWwgbWFsZSBjaXJjdW1jaXNpb24gKFZNTUMpIHByb2NlZHVyZQogKiBISVYuQi5ERTIwMjogTW9kZXJhdGUgfCBTZXZlcml0eSBvZiB0aGUgYWR2ZXJzZSBldmVudCBhc3NvY2lhdGVkIHdpdGggVk1NQyBwcm9jZWR1cmUgd2FzIG1vZGVyYXRlCiAqIEhJVi5CLkRFMjAzOiBTZXZlcmUgfCBTZXZlcml0eSBvZiB0aGUgYWR2ZXJzZSBldmVudCBhc3NvY2lhdGVkIHdpdGggVk1NQyBwcm9jZWR1cmUgd2FzIHNldmVyZQogKiBISVYuQi5ERTIwNDogVGltaW5nIG9mIGFkdmVyc2UgZXZlbnQgfCBXaGVuIHRoZSBhZHZlcnNlIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCBWTU1DIHByb2NlZHVyZSBvY2N1cnJlZAogKiBISVYuQi5ERTIwNTogSW50cmFvcGVyYXRpdmUgfCBUaGUgYWR2ZXJzZSBldmVudCBhc3NvY2lhdGVkIHdpdGggVk1NQyBwcm9jZWR1cmUgb2NjdXJyZWQgZHVyaW5nIHRoZSBwcm9jZWR1cmUKICogSElWLkIuREUyMDY6IFBvc3RvcGVyYXRpdmUgfCBUaGUgYWR2ZXJzZSBldmVudCBhc3NvY2lhdGVkIHdpdGggVk1NQyBwcm9jZWR1cmUgb2NjdXJyZWQgd2l0aGluIHRoZSBmaXJzdCAzMCBkYXlzIGFmdGVyIHRoZSBwcm9jZWR1cmUKICogSElWLkIuREUyMDc6IFR5cGUgb2YgYWR2ZXJzZSBWTU1DIGV2ZW50IHwgVHlwZSBvZiBhZHZlcnNlIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCB2b2x1bnRhcnkgbWVkaWNhbCBtYWxlIGNpcmN1bWNpc2lvbiAoVk1NQykgcHJvY2VkdXJlCiAqIEhJVi5CLkRFMjA4OiBBYm5vcm1hbCBwYWluIHwgQ2xpZW50IGV4cGVyaWVuY2VkIGFibm9ybWFsIHBhaW4KICogSElWLkIuREUyMDk6IEFuYWVzdGhlc2lhLXJlbGF0ZWQgZWZmZWN0cyB8IENsaWVudCBoYWQgYW5hZXN0aGVzaWEtcmVsYXRlZCBlZmZlY3RzCiAqIEhJVi5CLkRFMjEwOiBCbGVlZGluZyB8IENsaWVudCBoYWQgYmxlZWRpbmcKICogSElWLkIuREUyMTE6IERhbWFnZSB0byB0aGUgcGVuaXMgfCBDbGllbnQgaGFkIGRhbWFnZSB0byB0aGUgcGVuaXMKICogSElWLkIuREUyMTI6IERpZmZpY3VsdHkgdXJpbmF0aW5nIHwgQ2xpZW50IGhhZCBkaWZmaWN1bHR5IHVyaW5hdGluZwogKiBISVYuQi5ERTIxMzogRXhjZXNzaXZlIGJsZWVkaW5nIHwgQ2xpZW50IGV4cGVyaWVuY2VkIGV4Y2Vzc2l2ZSBibGVlZGluZwogKiBISVYuQi5ERTIxNDogRXhjZXNzaXZlIHNraW4gcmVtb3ZhbCB8IENsaWVudCBleHBlcmllbmNlZCBleGNlc3NpdmUgc2tpbiByZW1vdmFsCiAqIEhJVi5CLkRFMjE1OiBFeGNlc3NpdmUgc3dlbGxpbmcgfCBDbGllbnQgZXhwZXJpZW5jZWQgZXhjZXNzaXZlIHN3ZWxsaW5nCiAqIEhJVi5CLkRFMjE2OiBIYWVtYXRvbWEgfCBDbGllbnQgZXhwZXJpZW5jZWQgaGFlbWF0b21hCiAqIEhJVi5CLkRFMjE3OiBJbmZlY3Rpb24gfCBDbGllbnQgZXhwZXJpZW5jZWQgaW5mZWN0aW9uCiAqIEhJVi5CLkRFMjE4OiBJbmp1cnkgdG8gZ2xhbnMgfCBDbGllbnQgZXhwZXJpZW5jZWQgaW5qdXJ5IHRvIGdsYW5zCiAqIEhJVi5CLkRFMjE5OiBTY2FyIG9yIGRpc2ZpZ3VyZW1lbnQgfCBDbGllbnQgZXhwZXJpZW5jZWQgc2NhciBvciBkaXNmaWd1cmVtZW50CiAqIEhJVi5CLkRFMjIwOiBTaGFycHMgaW5qdXJ5IHRvIHBlcnNvbm5lbCB8IER1cmluZyBWTU1DIHByb2NlZHVyZSB0aGVyZSB3YXMgc2hhcnBzIGluanVyeSB0byBwZXJzb25uZWwKICogSElWLkIuREUyMjE6IFdvdW5kIGRpc3J1cHRpb24gfCBDbGllbnQgZXhwZXJpZW5jZWQgd291bmQgZGlzcnVwdGlvbgogKiBISVYuQi5ERTIyMjogT3RoZXIgfCBDbGllbnQgZXhwZXJpZW5jZWQgb3RoZXIgYWR2ZXJzZSBWTU1DIGV2ZW50CiAqCiAqIEFkZGl0aW9uYWwgQ29udGV4dAogKiAtIHdoYXQgaXQgbWVhc3VyZXM6IOKAosKgVGhpcyBpbmRpY2F0b3IgbWVhc3VyZXMgd2hldGhlciBWTU1DIHNlcnZpY2VzIG1lZXQgbmF0aW9uYWwgc3RhbmRhcmRzIG9mIHNhZmV0eSBhbmQgZWZmZWN0aXZlbmVzcy4KICogLSByYXRpb25hbGU6IOKAoiBTdGFmZiBjb25kdWN0aW5nIG1lZGljYWwgY2lyY3VtY2lzaW9ucyBtdXN0IGhhdmUgYXBwcm9wcmlhdGUgdHJhaW5pbmcgYW5kIGFjY2VzcyB0byBwcm9wZXIgZXF1aXBtZW50LiB8IOKAosKgVHJlbmRzIGluIGFkdmVyc2UgZXZlbnRzIG1heSBpbmRpY2F0ZSB3aGVyZSBzZXJ2aWNlIHByb3ZpZGVycyBuZWVkIGFkZGl0aW9uYWwgc3VwcG9ydC4gfCDigKLCoEludHJhb3BlcmF0aXZlIGFkdmVyc2UgZXZlbnRzIG1heSBpbmNsdWRlIHBhaW4sIGV4Y2Vzc2l2ZSBibGVlZGluZywgYW5hZXN0aGVzaWEtcmVsYXRlZCBlZmZlY3RzLCBleGNlc3NpdmUgc2tpbiByZW1vdmFsLCBkYW1hZ2UgdG8gdGhlIHBlbmlzLCBzaGFycHMgaW5qdXJ5IHRvIHBlcnNvbm5lbC4gUG9zdG9wZXJhdGl2ZSBhZHZlcnNlIGV2ZW50cyBtYXkgaW5jbHVkZSBhYm5vcm1hbCBwYWluLCBleGNlc3NpdmUgc3dlbGxpbmcsIGluZmVjdGlvbiwgaGFlbWF0b21hLCBibGVlZGluZywgZGlmZmljdWx0eSB1cmluYXRpbmcsIHdvdW5kIGRpc3J1cHRpb24sIHNjYXIgb3IgZGlzZmlndXJlbWVudCwgaW5qdXJ5IHRvIGdsYW5zLCBleGNlc3NpdmUgc2tpbiByZW1vdmFsLiB8IOKAosKgTW9kZXJhdGUgb3Igc2V2ZXJlIGFkdmVyc2UgZXZlbnRzIGluY2x1ZGUgY29tcGxpY2F0aW9ucyByZXN1bHRpbmcgaW4gZGVhdGggb3IgaG9zcGl0YWxpemF0aW9uIHdpdGhpbiAzMCBkYXlzIG9yIHBlcm1hbmVudCBkaXNhYmlsaXR5LgogKiAtIG1ldGhvZDogSW5kaXZpZHVhbC1sZXZlbCBkYXRhIG9idGFpbmVkIGZyb20gcHJvZ3JhbW1lIHJlY29yZHMgfCAgfCBUaGlzIGluZGljYXRvciBjYW4gYmUgcmVwb3J0ZWQgYXMgc2ltcGx5IHRoZSBhYnNvbHV0ZSBudW1iZXIgb2YgbWVuIGV4cGVyaWVuY2luZyBhZHZlcnNlIGV2ZW50cyBvY2N1cnJpbmcgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2Qgb3IgY2FuIGJlIHJlcG9ydGVkIGFzIGEgcHJvcG9ydGlvbiBvZiB0aGUgbnVtYmVyIG9mIHByb2NlZHVyZXMgY29uZHVjdGVkLgogKiAKICogU3VnZ2VzdGVkIFNjb3JpbmcgTWV0aG9kOiBwcm9wb3J0aW9uIHwgaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWZtZWFzdXJlcy9TdHJ1Y3R1cmVEZWZpbml0aW9uL3Byb3BvcnRpb24tbWVhc3VyZS1jcWZtCiAqLwoKbGlicmFyeSBISVZJTkQxNkxvZ2ljCgovLyBJbmNsdWRlZCBMaWJyYXJpZXMKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgSElWQ29tbW9uIHZlcnNpb24gJzAuMC4xJyBjYWxsZWQgSElDCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCmluY2x1ZGUgV0hPQ29tbW9uIGNhbGxlZCBXQ29tCmluY2x1ZGUgSElWQ29uY2VwdHNDdXN0b20gY2FsbGVkIEhDQwoKaW5jbHVkZSBISVZJbmRpY2F0b3JFbGVtZW50cyBjYWxsZWQgSElFCgovLyBJbmRpY2F0b3IgRGVmaW5pdGlvbgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZT4gZGVmYXVsdCBJbnRlcnZhbFtAMjAyMy0wMS0wMSwgQDIwMjMtMDEtMzBdCgpjb250ZXh0IFBhdGllbnQKLyogUG9wdWxhdGlvbnMgKi8KCi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogIHRydWUKCi8qKgogKiBOdW1lcmF0b3IKICogCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUgZXhwZXJpZW5jaW5nIGF0IGxlYXN0IG9uZSBtb2RlcmF0ZSBvciBzZXZlcmUgYWR2ZXJzZSBldmVudCBkdXJpbmcgb3IgZm9sbG93aW5nIGNpcmN1bWNpc2lvbiBzdXJnZXJ5IGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICJWTU1DIHByb2NlZHVyZSBkYXRlIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgIkFkdmVyc2UgZXZlbnQgc2V2ZXJpdHkiIElOICdNb2RlcmF0ZScsICdTZXZlcmUnIEFORCAiVGltaW5nIG9mIGFkdmVyc2UgZXZlbnQiIExFU1MgVEhBTiAzMCBkYXlzIGZyb20gIlZNTUMgcHJvY2VkdXJlIGRhdGUiCiAqLwoKZGVmaW5lICJOdW1lcmF0b3IiOgogIGV4aXN0cyhISUUuIlZNTUNfYWR2ZXJzZV9ldmVudCIgVk1BQwogICAgd2hlcmUgKFZNQUMuc2V2ZXJpdHkgPSBIQ0MuInNldmVyZSIKICAgIG9yIFZNQUMuc2V2ZXJpdHkgPSBIQ0MuIm1vZGVyYXRlIikKICApCgoKLyoqCiAqIERlbm9taW5hdG9yCiAqCiAqIERlZmluaXRpb246IGEpIDEgfCBiKSBUb3RhbCBudW1iZXIgb2YgaW5kaXZpZHVhbHMgdW5kZXIgZ29pbmcgVk1NQyBwZXJmb3JtZWQgYWNjb3JkaW5nIHRvIG5hdGlvbmFsIHN0YW5kYXJkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBDYWxjdWxhdGlvbjogYSkgMSB8IGIpIENPVU5UIG9mIGNsaWVudHMgd2l0aCBhICJWTU1DIHByb2NlZHVyZSBkYXRlIiBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKi8KCmRlZmluZSAiRGVub21pbmF0b3IiOgogIEhJRS4iVk1NQyIKICAgIAoKLyogZW5kIFBvcHVsYXRpb25zICovCgoKCi8qCiAqIERpc2FnZ3JlZ2F0b3JzCiAqLwoKZGVmaW5lICJBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciI6CglISUUuIkJ5IEFkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyIgoKZGVmaW5lICJBZ2UgU3RyYXRpZmllciI6CglISUUuIkJ5IEFnZSBTdHJhdGlmaWVyIDMiCgpkZWZpbmUgIkdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXIiOgoJSElFLiJCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIgoKZGVmaW5lICJTZXR0aW5nIjoKICAgIEhJRS4ic2V0dGluZyIKCmRlZmluZSAiVk1NQ19hZHZlcnNlX2V2ZW50X3R5cGUiOgogICAgSElFLiJWTU1DX2FkdmVyc2VfZXZlbnRfdHlwZSIKCmRlZmluZSAiVk1NQ19hZHZlcnNlX2V2ZW50X3RpbWluZyI6CiAgICBISUUuVk1NQ19hZHZlcnNlX2V2ZW50X3RpbWluZwoKCi8vcHJvdmlkZXIgdHlwZSBub3QgcHJvdmlkZWQ/Ci8vc2VydmljZSBzaXRlIG5vdCBwcm92aWRlZD8KCmRlZmluZSAiU3RyYXRpZmljYXRpb24iOgogSElFLiJCeSBBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciIuY29kZSAKICArICc6JyArIEhJRS4iQnkgQWdlIFN0cmF0aWZpZXIiCisgJzonICsgSElFLiJCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIgorIENvbWJpbmUoSElFLnNldHRpbmcsICc6JykKKyAnOicgKyBISUUuIlZNTUNfYWR2ZXJzZV9ldmVudF90eXBlIi5jb2RlIAorICc6JyArIEhJRS4iVk1NQ19hZHZlcnNlX2V2ZW50X3RpbWluZyIuY29kZSA="^^xsd:base64Binary ]
  ] [
fhir:contentType [ fhir:v "application/elm+xml" ] ;
fhir:data [ fhir:v "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iTm9uZSIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1JbmZvIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiBlcnJvclR5cGU9InNlbWFudGljIiBlcnJvclNldmVyaXR5PSJ3YXJuaW5nIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUVycm9yIi8+CiAgIDxhbm5vdGF0aW9uIG1lc3NhZ2U9IlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub1N0cmluZyBoYXMgbXVsdGlwbGUgb3ZlcmxvYWRzIGFuZCBkdWUgdG8gdGhlIFNpZ25hdHVyZUxldmVsIHNldHRpbmcgKE5vbmUpLCB0aGUgb3ZlcmxvYWQgc2lnbmF0dXJlIGlzIG5vdCBiZWluZyBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LiBUaGlzIG1heSByZXN1bHQgaW4gYW1iaWd1b3VzIGZ1bmN0aW9uIHJlc29sdXRpb24gYXQgcnVudGltZSwgY29uc2lkZXIgc2V0dGluZyB0aGUgU2lnbmF0dXJlTGV2ZWwgdG8gT3ZlcmxvYWRzIG9yIEFsbCB0byBlbnN1cmUgdGhhdCB0aGUgb3V0cHV0IGluY2x1ZGVzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gc3VwcG9ydCBjb3JyZWN0IG92ZXJsb2FkIHNlbGVjdGlvbiBhdCBydW50aW1lLiIgZXJyb3JUeXBlPSJzZW1hbnRpYyIgZXJyb3JTZXZlcml0eT0id2FybmluZyIgeHNpOnR5cGU9ImE6Q3FsVG9FbG1FcnJvciIvPgogICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgPGE6cyByPSI4MiI+CiAgICAgICAgIDxhOnM+LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuMTYgTG9naWMKICogUmVmIE5vOiBQUlYuMTYKICogU2hvcnQgTmFtZTogVk1NQyBhZHZlcnNlIGV2ZW50cwogKgogKiBEZWZpbml0aW9uOiBhKSBOdW1iZXIgb3IgKGIpICUgb2YgYWR2ZXJzZSBldmVudHMgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqCiAqIE51bWVyYXRvcjogTnVtYmVyIG9mIHBlb3BsZSBleHBlcmllbmNpbmcgYXQgbGVhc3Qgb25lIG1vZGVyYXRlIG9yIHNldmVyZSBhZHZlcnNlIGV2ZW50IGR1cmluZyBvciBmb2xsb3dpbmcgY2lyY3VtY2lzaW9uIHN1cmdlcnkgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIE51bWVyYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICZxdW90O1ZNTUMgcHJvY2VkdXJlIGRhdGUmcXVvdDsgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QgQU5EICZxdW90O0FkdmVyc2UgZXZlbnQgc2V2ZXJpdHkmcXVvdDsgSU4gJ01vZGVyYXRlJywgJ1NldmVyZScgQU5EICZxdW90O1RpbWluZyBvZiBhZHZlcnNlIGV2ZW50JnF1b3Q7IExFU1MgVEhBTiAzMCBkYXlzIGZyb20gJnF1b3Q7Vk1NQyBwcm9jZWR1cmUgZGF0ZSZxdW90OwogKiBOdW1lcmF0b3IgRXhjbHVzaW9uczogCiAqCiAqIERlbm9taW5hdG9yOiBhKSAxIHwgYikgVG90YWwgbnVtYmVyIG9mIGluZGl2aWR1YWxzIHVuZGVyIGdvaW5nIFZNTUMgcGVyZm9ybWVkIGFjY29yZGluZyB0byBuYXRpb25hbCBzdGFuZGFyZCBkdXJpbmcgdGhlIHJlcG9ydGluZyBwZXJpb2QKICogRGVub21pbmF0b3IgQ2FsY3VsYXRpb246IGEpIDEgfCBiKSBDT1VOVCBvZiBjbGllbnRzIHdpdGggYSAmcXVvdDtWTU1DIHByb2NlZHVyZSBkYXRlJnF1b3Q7IGluIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnM6IAogKgogKiBEaXNhZ2dyZWdhdGlvbnM6CiAqIOKAoiBBZ2UgKDDigJM0LCA14oCTOSwgMTDigJMxNCwgMTXigJMxOSwgMjDigJMyNCwgMjXigJM0OSwgNTArIHllYXJzKSAKICogIOKAosKgVHlwZSBhbmQgc2VyaW91c25lc3Mgb2YgYWR2ZXJzZSBldmVudCAKICogIOKAoiBUaW1pbmcgb2YgYWR2ZXJzZSBldmVudCAoaW50cmFvcGVyYXRpdmUsIHBvc3RvcGVyYXRpdmUpIAogKiAg4oCiIFNlcnZpY2Ugc2l0ZSAKICogIOKAosKgUHJvdmlkZXIgdHlwZSAoa2V5IHBvcHVsYXRpb24tbGVkIG9yIGNvbW11bml0eS1sZWQgb3JnYW5pemF0aW9uLCBwdWJsaWMgc2VjdG9yIHByb3ZpZGVyLCBvdGhlciBlbnRpdGllcyBzdWNoIGFzIHByaXZhdGUgZm9yLXByb2ZpdCBhbmQgbm90LWZvci1wcm9maXQgb3JnYW5pemF0aW9ucywgaW5jbHVkaW5nIGZhaXRoLSBiYXNlZCwgaW50ZXJuYXRpb25hbCwgbm9uZ292ZXJubWVudGFsKSAKICogIOKAosKgU2V0dGluZzogZmFjaWxpdHktYmFzZWQgc2VydmljZSAoaW5jbHVkaW5nIGhvc3BpdGFscywgaGVhbHRoIGNsaW5pY3MsIGdlbmVyYWwgcHJhY3RpY2Ugb2ZmaWNlcywgZXRjLikgb3IgY29tbXVuaXR5LWJhc2VkIHNlcnZpY2UgKGluY2x1ZGluZyBkcm9wLWluIGNlbnRyZXMsIGNvbW11bml0eSBzZXJ2aWNlIGRlbGl2ZXJ5IHBvaW50cywgbW9iaWxlIGNsaW5pY3Mgb3IgdmFucywgb3V0cmVhY2ggdGVhbXMsIGNvbW11bml0eSBzdXBwb3J0IGdyb3VwcywgZXRjLikgCiAqICDigKLCoENpdGllcyBhbmQgb3RoZXIgYWRtaW5pc3RyYXRpdmUgcmVnaW9ucyBvZiBlcGlkZW1pb2xvZ2ljIGltcG9ydGFuY2UgCiAqICAKICoKICogRGlzYWdncmVnYXRpb24gRWxlbWVudHM6IEFnZSB8IEFkdmVyc2UgZXZlbnQgc2V2ZXJpdHkgfCBUaW1pbmcgb2YgYWR2ZXJzZSBldmVudCB8IFR5cGUgb2YgYWR2ZXJzZSBWTU1DIGV2ZW50CiAqCiAqIE51bWVyYXRvciBhbmQgRGVub21pbmF0b3IgRWxlbWVudHM6CiAqIEFkdmVyc2UgZXZlbnQgc2V2ZXJpdHkgCiAqICBUaW1pbmcgb2YgYWR2ZXJzZSBldmVudCAKICogIFZNTUMgcHJvY2VkdXJlIGRhdGUKICoKICogUmVmZXJlbmNlOiBDb25zb2xpZGF0ZWQgZ3VpZGVsaW5lcyBvbiBwZXJzb24tY2VudHJlZCBISVYgc3RyYXRlZ2ljIGluZm9ybWF0aW9uOiBzdHJlbmd0aGVuaW5nIHJvdXRpbmUgZGF0YSBmb3IgaW1wYWN0LiBHZW5ldmE6IFdvcmxkIEhlYWx0aCBPcmdhbml6YXRpb247IDIwMjIKICogCiAqIERhdGEgQ29uY2VwdHM6CiAqIEhJVi5BLkRFMTc6IEFnZSB8IENhbGN1bGF0ZWQgYWdlIChudW1iZXIgb2YgeWVhcnMpIG9mIHRoZSBjbGllbnQgYmFzZWQgb24gZGF0ZSBvZiBiaXJ0aAogKiBISVYuQi5ERTE5ODogVk1NQyBwcm9jZWR1cmUgZGF0ZSB8IERhdGUgb24gd2hpY2ggYSB2b2x1bnRhcnkgbWVkaWNhbCBtYWxlIGNpcmN1bWNpc2lvbiBwcm9jZWR1cmUgd2FzIHBlcmZvcm1lZAogKiBISVYuQi5ERTIwMTogQWR2ZXJzZSBldmVudCBzZXZlcml0eSB8IFNldmVyaXR5IG9mIHRoZSBhZHZlcnNlIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCB2b2x1bnRhcnkgbWVkaWNhbCBtYWxlIGNpcmN1bWNpc2lvbiAoVk1NQykgcHJvY2VkdXJlCiAqIEhJVi5CLkRFMjAyOiBNb2RlcmF0ZSB8IFNldmVyaXR5IG9mIHRoZSBhZHZlcnNlIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCBWTU1DIHByb2NlZHVyZSB3YXMgbW9kZXJhdGUKICogSElWLkIuREUyMDM6IFNldmVyZSB8IFNldmVyaXR5IG9mIHRoZSBhZHZlcnNlIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCBWTU1DIHByb2NlZHVyZSB3YXMgc2V2ZXJlCiAqIEhJVi5CLkRFMjA0OiBUaW1pbmcgb2YgYWR2ZXJzZSBldmVudCB8IFdoZW4gdGhlIGFkdmVyc2UgZXZlbnQgYXNzb2NpYXRlZCB3aXRoIFZNTUMgcHJvY2VkdXJlIG9jY3VycmVkCiAqIEhJVi5CLkRFMjA1OiBJbnRyYW9wZXJhdGl2ZSB8IFRoZSBhZHZlcnNlIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCBWTU1DIHByb2NlZHVyZSBvY2N1cnJlZCBkdXJpbmcgdGhlIHByb2NlZHVyZQogKiBISVYuQi5ERTIwNjogUG9zdG9wZXJhdGl2ZSB8IFRoZSBhZHZlcnNlIGV2ZW50IGFzc29jaWF0ZWQgd2l0aCBWTU1DIHByb2NlZHVyZSBvY2N1cnJlZCB3aXRoaW4gdGhlIGZpcnN0IDMwIGRheXMgYWZ0ZXIgdGhlIHByb2NlZHVyZQogKiBISVYuQi5ERTIwNzogVHlwZSBvZiBhZHZlcnNlIFZNTUMgZXZlbnQgfCBUeXBlIG9mIGFkdmVyc2UgZXZlbnQgYXNzb2NpYXRlZCB3aXRoIHZvbHVudGFyeSBtZWRpY2FsIG1hbGUgY2lyY3VtY2lzaW9uIChWTU1DKSBwcm9jZWR1cmUKICogSElWLkIuREUyMDg6IEFibm9ybWFsIHBhaW4gfCBDbGllbnQgZXhwZXJpZW5jZWQgYWJub3JtYWwgcGFpbgogKiBISVYuQi5ERTIwOTogQW5hZXN0aGVzaWEtcmVsYXRlZCBlZmZlY3RzIHwgQ2xpZW50IGhhZCBhbmFlc3RoZXNpYS1yZWxhdGVkIGVmZmVjdHMKICogSElWLkIuREUyMTA6IEJsZWVkaW5nIHwgQ2xpZW50IGhhZCBibGVlZGluZwogKiBISVYuQi5ERTIxMTogRGFtYWdlIHRvIHRoZSBwZW5pcyB8IENsaWVudCBoYWQgZGFtYWdlIHRvIHRoZSBwZW5pcwogKiBISVYuQi5ERTIxMjogRGlmZmljdWx0eSB1cmluYXRpbmcgfCBDbGllbnQgaGFkIGRpZmZpY3VsdHkgdXJpbmF0aW5nCiAqIEhJVi5CLkRFMjEzOiBFeGNlc3NpdmUgYmxlZWRpbmcgfCBDbGllbnQgZXhwZXJpZW5jZWQgZXhjZXNzaXZlIGJsZWVkaW5nCiAqIEhJVi5CLkRFMjE0OiBFeGNlc3NpdmUgc2tpbiByZW1vdmFsIHwgQ2xpZW50IGV4cGVyaWVuY2VkIGV4Y2Vzc2l2ZSBza2luIHJlbW92YWwKICogSElWLkIuREUyMTU6IEV4Y2Vzc2l2ZSBzd2VsbGluZyB8IENsaWVudCBleHBlcmllbmNlZCBleGNlc3NpdmUgc3dlbGxpbmcKICogSElWLkIuREUyMTY6IEhhZW1hdG9tYSB8IENsaWVudCBleHBlcmllbmNlZCBoYWVtYXRvbWEKICogSElWLkIuREUyMTc6IEluZmVjdGlvbiB8IENsaWVudCBleHBlcmllbmNlZCBpbmZlY3Rpb24KICogSElWLkIuREUyMTg6IEluanVyeSB0byBnbGFucyB8IENsaWVudCBleHBlcmllbmNlZCBpbmp1cnkgdG8gZ2xhbnMKICogSElWLkIuREUyMTk6IFNjYXIgb3IgZGlzZmlndXJlbWVudCB8IENsaWVudCBleHBlcmllbmNlZCBzY2FyIG9yIGRpc2ZpZ3VyZW1lbnQKICogSElWLkIuREUyMjA6IFNoYXJwcyBpbmp1cnkgdG8gcGVyc29ubmVsIHwgRHVyaW5nIFZNTUMgcHJvY2VkdXJlIHRoZXJlIHdhcyBzaGFycHMgaW5qdXJ5IHRvIHBlcnNvbm5lbAogKiBISVYuQi5ERTIyMTogV291bmQgZGlzcnVwdGlvbiB8IENsaWVudCBleHBlcmllbmNlZCB3b3VuZCBkaXNydXB0aW9uCiAqIEhJVi5CLkRFMjIyOiBPdGhlciB8IENsaWVudCBleHBlcmllbmNlZCBvdGhlciBhZHZlcnNlIFZNTUMgZXZlbnQKICoKICogQWRkaXRpb25hbCBDb250ZXh0CiAqIC0gd2hhdCBpdCBtZWFzdXJlczog4oCiwqBUaGlzIGluZGljYXRvciBtZWFzdXJlcyB3aGV0aGVyIFZNTUMgc2VydmljZXMgbWVldCBuYXRpb25hbCBzdGFuZGFyZHMgb2Ygc2FmZXR5IGFuZCBlZmZlY3RpdmVuZXNzLgogKiAtIHJhdGlvbmFsZTog4oCiIFN0YWZmIGNvbmR1Y3RpbmcgbWVkaWNhbCBjaXJjdW1jaXNpb25zIG11c3QgaGF2ZSBhcHByb3ByaWF0ZSB0cmFpbmluZyBhbmQgYWNjZXNzIHRvIHByb3BlciBlcXVpcG1lbnQuIHwg4oCiwqBUcmVuZHMgaW4gYWR2ZXJzZSBldmVudHMgbWF5IGluZGljYXRlIHdoZXJlIHNlcnZpY2UgcHJvdmlkZXJzIG5lZWQgYWRkaXRpb25hbCBzdXBwb3J0LiB8IOKAosKgSW50cmFvcGVyYXRpdmUgYWR2ZXJzZSBldmVudHMgbWF5IGluY2x1ZGUgcGFpbiwgZXhjZXNzaXZlIGJsZWVkaW5nLCBhbmFlc3RoZXNpYS1yZWxhdGVkIGVmZmVjdHMsIGV4Y2Vzc2l2ZSBza2luIHJlbW92YWwsIGRhbWFnZSB0byB0aGUgcGVuaXMsIHNoYXJwcyBpbmp1cnkgdG8gcGVyc29ubmVsLiBQb3N0b3BlcmF0aXZlIGFkdmVyc2UgZXZlbnRzIG1heSBpbmNsdWRlIGFibm9ybWFsIHBhaW4sIGV4Y2Vzc2l2ZSBzd2VsbGluZywgaW5mZWN0aW9uLCBoYWVtYXRvbWEsIGJsZWVkaW5nLCBkaWZmaWN1bHR5IHVyaW5hdGluZywgd291bmQgZGlzcnVwdGlvbiwgc2NhciBvciBkaXNmaWd1cmVtZW50LCBpbmp1cnkgdG8gZ2xhbnMsIGV4Y2Vzc2l2ZSBza2luIHJlbW92YWwuIHwg4oCiwqBNb2RlcmF0ZSBvciBzZXZlcmUgYWR2ZXJzZSBldmVudHMgaW5jbHVkZSBjb21wbGljYXRpb25zIHJlc3VsdGluZyBpbiBkZWF0aCBvciBob3NwaXRhbGl6YXRpb24gd2l0aGluIDMwIGRheXMgb3IgcGVybWFuZW50IGRpc2FiaWxpdHkuCiAqIC0gbWV0aG9kOiBJbmRpdmlkdWFsLWxldmVsIGRhdGEgb2J0YWluZWQgZnJvbSBwcm9ncmFtbWUgcmVjb3JkcyB8ICB8IFRoaXMgaW5kaWNhdG9yIGNhbiBiZSByZXBvcnRlZCBhcyBzaW1wbHkgdGhlIGFic29sdXRlIG51bWJlciBvZiBtZW4gZXhwZXJpZW5jaW5nIGFkdmVyc2UgZXZlbnRzIG9jY3VycmluZyBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBvciBjYW4gYmUgcmVwb3J0ZWQgYXMgYSBwcm9wb3J0aW9uIG9mIHRoZSBudW1iZXIgb2YgcHJvY2VkdXJlcyBjb25kdWN0ZWQuCiAqIAogKiBTdWdnZXN0ZWQgU2NvcmluZyBNZXRob2Q6IHByb3BvcnRpb24gfCBodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NxZm1lYXN1cmVzL1N0cnVjdHVyZURlZmluaXRpb24vcHJvcG9ydGlvbi1tZWFzdXJlLWNxZm0KICovCgpsaWJyYXJ5IEhJVklORDE2TG9naWM8L2E6cz4KICAgICAgPC9hOnM+CiAgIDwvYW5ub3RhdGlvbj4KICAgPGlkZW50aWZpZXIgaWQ9IkhJVklORDE2TG9naWMiIHN5c3RlbT0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2Ii8+CiAgIDxzY2hlbWFJZGVudGlmaWVyIGlkPSJ1cm46aGw3LW9yZzplbG0iIHZlcnNpb249InIxIi8+CiAgIDx1c2luZ3M+CiAgICAgIDxkZWYgbG9jYWxJZGVudGlmaWVyPSJTeXN0ZW0iIHVyaT0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIi8+CiAgICAgIDxkZWYgbG9jYWxJZD0iMSIgbG9jYXRvcj0iNzI6MS03MjoyNiIgbG9jYWxJZGVudGlmaWVyPSJGSElSIiB1cmk9Imh0dHA6Ly9obDcub3JnL2ZoaXIiIHZlcnNpb249IjQuMC4xIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMSI+CiAgICAgICAgICAgICAgIDxhOnM+Ly8gSW5jbHVkZWQgTGlicmFyaWVzCnVzaW5nIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVI8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzQuMC4xJzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgPC91c2luZ3M+CiAgIDxpbmNsdWRlcz4KICAgICAgPGRlZiBsb2NhbElkPSIyIiBsb2NhdG9yPSI3NDoxLTc0OjQ0IiBsb2NhbElkZW50aWZpZXI9IkhJQyIgcGF0aD0iaHR0cDovL3NtYXJ0Lndoby5pbnQvaGl2L0hJVkNvbW1vbiIgdmVyc2lvbj0iMC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkhJVkNvbW1vbjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnMC4wLjEnIGNhbGxlZCBISUM8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMyIgbG9jYXRvcj0iNzU6MS03NTozNSIgbG9jYWxJZGVudGlmaWVyPSJGSElSSGVscGVycyIgcGF0aD0iaHR0cDovL2hsNy5vcmcvZmhpci9GSElSSGVscGVycyIgdmVyc2lvbj0iNC4wLjEiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzIj4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkZISVJIZWxwZXJzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICc0LjAuMSc8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNCIgbG9jYXRvcj0iNzY6MS03NjoyOSIgbG9jYWxJZGVudGlmaWVyPSJXQ29tIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvV0hPQ29tbW9uIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5XSE9Db21tb248L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGNhbGxlZCBXQ29tPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjUiIGxvY2F0b3I9Ijc3OjEtNzc6MzYiIGxvY2FsSWRlbnRpZmllcj0iSENDIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvSElWQ29uY2VwdHNDdXN0b20iPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI1Ij4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkhJVkNvbmNlcHRzQ3VzdG9tPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBjYWxsZWQgSENDPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjYiIGxvY2F0b3I9Ijc5OjEtNzk6MzkiIGxvY2FsSWRlbnRpZmllcj0iSElFIiBwYXRoPSJodHRwOi8vc21hcnQud2hvLmludC9oaXYvSElWSW5kaWNhdG9yRWxlbWVudHMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSI2Ij4KICAgICAgICAgICAgICAgPGE6cz5pbmNsdWRlIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICA8YTpzPkhJVkluZGljYXRvckVsZW1lbnRzPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiBjYWxsZWQgSElFPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L2luY2x1ZGVzPgogICA8cGFyYW1ldGVycz4KICAgICAgPGRlZiBsb2NhbElkPSIxMiIgbG9jYXRvcj0iODI6MS04Mjo4OCIgbmFtZT0iTWVhc3VyZW1lbnQgUGVyaW9kIiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMTIiPgogICAgICAgICAgICAgICA8YTpzPi8vIEluZGljYXRvciBEZWZpbml0aW9uCnBhcmFtZXRlciAmcXVvdDtNZWFzdXJlbWVudCBQZXJpb2QmcXVvdDsgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMTEiPgogICAgICAgICAgICAgICAgICA8YTpzPkludGVydmFsJmx0OzwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjEwIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5EYXRlPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPj48L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IGRlZmF1bHQgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iOSI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNyI+SW50ZXJ2YWxbQDIwMjMtMDEtMDEsIEAyMDIzLTAxLTMwXTwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGRlZmF1bHQgbG9jYWxJZD0iOSIgbG9jYXRvcj0iODI6NTUtODI6ODgiIGxvd0Nsb3NlZD0idHJ1ZSIgaGlnaENsb3NlZD0idHJ1ZSIgeHNpOnR5cGU9IkludGVydmFsIj4KICAgICAgICAgICAgPGxvdyBsb2NhbElkPSI3IiBsb2NhdG9yPSI4Mjo2NC04Mjo3NCIgeHNpOnR5cGU9IkRhdGUiPgogICAgICAgICAgICAgICA8eWVhciB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjIwMjMiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxtb250aCB2YWx1ZVR5cGU9InQ6SW50ZWdlciIgdmFsdWU9IjEiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgIDxkYXkgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICA8L2xvdz4KICAgICAgICAgICAgPGhpZ2ggbG9jYWxJZD0iOCIgbG9jYXRvcj0iODI6NzctODI6ODciIHhzaTp0eXBlPSJEYXRlIj4KICAgICAgICAgICAgICAgPHllYXIgdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIyMDIzIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8bW9udGggdmFsdWVUeXBlPSJ0OkludGVnZXIiIHZhbHVlPSIxIiB4c2k6dHlwZT0iTGl0ZXJhbCIvPgogICAgICAgICAgICAgICA8ZGF5IHZhbHVlVHlwZT0idDpJbnRlZ2VyIiB2YWx1ZT0iMzAiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgIDwvaGlnaD4KICAgICAgICAgPC9kZWZhdWx0PgogICAgICAgICA8cGFyYW1ldGVyVHlwZVNwZWNpZmllciBsb2NhbElkPSIxMSIgbG9jYXRvcj0iODI6MzItODI6NDUiIHhzaTp0eXBlPSJJbnRlcnZhbFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICA8cG9pbnRUeXBlIGxvY2FsSWQ9IjEwIiBsb2NhdG9yPSI4Mjo0MS04Mjo0NCIgbmFtZT0idDpEYXRlIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgIDwvcGFyYW1ldGVyVHlwZVNwZWNpZmllcj4KICAgICAgPC9kZWY+CiAgIDwvcGFyYW1ldGVycz4KICAgPGNvbnRleHRzPgogICAgICA8ZGVmIGxvY2F0b3I9Ijg0OjEtODQ6MTUiIG5hbWU9IlBhdGllbnQiLz4KICAgPC9jb250ZXh0cz4KICAgPHN0YXRlbWVudHM+CiAgICAgIDxkZWYgbG9jYXRvcj0iODQ6MS04NDoxNSIgbmFtZT0iUGF0aWVudCIgY29udGV4dD0iUGF0aWVudCI+CiAgICAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJTaW5nbGV0b25Gcm9tIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYXRvcj0iODQ6MS04NDoxNSIgZGF0YVR5cGU9ImZoaXI6UGF0aWVudCIgdGVtcGxhdGVJZD0iaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL1BhdGllbnQiIHhzaTp0eXBlPSJSZXRyaWV2ZSIvPgogICAgICAgICA8L2V4cHJlc3Npb24+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjE0IiBsb2NhdG9yPSI5MToxLTkyOjYiIG5hbWU9IkluaXRpYWwgUG9wdWxhdGlvbiIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjE0Ij4KICAgICAgICAgICAgICAgPGE6cyByPSIxMyI+LyogUG9wdWxhdGlvbnMgKi8KCi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICZxdW90O0luaXRpYWwgUG9wdWxhdGlvbiZxdW90OzoKICB0cnVlPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjEzIiBsb2NhdG9yPSI5MjozLTkyOjYiIHZhbHVlVHlwZT0idDpCb29sZWFuIiB2YWx1ZT0idHJ1ZSIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMzAiIGxvY2F0b3I9IjEwMToxLTEwNTozIiBuYW1lPSJOdW1lcmF0b3IiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzMCI+CiAgICAgICAgICAgICAgIDxhOnM+LyoqCiAqIE51bWVyYXRvcgogKiAKICogRGVmaW5pdGlvbjogTnVtYmVyIG9mIHBlb3BsZSBleHBlcmllbmNpbmcgYXQgbGVhc3Qgb25lIG1vZGVyYXRlIG9yIHNldmVyZSBhZHZlcnNlIGV2ZW50IGR1cmluZyBvciBmb2xsb3dpbmcgY2lyY3VtY2lzaW9uIHN1cmdlcnkgZHVyaW5nIHRoZSByZXBvcnRpbmcgcGVyaW9kCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggJnF1b3Q7Vk1NQyBwcm9jZWR1cmUgZGF0ZSZxdW90OyBpbiB0aGUgcmVwb3J0aW5nIHBlcmlvZCBBTkQgJnF1b3Q7QWR2ZXJzZSBldmVudCBzZXZlcml0eSZxdW90OyBJTiAnTW9kZXJhdGUnLCAnU2V2ZXJlJyBBTkQgJnF1b3Q7VGltaW5nIG9mIGFkdmVyc2UgZXZlbnQmcXVvdDsgTEVTUyBUSEFOIDMwIGRheXMgZnJvbSAmcXVvdDtWTU1DIHByb2NlZHVyZSBkYXRlJnF1b3Q7CiAqLwoKZGVmaW5lICZxdW90O051bWVyYXRvciZxdW90OzoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyOSI+CiAgICAgICAgICAgICAgICAgIDxhOnM+ZXhpc3RzPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjgiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPig8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyOCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUUuJnF1b3Q7Vk1NQ19hZHZlcnNlX2V2ZW50JnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gVk1BQzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+d2hlcmUgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPig8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjEiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjE4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIxNyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+Vk1BQzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPnNldmVyaXR5PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gPSA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMTkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhDQzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O3NldmVyZSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgb3IgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjIzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+Vk1BQzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPnNldmVyaXR5PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gPSA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhDQzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O21vZGVyYXRlJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPik8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4KICApPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjkiIGxvY2F0b3I9IjEwMjozLTEwNTozIiB4c2k6dHlwZT0iRXhpc3RzIj4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjgiIGxvY2F0b3I9IjEwMjo5LTEwNTozIiB4c2k6dHlwZT0iUXVlcnkiPgogICAgICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjE2IiBsb2NhdG9yPSIxMDI6MTAtMTAyOjM4IiBhbGlhcz0iVk1BQyI+CiAgICAgICAgICAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjE1IiBsb2NhdG9yPSIxMDI6MTAtMTAyOjMzIiBuYW1lPSJWTU1DX2FkdmVyc2VfZXZlbnQiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICAgICA8d2hlcmUgbG9jYWxJZD0iMjciIGxvY2F0b3I9IjEwMzo1LTEwNDozOCIgeHNpOnR5cGU9Ik9yIj4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjEiIGxvY2F0b3I9IjEwMzoxMi0xMDM6MzkiIHhzaTp0eXBlPSJFcXVhbCI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvQ29uY2VwdCIgbGlicmFyeU5hbWU9IkZISVJIZWxwZXJzIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIxOCIgbG9jYXRvcj0iMTAzOjEyLTEwMzoyNCIgcGF0aD0ic2V2ZXJpdHkiIHNjb3BlPSJWTUFDIiB4c2k6dHlwZT0iUHJvcGVydHkiLz4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCB4c2k6dHlwZT0iVG9Db25jZXB0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjAiIGxvY2F0b3I9IjEwMzoyOC0xMDM6MzkiIG5hbWU9InNldmVyZSIgbGlicmFyeU5hbWU9IkhDQyIgeHNpOnR5cGU9IkNvZGVSZWYiLz4KICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI2IiBsb2NhdG9yPSIxMDQ6OC0xMDQ6MzciIHhzaTp0eXBlPSJFcXVhbCI+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIG5hbWU9IlRvQ29uY2VwdCIgbGlicmFyeU5hbWU9IkZISVJIZWxwZXJzIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyMyIgbG9jYXRvcj0iMTA0OjgtMTA0OjIwIiBwYXRoPSJzZXZlcml0eSIgc2NvcGU9IlZNQUMiIHhzaTp0eXBlPSJQcm9wZXJ0eSIvPgogICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIHhzaTp0eXBlPSJUb0NvbmNlcHQiPgogICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNSIgbG9jYXRvcj0iMTA0OjI0LTEwNDozNyIgbmFtZT0ibW9kZXJhdGUiIGxpYnJhcnlOYW1lPSJIQ0MiIHhzaTp0eXBlPSJDb2RlUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8L3doZXJlPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMzMiIGxvY2F0b3I9IjExNToxLTExNjoxMiIgbmFtZT0iRGVub21pbmF0b3IiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzMyI+CiAgICAgICAgICAgICAgIDxhOnM+LyoqCiAqIERlbm9taW5hdG9yCiAqCiAqIERlZmluaXRpb246IGEpIDEgfCBiKSBUb3RhbCBudW1iZXIgb2YgaW5kaXZpZHVhbHMgdW5kZXIgZ29pbmcgVk1NQyBwZXJmb3JtZWQgYWNjb3JkaW5nIHRvIG5hdGlvbmFsIHN0YW5kYXJkIGR1cmluZyB0aGUgcmVwb3J0aW5nIHBlcmlvZAogKiBDYWxjdWxhdGlvbjogYSkgMSB8IGIpIENPVU5UIG9mIGNsaWVudHMgd2l0aCBhICZxdW90O1ZNTUMgcHJvY2VkdXJlIGRhdGUmcXVvdDsgaW4gdGhlIHJlcG9ydGluZyBwZXJpb2QKICovCgpkZWZpbmUgJnF1b3Q7RGVub21pbmF0b3ImcXVvdDs6CiAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMzIiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjMxIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjMyIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtWTU1DJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMzIiIGxvY2F0b3I9IjExNjozLTExNjoxMiIgbmFtZT0iVk1NQyIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMzYiIGxvY2F0b3I9IjEyNzoxLTEyODo0MiIgbmFtZT0iQWRtaW5pc3RyYXRpdmUgR2VuZGVyIFN0cmF0aWZpZXIiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIzNiI+CiAgICAgICAgICAgICAgIDxhOnM+LyogZW5kIFBvcHVsYXRpb25zICovCgoKCi8qCiAqIERpc2FnZ3JlZ2F0b3JzCiAqLwoKZGVmaW5lICZxdW90O0FkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyJnF1b3Q7OgoJPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iMzUiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjM0Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjM1Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtCeSBBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjM1IiBsb2NhdG9yPSIxMjg6Mi0xMjg6NDIiIG5hbWU9IkJ5IEFkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIzOSIgbG9jYXRvcj0iMTMwOjEtMTMxOjI2IiBuYW1lPSJBZ2UgU3RyYXRpZmllciIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjM5Ij4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7QWdlIFN0cmF0aWZpZXImcXVvdDs6Cgk8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIzOCI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzciPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMzgiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0J5IEFnZSBTdHJhdGlmaWVyIDMmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIzOCIgbG9jYXRvcj0iMTMxOjItMTMxOjI2IiBuYW1lPSJCeSBBZ2UgU3RyYXRpZmllciAzIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSI0MiIgbG9jYXRvcj0iMTMzOjEtMTM0OjM4IiBuYW1lPSJHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNDIiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyJnF1b3Q7OgoJPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnMgcj0iNDEiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjQwIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjQxIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgIDwvYW5ub3RhdGlvbj4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iNDEiIGxvY2F0b3I9IjEzNDoyLTEzNDozOCIgbmFtZT0iQnkgR2VvZ3JhcGhpYyBSZWdpb24gU3RyYXRpZmllciIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNDUiIGxvY2F0b3I9IjEzNjoxLTEzNzoxNyIgbmFtZT0iU2V0dGluZyIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjQ1Ij4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7U2V0dGluZyZxdW90OzoKICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjQ0Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI0MyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI0NCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7c2V0dGluZyZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjQ0IiBsb2NhdG9yPSIxMzc6NS0xMzc6MTciIG5hbWU9InNldHRpbmciIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjQ4IiBsb2NhdG9yPSIxMzk6MS0xNDA6MzMiIG5hbWU9IlZNTUNfYWR2ZXJzZV9ldmVudF90eXBlIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iNDgiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSAmcXVvdDtWTU1DX2FkdmVyc2VfZXZlbnRfdHlwZSZxdW90OzoKICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjQ3Ij4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI0NiI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI0NyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7Vk1NQ19hZHZlcnNlX2V2ZW50X3R5cGUmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSI0NyIgbG9jYXRvcj0iMTQwOjUtMTQwOjMzIiBuYW1lPSJWTU1DX2FkdmVyc2VfZXZlbnRfdHlwZSIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iNTEiIGxvY2F0b3I9IjE0MjoxLTE0MzozMyIgbmFtZT0iVk1NQ19hZHZlcnNlX2V2ZW50X3RpbWluZyIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjUxIj4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgJnF1b3Q7Vk1NQ19hZHZlcnNlX2V2ZW50X3RpbWluZyZxdW90OzoKICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjUwIj4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI0OSI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI1MCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+Vk1NQ19hZHZlcnNlX2V2ZW50X3RpbWluZzwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjUwIiBsb2NhdG9yPSIxNDM6NS0xNDM6MzMiIG5hbWU9IlZNTUNfYWR2ZXJzZV9ldmVudF90aW1pbmciIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjgyIiBsb2NhdG9yPSIxNDk6MS0xNTU6NDQiIG5hbWU9IlN0cmF0aWZpY2F0aW9uIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iODIiPgogICAgICAgICAgICAgICA8YTpzPi8vcHJvdmlkZXIgdHlwZSBub3QgcHJvdmlkZWQ/Ci8vc2VydmljZSBzaXRlIG5vdCBwcm92aWRlZD8KCmRlZmluZSAmcXVvdDtTdHJhdGlmaWNhdGlvbiZxdW90OzoKIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjgxIj4KICAgICAgICAgICAgICAgICAgPGE6cyByPSI3NyI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNzUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjcxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2OSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjYxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1OSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjU0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1MyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0J5IEFkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyJnF1b3Q7PC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNTQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPmNvZGU8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiAKICArIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjU1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4nOic8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiArIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjU4Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1NyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+SElFPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI1OCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JnF1b3Q7QnkgQWdlIFN0cmF0aWZpZXImcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KKyA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2MCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JzonPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gKyA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2MyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNjIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNjMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O0J5IEdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXImcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KKyA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2OCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+Q29tYmluZSg8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI2NiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNjUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNjYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPnNldHRpbmc8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiwgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNjciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPic6JzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4pPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4KKyA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI3MCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+JzonPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gKyA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI3NCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNzMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjcyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5ISUU8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjczIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4mcXVvdDtWTU1DX2FkdmVyc2VfZXZlbnRfdHlwZSZxdW90OzwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9Ijc0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5jb2RlPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+IAorIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9Ijc2Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4nOic8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPiArIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjgwIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI3OSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNzgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkhJRTwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iNzkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiZxdW90O1ZNTUNfYWR2ZXJzZV9ldmVudF90aW1pbmcmcXVvdDs8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSI4MCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+Y29kZTwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSI4MSIgbG9jYXRvcj0iMTUwOjItMTU1OjQ0IiB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI3NyIgbG9jYXRvcj0iMTUwOjItMTU1OjUiIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9Ijc1IiBsb2NhdG9yPSIxNTA6Mi0xNTQ6NDIiIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjcxIiBsb2NhdG9yPSIxNTA6Mi0xNTQ6NSIgeHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNjkiIGxvY2F0b3I9IjE1MDoyLTE1MzoyNyIgeHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNjQiIGxvY2F0b3I9IjE1MDoyLTE1Mjo0NSIgeHNpOnR5cGU9IkNvbmNhdGVuYXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNjEiIGxvY2F0b3I9IjE1MDoyLTE1Mjo1IiB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI1OSIgbG9jYXRvcj0iMTUwOjItMTUxOjMzIiB4c2k6dHlwZT0iQ29uY2F0ZW5hdGUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI1NiIgbG9jYXRvcj0iMTUwOjItMTUxOjciIHhzaTp0eXBlPSJDb25jYXRlbmF0ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjU0IiBsb2NhdG9yPSIxNTA6Mi0xNTA6NDciIHBhdGg9ImNvZGUiIHhzaTp0eXBlPSJQcm9wZXJ0eSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgbG9jYWxJZD0iNTMiIGxvY2F0b3I9IjE1MDoyLTE1MDo0MiIgbmFtZT0iQnkgQWRtaW5pc3RyYXRpdmUgR2VuZGVyIFN0cmF0aWZpZXIiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNTUiIGxvY2F0b3I9IjE1MTo1LTE1MTo3IiB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0iOiIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI1OCIgbG9jYXRvcj0iMTUxOjExLTE1MTozMyIgbmFtZT0iQnkgQWdlIFN0cmF0aWZpZXIiIGxpYnJhcnlOYW1lPSJISUUiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNjAiIGxvY2F0b3I9IjE1MjozLTE1Mjo1IiB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0iOiIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBuYW1lPSJUb1N0cmluZyIgbGlicmFyeU5hbWU9IkZISVJIZWxwZXJzIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSI2MyIgbG9jYXRvcj0iMTUyOjktMTUyOjQ1IiBuYW1lPSJCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNjgiIGxvY2F0b3I9IjE1MzozLTE1MzoyNyIgeHNpOnR5cGU9IkNvbWJpbmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjY2IiBsb2NhdG9yPSIxNTM6MTEtMTUzOjIxIiBuYW1lPSJzZXR0aW5nIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VwYXJhdG9yIGxvY2FsSWQ9IjY3IiBsb2NhdG9yPSIxNTM6MjQtMTUzOjI2IiB2YWx1ZVR5cGU9InQ6U3RyaW5nIiB2YWx1ZT0iOiIgeHNpOnR5cGU9IkxpdGVyYWwiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjcwIiBsb2NhdG9yPSIxNTQ6My0xNTQ6NSIgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9IjoiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iNzQiIGxvY2F0b3I9IjE1NDo5LTE1NDo0MiIgcGF0aD0iY29kZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSI3MyIgbG9jYXRvcj0iMTU0OjktMTU0OjM3IiBuYW1lPSJWTU1DX2FkdmVyc2VfZXZlbnRfdHlwZSIgbGlicmFyeU5hbWU9IkhJRSIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgPC9vcGVyYW5kPgogICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9Ijc2IiBsb2NhdG9yPSIxNTU6My0xNTU6NSIgdmFsdWVUeXBlPSJ0OlN0cmluZyIgdmFsdWU9IjoiIHhzaTp0eXBlPSJMaXRlcmFsIi8+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iODAiIGxvY2F0b3I9IjE1NTo5LTE1NTo0NCIgcGF0aD0iY29kZSIgeHNpOnR5cGU9IlByb3BlcnR5Ij4KICAgICAgICAgICAgICAgPHNvdXJjZSBsb2NhbElkPSI3OSIgbG9jYXRvcj0iMTU1OjktMTU1OjM5IiBuYW1lPSJWTU1DX2FkdmVyc2VfZXZlbnRfdGltaW5nIiBsaWJyYXJ5TmFtZT0iSElFIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgIDwvc3RhdGVtZW50cz4KPC9saWJyYXJ5Pgo="^^xsd:base64Binary ]
  ] ) . #