CDC National Healthcare Safety Network (NHSN) Digital Quality Measures (dQM) Content Package IG
3.0.0 - Release 3 - draft
CDC National Healthcare Safety Network (NHSN) Digital Quality Measures (dQM) Content Package IG - Local Development build (v3.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Page standards status: Trial-use | Maturity Level: 2 |
<Library xmlns="http://hl7.org/fhir">
<id value="NHSNAcuteCareHospitalDailyInitialPopulation"/>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p><b style="color: maroon">Exception generating Narrative: Unable to read attribute on <FHIR.CodeableConcept> at line 1603 column 71</b></p></div>
</text>
<contained>
<Parameters>
<id value="options"/>
<parameter>
<name value="translatorVersion"/>
<valueString value="3.27.0"/>
</parameter>
<parameter>
<name value="option"/>
<valueString value="EnableDateRangeOptimization"/>
</parameter>
<parameter>
<name value="option"/>
<valueString value="EnableAnnotations"/>
</parameter>
<parameter>
<name value="option"/>
<valueString value="EnableLocators"/>
</parameter>
<parameter>
<name value="option"/>
<valueString value="DisableListDemotion"/>
</parameter>
<parameter>
<name value="option"/>
<valueString value="DisableListPromotion"/>
</parameter>
<parameter>
<name value="analyzeDataRequirements"/>
<valueBoolean value="false"/>
</parameter>
<parameter>
<name value="collapseDataRequirements"/>
<valueBoolean value="true"/>
</parameter>
<parameter>
<name value="compatibilityLevel"/>
<valueString value="1.5"/>
</parameter>
<parameter>
<name value="enableCqlOnly"/>
<valueBoolean value="false"/>
</parameter>
<parameter>
<name value="errorLevel"/>
<valueString value="Info"/>
</parameter>
<parameter>
<name value="signatureLevel"/>
<valueString value="Overloads"/>
</parameter>
<parameter>
<name value="validateUnits"/>
<valueBoolean value="true"/>
</parameter>
<parameter>
<name value="verifyOnly"/>
<valueBoolean value="false"/>
</parameter>
</Parameters>
</contained>
<extension url="http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions">
<valueReference>
<reference value="#options"/>
</valueReference>
</extension>
<url
value="http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/NHSNAcuteCareHospitalDailyInitialPopulation"/>
<version value="3.0.0"/>
<name value="NHSNAcuteCareHospitalDailyInitialPopulation"/>
<status value="draft"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2026-06-24T15:27:22+00:00"/>
<publisher value="CDC National Healthcare Safety Network (NHSN)"/>
<contact>
<name value="CDC National Healthcare Safety Network (NHSN)"/>
<telecom>
<system value="url"/>
<value value="http://www.cdc.gov/nhsn"/>
</telecom>
<telecom>
<system value="email"/>
<value value="nhsn@cdc.gov"/>
</telecom>
</contact>
<jurisdiction>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="US"/>
</coding>
</jurisdiction>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library FHIRHelpers"/>
<resource
value="http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/FHIRHelpers|4.0.2"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library NHSNHelpers"/>
<resource
value="http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/NHSNHelpers|0.0.002"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library SharedResource"/>
<resource
value="http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/SharedResourceCreation|0.1.010"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Code system ActCode"/>
<resource
value="http://terminology.hl7.org/CodeSystem/v3-ActCode|10.0.0"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Code system LOINC"/>
<resource value="http://loinc.org"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Code system Observation Category"/>
<resource
value="http://terminology.hl7.org/CodeSystem/observation-category|2.0.0"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Code system RXNORM"/>
<resource value="http://www.nlm.nih.gov/research/umls/rxnorm"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Encounter Inpatient"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Inpatient, Emergency, and Observation Locations"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.265"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Observation Services"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Discharge Disposition"/>
<resource
value="http://terminology.hl7.org/ValueSet/clinical-discharge-disposition|2.0.0"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set COVID_19 (Tests for SARS_CoV_2 Nucleic Acid)"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1142|20250218"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set COVID_19 (Tests for SARS_CoV_2 Antigen)"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1158|20240123"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set COVID_19 (Organism or Substance in Lab Results)"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1143|20250218"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Influenza (Tests for influenza A or B virus Nucleic Acid)"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.336|20250218"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Influenza (Tests for influenza A or B virus Antigen)"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.337"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display
value="Value set Influenza (influenza A or B virus in Lab Results)"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.340"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set RSV (Tests for RSV Antigen)"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1311"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set RSV (Tests for RSV Nucleic Acid)"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1312|20250218"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set RSV (Organism or Substance in Lab Results)"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1308"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set LIVD SARS CoV2 Test Result Codes"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1114.10"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Baricitinib"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2046"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Anakinra"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2054"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Sarilumab"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2084"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set COVID19 RxNorm Value Set for Tocilizumab"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2087"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Casirivimab"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2097"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Imdevimab"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2098"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Bamlanivimab"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2099"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Etesevimab"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2100"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Sotrovimab"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2101"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Tofacitinib"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2102"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Casirivimab / Imdevimab"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2103"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Molnupiravir"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2119"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Remdesivir"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2081"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Nirmatrelvir / Ritonavir"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2104"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Bebtelovimab"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2105"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Baloxavir"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1190.85"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Peramivir"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1190.86"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Zanamivir"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1190.87"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Oseltamivir"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.3616.200.110.102.2078"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set Transmission Based Precaution Types"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.10.20.22.5.300|20240607"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Value set NHSN Inpatient Encounter Class Codes"/>
<resource
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274"/>
</relatedArtifact>
<parameter>
<name value="Measurement Period"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<type value="Period"/>
</parameter>
<parameter>
<name value="Patient"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Patient"/>
</parameter>
<parameter>
<name value="EncounterInpatient"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Encounter"/>
</parameter>
<parameter>
<name value="EncounterObservation"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Encounter"/>
</parameter>
<parameter>
<name value="Encounters with Patient Hospital Locations"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Encounter"/>
</parameter>
<parameter>
<name value="Initial Population"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Encounter"/>
</parameter>
<parameter>
<name value="COVID And Influenza Observation"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="RSV Observation"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="ACH Daily Observation"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="COVID And Influenza PRE Admission Observation"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="RSV PRE Admission Observation"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="COVID And Influenza DiagnosticReport"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="RSV DiagnosticReport"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="ACH Daily DiagnosticReport"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="COVID And Influenza DiagnosticReport PRE Admission"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="RSV DiagnosticReport PRE Admission"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="DiagnosticReports"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="Observations"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="COVID and Influenza DiagnosticReport Observations"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="COVID and Influenza DiagnosticReport Result from Lab"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="RSV Observations"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="RSV DiagnosticReport Observations"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="RSV DiagnosticReport Result from Lab"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="ACH Daily DiagnosticReport Result from Lab"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name
value="COVID and Influenza DiagnosticReport Result from Lab PRE Admission"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="RSV DiagnosticReport Result from Lab PRE Admission"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="SDE IP Encounters"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Encounter"/>
</parameter>
<parameter>
<name value="Encounters"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Encounter"/>
</parameter>
<parameter>
<name value="SDE Encounter"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Encounter"/>
</parameter>
<parameter>
<name value="SDE Minimal Patient"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Patient"/>
</parameter>
<parameter>
<name value="SDE Location"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Location"/>
</parameter>
<parameter>
<name value="SDE Encounter Discharge Dispositions"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Encounter"/>
</parameter>
<parameter>
<name value="SDE ACH Daily Observation"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="SDE RSV PRE Admission Observation"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="SDE COVID And Influenza PRE Admission Observation"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="SDE ACH Daily Specimen"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Specimen"/>
</parameter>
<parameter>
<name value="SDE RSV Specimen"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Specimen"/>
</parameter>
<parameter>
<name value="SDE COVID And Influenza Specimen"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Specimen"/>
</parameter>
<parameter>
<name value="SDE ACH Daily DiagnosticReport"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="SDE COVID And Influenza DiagnosticReport"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="SDE RSV DiagnosticReport"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="SDE ACH Daily DiagnosticReport Result from Lab"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="SDE COVID and Influenza DiagnosticReport Result from Lab"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="SDE RSV DiagnosticReport Result from Lab"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="DiagnosticReport"/>
</parameter>
<parameter>
<name value="SDE ACH Daily ServiceRequest"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="ServiceRequest"/>
</parameter>
<parameter>
<name value="SDE Isolation Precautions Implemented"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Procedure"/>
</parameter>
<parameter>
<name value="SDE Covid or Influenza Medication Administered"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="MedicationAdministration"/>
</parameter>
<parameter>
<name value="SDE Covid or Influenza Medication Ordered"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="MedicationRequest"/>
</parameter>
<parameter>
<name value="SDE Medication"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Medication"/>
</parameter>
<parameter>
<name value="SDE All Observations"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Observation"/>
</parameter>
<parameter>
<name value="SDE All ServiceRequests"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="ServiceRequest"/>
</parameter>
<parameter>
<name value="SDE All Procedures"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Procedure"/>
</parameter>
<dataRequirement>
<type value="Patient"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Patient"/>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Encounter"/>
<mustSupport value="type"/>
<mustSupport value="status"/>
<mustSupport value="period"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="identifier"/>
<mustSupport value="statusHistory"/>
<mustSupport value="class"/>
<mustSupport value="classHistory"/>
<mustSupport value="serviceType"/>
<mustSupport value="priority"/>
<mustSupport value="subject"/>
<mustSupport value="length"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="diagnosis"/>
<mustSupport value="account"/>
<mustSupport value="hospitalization"/>
<mustSupport value="location"/>
<mustSupport value="partOf"/>
<mustSupport value="hospitalization.dischargeDisposition"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Encounter"/>
<mustSupport value="class"/>
<mustSupport value="status"/>
<mustSupport value="period"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="identifier"/>
<mustSupport value="statusHistory"/>
<mustSupport value="classHistory"/>
<mustSupport value="type"/>
<mustSupport value="serviceType"/>
<mustSupport value="priority"/>
<mustSupport value="subject"/>
<mustSupport value="length"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="diagnosis"/>
<mustSupport value="account"/>
<mustSupport value="hospitalization"/>
<mustSupport value="location"/>
<mustSupport value="partOf"/>
<mustSupport value="hospitalization.dischargeDisposition"/>
<codeFilter>
<path value="class"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Encounter"/>
<mustSupport value="type"/>
<mustSupport value="status"/>
<mustSupport value="period"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="identifier"/>
<mustSupport value="statusHistory"/>
<mustSupport value="class"/>
<mustSupport value="classHistory"/>
<mustSupport value="serviceType"/>
<mustSupport value="priority"/>
<mustSupport value="subject"/>
<mustSupport value="length"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="diagnosis"/>
<mustSupport value="account"/>
<mustSupport value="hospitalization"/>
<mustSupport value="location"/>
<mustSupport value="partOf"/>
<mustSupport value="hospitalization.dischargeDisposition"/>
<codeFilter>
<path value="type"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Encounter"/>
<mustSupport value="class"/>
<mustSupport value="status"/>
<mustSupport value="period"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="identifier"/>
<mustSupport value="statusHistory"/>
<mustSupport value="classHistory"/>
<mustSupport value="type"/>
<mustSupport value="serviceType"/>
<mustSupport value="priority"/>
<mustSupport value="subject"/>
<mustSupport value="length"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="diagnosis"/>
<mustSupport value="account"/>
<mustSupport value="hospitalization"/>
<mustSupport value="location"/>
<mustSupport value="partOf"/>
<mustSupport value="hospitalization.dischargeDisposition"/>
<codeFilter>
<path value="class"/>
<code>
<system value="http://terminology.hl7.org/CodeSystem/v3-ActCode"/>
<code value="OBSENC"/>
<display value="observation encounter"/>
</code>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Encounter"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Encounter"/>
<mustSupport value="location"/>
<mustSupport value="period"/>
<mustSupport value="status"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="identifier"/>
<mustSupport value="statusHistory"/>
<mustSupport value="class"/>
<mustSupport value="classHistory"/>
<mustSupport value="type"/>
<mustSupport value="serviceType"/>
<mustSupport value="priority"/>
<mustSupport value="subject"/>
<mustSupport value="length"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="diagnosis"/>
<mustSupport value="account"/>
<mustSupport value="hospitalization"/>
<mustSupport value="partOf"/>
<mustSupport value="hospitalization.dischargeDisposition"/>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mustSupport value="code"/>
<mustSupport value="category"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<mustSupport value="specimen"/>
<mustSupport value="specimen.collection"/>
<mustSupport value="specimen.collection.collected"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="basedOn"/>
<mustSupport value="partOf"/>
<mustSupport value="subject"/>
<mustSupport value="focus"/>
<mustSupport value="encounter"/>
<mustSupport value="issued"/>
<mustSupport value="performer"/>
<mustSupport value="value"/>
<mustSupport value="dataAbsentReason"/>
<mustSupport value="interpretation"/>
<mustSupport value="note"/>
<mustSupport value="bodySite"/>
<mustSupport value="method"/>
<mustSupport value="device"/>
<mustSupport value="referenceRange"/>
<mustSupport value="hasMember"/>
<mustSupport value="derivedFrom"/>
<mustSupport value="component"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.336|20250218"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mustSupport value="code"/>
<mustSupport value="category"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<mustSupport value="specimen"/>
<mustSupport value="specimen.collection"/>
<mustSupport value="specimen.collection.collected"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="basedOn"/>
<mustSupport value="partOf"/>
<mustSupport value="subject"/>
<mustSupport value="focus"/>
<mustSupport value="encounter"/>
<mustSupport value="issued"/>
<mustSupport value="performer"/>
<mustSupport value="value"/>
<mustSupport value="dataAbsentReason"/>
<mustSupport value="interpretation"/>
<mustSupport value="note"/>
<mustSupport value="bodySite"/>
<mustSupport value="method"/>
<mustSupport value="device"/>
<mustSupport value="referenceRange"/>
<mustSupport value="hasMember"/>
<mustSupport value="derivedFrom"/>
<mustSupport value="component"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.337"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mustSupport value="code"/>
<mustSupport value="category"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<mustSupport value="specimen"/>
<mustSupport value="specimen.collection"/>
<mustSupport value="specimen.collection.collected"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="basedOn"/>
<mustSupport value="partOf"/>
<mustSupport value="subject"/>
<mustSupport value="focus"/>
<mustSupport value="encounter"/>
<mustSupport value="issued"/>
<mustSupport value="performer"/>
<mustSupport value="value"/>
<mustSupport value="dataAbsentReason"/>
<mustSupport value="interpretation"/>
<mustSupport value="note"/>
<mustSupport value="bodySite"/>
<mustSupport value="method"/>
<mustSupport value="device"/>
<mustSupport value="referenceRange"/>
<mustSupport value="hasMember"/>
<mustSupport value="derivedFrom"/>
<mustSupport value="component"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1142|20250218"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mustSupport value="code"/>
<mustSupport value="category"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<mustSupport value="specimen"/>
<mustSupport value="specimen.collection"/>
<mustSupport value="specimen.collection.collected"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="basedOn"/>
<mustSupport value="partOf"/>
<mustSupport value="subject"/>
<mustSupport value="focus"/>
<mustSupport value="encounter"/>
<mustSupport value="issued"/>
<mustSupport value="performer"/>
<mustSupport value="value"/>
<mustSupport value="dataAbsentReason"/>
<mustSupport value="interpretation"/>
<mustSupport value="note"/>
<mustSupport value="bodySite"/>
<mustSupport value="method"/>
<mustSupport value="device"/>
<mustSupport value="referenceRange"/>
<mustSupport value="hasMember"/>
<mustSupport value="derivedFrom"/>
<mustSupport value="component"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1158|20240123"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mustSupport value="code"/>
<mustSupport value="category"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<mustSupport value="specimen"/>
<mustSupport value="specimen.collection"/>
<mustSupport value="specimen.collection.collected"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="basedOn"/>
<mustSupport value="partOf"/>
<mustSupport value="subject"/>
<mustSupport value="focus"/>
<mustSupport value="encounter"/>
<mustSupport value="issued"/>
<mustSupport value="performer"/>
<mustSupport value="value"/>
<mustSupport value="dataAbsentReason"/>
<mustSupport value="interpretation"/>
<mustSupport value="note"/>
<mustSupport value="bodySite"/>
<mustSupport value="method"/>
<mustSupport value="device"/>
<mustSupport value="referenceRange"/>
<mustSupport value="hasMember"/>
<mustSupport value="derivedFrom"/>
<mustSupport value="component"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1312|20250218"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mustSupport value="code"/>
<mustSupport value="category"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<mustSupport value="specimen"/>
<mustSupport value="specimen.collection"/>
<mustSupport value="specimen.collection.collected"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="basedOn"/>
<mustSupport value="partOf"/>
<mustSupport value="subject"/>
<mustSupport value="focus"/>
<mustSupport value="encounter"/>
<mustSupport value="issued"/>
<mustSupport value="performer"/>
<mustSupport value="value"/>
<mustSupport value="dataAbsentReason"/>
<mustSupport value="interpretation"/>
<mustSupport value="note"/>
<mustSupport value="bodySite"/>
<mustSupport value="method"/>
<mustSupport value="device"/>
<mustSupport value="referenceRange"/>
<mustSupport value="hasMember"/>
<mustSupport value="derivedFrom"/>
<mustSupport value="component"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1311"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Observation"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Observation"/>
<mustSupport value="category"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<mustSupport value="specimen"/>
<mustSupport value="specimen.collection"/>
<mustSupport value="specimen.collection.collected"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="basedOn"/>
<mustSupport value="partOf"/>
<mustSupport value="code"/>
<mustSupport value="subject"/>
<mustSupport value="focus"/>
<mustSupport value="encounter"/>
<mustSupport value="issued"/>
<mustSupport value="performer"/>
<mustSupport value="value"/>
<mustSupport value="dataAbsentReason"/>
<mustSupport value="interpretation"/>
<mustSupport value="note"/>
<mustSupport value="bodySite"/>
<mustSupport value="method"/>
<mustSupport value="device"/>
<mustSupport value="referenceRange"/>
<mustSupport value="hasMember"/>
<mustSupport value="derivedFrom"/>
<mustSupport value="component"/>
</dataRequirement>
<dataRequirement>
<type value="Specimen"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Specimen"/>
<mustSupport value="id"/>
</dataRequirement>
<dataRequirement>
<type value="DiagnosticReport"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/DiagnosticReport"/>
<mustSupport value="code"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1142|20250218"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="DiagnosticReport"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/DiagnosticReport"/>
<mustSupport value="code"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1158|20240123"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="DiagnosticReport"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/DiagnosticReport"/>
<mustSupport value="code"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.336|20250218"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="DiagnosticReport"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/DiagnosticReport"/>
<mustSupport value="code"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.337"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="DiagnosticReport"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/DiagnosticReport"/>
<mustSupport value="code"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1312|20250218"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="DiagnosticReport"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/DiagnosticReport"/>
<mustSupport value="code"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1311"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="DiagnosticReport"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/DiagnosticReport"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
<mustSupport value="result"/>
</dataRequirement>
<dataRequirement>
<type value="Location"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Location"/>
</dataRequirement>
<dataRequirement>
<type value="ServiceRequest"/>
<profile value="http://hl7.org/fhir/StructureDefinition/ServiceRequest"/>
<mustSupport value="code"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="instantiatesCanonical"/>
<mustSupport value="instantiatesUri"/>
<mustSupport value="basedOn"/>
<mustSupport value="replaces"/>
<mustSupport value="requisition"/>
<mustSupport value="status"/>
<mustSupport value="intent"/>
<mustSupport value="category"/>
<mustSupport value="priority"/>
<mustSupport value="doNotPerform"/>
<mustSupport value="orderDetail"/>
<mustSupport value="quantity"/>
<mustSupport value="subject"/>
<mustSupport value="encounter"/>
<mustSupport value="occurrence"/>
<mustSupport value="asNeeded"/>
<mustSupport value="authoredOn"/>
<mustSupport value="performerType"/>
<mustSupport value="performer"/>
<mustSupport value="locationCode"/>
<mustSupport value="locationReference"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="insurance"/>
<mustSupport value="supportingInfo"/>
<mustSupport value="specimen"/>
<mustSupport value="bodySite"/>
<mustSupport value="note"/>
<mustSupport value="patientInstruction"/>
<mustSupport value="relevantHistory"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1142|20250218"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="ServiceRequest"/>
<profile value="http://hl7.org/fhir/StructureDefinition/ServiceRequest"/>
<mustSupport value="code"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="instantiatesCanonical"/>
<mustSupport value="instantiatesUri"/>
<mustSupport value="basedOn"/>
<mustSupport value="replaces"/>
<mustSupport value="requisition"/>
<mustSupport value="status"/>
<mustSupport value="intent"/>
<mustSupport value="category"/>
<mustSupport value="priority"/>
<mustSupport value="doNotPerform"/>
<mustSupport value="orderDetail"/>
<mustSupport value="quantity"/>
<mustSupport value="subject"/>
<mustSupport value="encounter"/>
<mustSupport value="occurrence"/>
<mustSupport value="asNeeded"/>
<mustSupport value="authoredOn"/>
<mustSupport value="performerType"/>
<mustSupport value="performer"/>
<mustSupport value="locationCode"/>
<mustSupport value="locationReference"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="insurance"/>
<mustSupport value="supportingInfo"/>
<mustSupport value="specimen"/>
<mustSupport value="bodySite"/>
<mustSupport value="note"/>
<mustSupport value="patientInstruction"/>
<mustSupport value="relevantHistory"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1158|20240123"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="ServiceRequest"/>
<profile value="http://hl7.org/fhir/StructureDefinition/ServiceRequest"/>
<mustSupport value="code"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="instantiatesCanonical"/>
<mustSupport value="instantiatesUri"/>
<mustSupport value="basedOn"/>
<mustSupport value="replaces"/>
<mustSupport value="requisition"/>
<mustSupport value="status"/>
<mustSupport value="intent"/>
<mustSupport value="category"/>
<mustSupport value="priority"/>
<mustSupport value="doNotPerform"/>
<mustSupport value="orderDetail"/>
<mustSupport value="quantity"/>
<mustSupport value="subject"/>
<mustSupport value="encounter"/>
<mustSupport value="occurrence"/>
<mustSupport value="asNeeded"/>
<mustSupport value="authoredOn"/>
<mustSupport value="performerType"/>
<mustSupport value="performer"/>
<mustSupport value="locationCode"/>
<mustSupport value="locationReference"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="insurance"/>
<mustSupport value="supportingInfo"/>
<mustSupport value="specimen"/>
<mustSupport value="bodySite"/>
<mustSupport value="note"/>
<mustSupport value="patientInstruction"/>
<mustSupport value="relevantHistory"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.336|20250218"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="ServiceRequest"/>
<profile value="http://hl7.org/fhir/StructureDefinition/ServiceRequest"/>
<mustSupport value="code"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="instantiatesCanonical"/>
<mustSupport value="instantiatesUri"/>
<mustSupport value="basedOn"/>
<mustSupport value="replaces"/>
<mustSupport value="requisition"/>
<mustSupport value="status"/>
<mustSupport value="intent"/>
<mustSupport value="category"/>
<mustSupport value="priority"/>
<mustSupport value="doNotPerform"/>
<mustSupport value="orderDetail"/>
<mustSupport value="quantity"/>
<mustSupport value="subject"/>
<mustSupport value="encounter"/>
<mustSupport value="occurrence"/>
<mustSupport value="asNeeded"/>
<mustSupport value="authoredOn"/>
<mustSupport value="performerType"/>
<mustSupport value="performer"/>
<mustSupport value="locationCode"/>
<mustSupport value="locationReference"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="insurance"/>
<mustSupport value="supportingInfo"/>
<mustSupport value="specimen"/>
<mustSupport value="bodySite"/>
<mustSupport value="note"/>
<mustSupport value="patientInstruction"/>
<mustSupport value="relevantHistory"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.337"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="ServiceRequest"/>
<profile value="http://hl7.org/fhir/StructureDefinition/ServiceRequest"/>
<mustSupport value="code"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="instantiatesCanonical"/>
<mustSupport value="instantiatesUri"/>
<mustSupport value="basedOn"/>
<mustSupport value="replaces"/>
<mustSupport value="requisition"/>
<mustSupport value="status"/>
<mustSupport value="intent"/>
<mustSupport value="category"/>
<mustSupport value="priority"/>
<mustSupport value="doNotPerform"/>
<mustSupport value="orderDetail"/>
<mustSupport value="quantity"/>
<mustSupport value="subject"/>
<mustSupport value="encounter"/>
<mustSupport value="occurrence"/>
<mustSupport value="asNeeded"/>
<mustSupport value="authoredOn"/>
<mustSupport value="performerType"/>
<mustSupport value="performer"/>
<mustSupport value="locationCode"/>
<mustSupport value="locationReference"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="insurance"/>
<mustSupport value="supportingInfo"/>
<mustSupport value="specimen"/>
<mustSupport value="bodySite"/>
<mustSupport value="note"/>
<mustSupport value="patientInstruction"/>
<mustSupport value="relevantHistory"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1312|20250218"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="ServiceRequest"/>
<profile value="http://hl7.org/fhir/StructureDefinition/ServiceRequest"/>
<mustSupport value="code"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="instantiatesCanonical"/>
<mustSupport value="instantiatesUri"/>
<mustSupport value="basedOn"/>
<mustSupport value="replaces"/>
<mustSupport value="requisition"/>
<mustSupport value="status"/>
<mustSupport value="intent"/>
<mustSupport value="category"/>
<mustSupport value="priority"/>
<mustSupport value="doNotPerform"/>
<mustSupport value="orderDetail"/>
<mustSupport value="quantity"/>
<mustSupport value="subject"/>
<mustSupport value="encounter"/>
<mustSupport value="occurrence"/>
<mustSupport value="asNeeded"/>
<mustSupport value="authoredOn"/>
<mustSupport value="performerType"/>
<mustSupport value="performer"/>
<mustSupport value="locationCode"/>
<mustSupport value="locationReference"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="insurance"/>
<mustSupport value="supportingInfo"/>
<mustSupport value="specimen"/>
<mustSupport value="bodySite"/>
<mustSupport value="note"/>
<mustSupport value="patientInstruction"/>
<mustSupport value="relevantHistory"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1146.1311"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="ServiceRequest"/>
<profile value="http://hl7.org/fhir/StructureDefinition/ServiceRequest"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="instantiatesCanonical"/>
<mustSupport value="instantiatesUri"/>
<mustSupport value="basedOn"/>
<mustSupport value="replaces"/>
<mustSupport value="requisition"/>
<mustSupport value="status"/>
<mustSupport value="intent"/>
<mustSupport value="category"/>
<mustSupport value="priority"/>
<mustSupport value="doNotPerform"/>
<mustSupport value="code"/>
<mustSupport value="orderDetail"/>
<mustSupport value="quantity"/>
<mustSupport value="subject"/>
<mustSupport value="encounter"/>
<mustSupport value="occurrence"/>
<mustSupport value="asNeeded"/>
<mustSupport value="authoredOn"/>
<mustSupport value="performerType"/>
<mustSupport value="performer"/>
<mustSupport value="locationCode"/>
<mustSupport value="locationReference"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="insurance"/>
<mustSupport value="supportingInfo"/>
<mustSupport value="specimen"/>
<mustSupport value="bodySite"/>
<mustSupport value="note"/>
<mustSupport value="patientInstruction"/>
<mustSupport value="relevantHistory"/>
</dataRequirement>
<dataRequirement>
<type value="Procedure"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Procedure"/>
<mustSupport value="code"/>
<mustSupport value="performed"/>
<mustSupport value="id"/>
<mustSupport value="instantiatesCanonical"/>
<mustSupport value="instantiatesUri"/>
<mustSupport value="basedOn"/>
<mustSupport value="partOf"/>
<mustSupport value="status"/>
<mustSupport value="statusReason"/>
<mustSupport value="category"/>
<mustSupport value="subject"/>
<mustSupport value="encounter"/>
<mustSupport value="recorder"/>
<mustSupport value="asserter"/>
<mustSupport value="performer"/>
<mustSupport value="location"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="bodySite"/>
<mustSupport value="outcome"/>
<mustSupport value="report"/>
<mustSupport value="complication"/>
<mustSupport value="complicationDetail"/>
<mustSupport value="followUp"/>
<mustSupport value="note"/>
<mustSupport value="focalDevice"/>
<mustSupport value="usedReference"/>
<mustSupport value="usedCode"/>
<codeFilter>
<path value="code"/>
<valueSet
value="http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.10.20.22.5.300|20240607"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="Procedure"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Procedure"/>
<mustSupport value="id"/>
<mustSupport value="instantiatesCanonical"/>
<mustSupport value="instantiatesUri"/>
<mustSupport value="basedOn"/>
<mustSupport value="partOf"/>
<mustSupport value="status"/>
<mustSupport value="statusReason"/>
<mustSupport value="category"/>
<mustSupport value="code"/>
<mustSupport value="subject"/>
<mustSupport value="encounter"/>
<mustSupport value="performed"/>
<mustSupport value="recorder"/>
<mustSupport value="asserter"/>
<mustSupport value="performer"/>
<mustSupport value="location"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="bodySite"/>
<mustSupport value="outcome"/>
<mustSupport value="report"/>
<mustSupport value="complication"/>
<mustSupport value="complicationDetail"/>
<mustSupport value="followUp"/>
<mustSupport value="note"/>
<mustSupport value="focalDevice"/>
<mustSupport value="usedReference"/>
<mustSupport value="usedCode"/>
</dataRequirement>
<dataRequirement>
<type value="Medication"/>
<profile value="http://hl7.org/fhir/StructureDefinition/Medication"/>
<mustSupport value="id"/>
<codeFilter>
<path value="id"/>
</codeFilter>
</dataRequirement>
<dataRequirement>
<type value="MedicationAdministration"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/MedicationAdministration"/>
<mustSupport value="medication"/>
<mustSupport value="status"/>
<mustSupport value="effective"/>
</dataRequirement>
<dataRequirement>
<type value="MedicationRequest"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/MedicationRequest"/>
<mustSupport value="medication"/>
<mustSupport value="authoredOn"/>
<mustSupport value="id"/>
<mustSupport value="extension"/>
<mustSupport value="status"/>
<mustSupport value="intent"/>
<mustSupport value="category"/>
<mustSupport value="priority"/>
<mustSupport value="doNotPerform"/>
<mustSupport value="reported"/>
<mustSupport value="subject"/>
<mustSupport value="encounter"/>
<mustSupport value="requester"/>
<mustSupport value="recorder"/>
<mustSupport value="reasonCode"/>
<mustSupport value="reasonReference"/>
<mustSupport value="instantiatesCanonical"/>
<mustSupport value="instantiatesUri"/>
<mustSupport value="courseOfTherapyType"/>
<mustSupport value="dosageInstruction"/>
</dataRequirement>
<content>
<contentType value="text/cql"/>
<data
value="bGlicmFyeSBOSFNOQWN1dGVDYXJlSG9zcGl0YWxEYWlseUluaXRpYWxQb3B1bGF0aW9uIHZlcnNpb24gJzIuMC4wJwoKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjInIGNhbGxlZCBGSElSSGVscGVycwppbmNsdWRlIE5IU05IZWxwZXJzIHZlcnNpb24gJzAuMC4wMDInIGNhbGxlZCBOSFNOSGVscGVycwppbmNsdWRlIFNoYXJlZFJlc291cmNlQ3JlYXRpb24gdmVyc2lvbiAnMC4xLjAxMCcgY2FsbGVkIFNoYXJlZFJlc291cmNlCgpjb2Rlc3lzdGVtICJBY3RDb2RlIjogJ2h0dHA6Ly90ZXJtaW5vbG9neS5obDcub3JnL0NvZGVTeXN0ZW0vdjMtQWN0Q29kZScgCmNvZGVzeXN0ZW0gIkxPSU5DIjogJ2h0dHA6Ly9sb2luYy5vcmcnIApjb2Rlc3lzdGVtICJPYnNlcnZhdGlvbiBDYXRlZ29yeSI6ICdodHRwOi8vdGVybWlub2xvZ3kuaGw3Lm9yZy9Db2RlU3lzdGVtL29ic2VydmF0aW9uLWNhdGVnb3J5JyAKY29kZXN5c3RlbSAiUlhOT1JNIjogJ2h0dHA6Ly93d3cubmxtLm5paC5nb3YvcmVzZWFyY2gvdW1scy9yeG5vcm0nCgp2YWx1ZXNldCAiRW5jb3VudGVyIElucGF0aWVudCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy42NjYuNS4zMDcnIAp2YWx1ZXNldCAiSW5wYXRpZW50LCBFbWVyZ2VuY3ksIGFuZCBPYnNlcnZhdGlvbiBMb2NhdGlvbnMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMDQ2LjI2NScgCnZhbHVlc2V0ICJPYnNlcnZhdGlvbiBTZXJ2aWNlcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExMTEuMTQzJyAKdmFsdWVzZXQgIkRpc2NoYXJnZSBEaXNwb3NpdGlvbiI6ICdodHRwOi8vdGVybWlub2xvZ3kuaGw3Lm9yZy9WYWx1ZVNldC9jbGluaWNhbC1kaXNjaGFyZ2UtZGlzcG9zaXRpb24nCgovL0NPVklELTE5IGxhYiB0ZXN0cwp2YWx1ZXNldCAiQ09WSURfMTkgKFRlc3RzIGZvciBTQVJTX0NvVl8yIE51Y2xlaWMgQWNpZCkiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTQ2LjExNDInCnZhbHVlc2V0ICJDT1ZJRF8xOSAoVGVzdHMgZm9yIFNBUlNfQ29WXzIgQW50aWdlbikiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTQ2LjExNTgnCgovL0NPVklELTE5IHRlc3QgcmVzdWx0cyAodW51c2VkKQp2YWx1ZXNldCAiQ09WSURfMTkgKE9yZ2FuaXNtIG9yIFN1YnN0YW5jZSBpbiBMYWIgUmVzdWx0cykiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTQ2LjExNDMnCgovL0luZmx1ZW56YSBsYWIgdGVzdHMKdmFsdWVzZXQgIkluZmx1ZW56YSAoVGVzdHMgZm9yIGluZmx1ZW56YSBBIG9yIEIgdmlydXMgTnVjbGVpYyBBY2lkKSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExNDYuMzM2Jwp2YWx1ZXNldCAiSW5mbHVlbnphIChUZXN0cyBmb3IgaW5mbHVlbnphIEEgb3IgQiB2aXJ1cyBBbnRpZ2VuKSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExNDYuMzM3JwoKLy9JbmZsdWVuemEgdGVzdCBSZXN1bHRzICh1bnVzZWQpCnZhbHVlc2V0ICJJbmZsdWVuemEgKGluZmx1ZW56YSBBIG9yIEIgdmlydXMgaW4gTGFiIFJlc3VsdHMpIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTE0Ni4zNDAnCgovL1JTViBsYWIgdGVzdHMKdmFsdWVzZXQgIlJTViAoVGVzdHMgZm9yIFJTViBBbnRpZ2VuKSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExNDYuMTMxMScKdmFsdWVzZXQgIlJTViAoVGVzdHMgZm9yIFJTViBOdWNsZWljIEFjaWQpIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTE0Ni4xMzEyJwoKLy9SU1YgdGVzdCByZXN1bHRzICh1bnVzZWQpCnZhbHVlc2V0ICJSU1YgKE9yZ2FuaXNtIG9yIFN1YnN0YW5jZSBpbiBMYWIgUmVzdWx0cykiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTQ2LjEzMDgnCgovL1Rlc3QgcmVzdWx0cyBzaGFyZWQgYW1vbmcgQ09WSUQtMTksIEluZmx1ZW56YSBhbmQgUlNWICh1bnVzZWQpCnZhbHVlc2V0ICJMSVZEIFNBUlMgQ29WMiBUZXN0IFJlc3VsdCBDb2RlcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExMTQuMTAnCgovL0NPVklELTE5IG1lZGljYXRpb25zCnZhbHVlc2V0ICJCYXJpY2l0aW5pYiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zNjE2LjIwMC4xMTAuMTAyLjIwNDYnCnZhbHVlc2V0ICJBbmFraW5yYSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zNjE2LjIwMC4xMTAuMTAyLjIwNTQnCnZhbHVlc2V0ICJTYXJpbHVtYWIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMzYxNi4yMDAuMTEwLjEwMi4yMDg0Jwp2YWx1ZXNldCAiQ09WSUQxOSBSeE5vcm0gVmFsdWUgU2V0IGZvciBUb2NpbGl6dW1hYiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zNjE2LjIwMC4xMTAuMTAyLjIwODcnCnZhbHVlc2V0ICJDYXNpcml2aW1hYiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zNjE2LjIwMC4xMTAuMTAyLjIwOTcnCnZhbHVlc2V0ICJJbWRldmltYWIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMzYxNi4yMDAuMTEwLjEwMi4yMDk4Jwp2YWx1ZXNldCAiQmFtbGFuaXZpbWFiIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjM2MTYuMjAwLjExMC4xMDIuMjA5OScKdmFsdWVzZXQgIkV0ZXNldmltYWIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMzYxNi4yMDAuMTEwLjEwMi4yMTAwJwp2YWx1ZXNldCAiU290cm92aW1hYiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zNjE2LjIwMC4xMTAuMTAyLjIxMDEnCnZhbHVlc2V0ICJUb2ZhY2l0aW5pYiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zNjE2LjIwMC4xMTAuMTAyLjIxMDInCnZhbHVlc2V0ICJDYXNpcml2aW1hYiAvIEltZGV2aW1hYiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zNjE2LjIwMC4xMTAuMTAyLjIxMDMnCnZhbHVlc2V0ICJNb2xudXBpcmF2aXIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMzYxNi4yMDAuMTEwLjEwMi4yMTE5Jwp2YWx1ZXNldCAiUmVtZGVzaXZpciI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zNjE2LjIwMC4xMTAuMTAyLjIwODEnCnZhbHVlc2V0ICJOaXJtYXRyZWx2aXIgLyBSaXRvbmF2aXIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMzYxNi4yMDAuMTEwLjEwMi4yMTA0Jwp2YWx1ZXNldCAiQmVidGVsb3ZpbWFiIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjM2MTYuMjAwLjExMC4xMDIuMjEwNScKCi8vSW5mbHVlbnphIG1lZGljYXRpb25zCnZhbHVlc2V0ICJCYWxveGF2aXIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTkwLjg1Jwp2YWx1ZXNldCAiUGVyYW1pdmlyIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTE5MC44NicKdmFsdWVzZXQgIlphbmFtaXZpciI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExOTAuODcnCnZhbHVlc2V0ICJPc2VsdGFtaXZpciI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4zNjE2LjIwMC4xMTAuMTAyLjIwNzgnCgovL0lzb2xhdGlvbiBQcmVjYXV0aW9ucwp2YWx1ZXNldCAiVHJhbnNtaXNzaW9uIEJhc2VkIFByZWNhdXRpb24gVHlwZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjEwLjIwLjIyLjUuMzAwJwoKLy9FbmNvdW50ZXIgQ2xhc3MgQ29kZXMKdmFsdWVzZXQgIk5IU04gSW5wYXRpZW50IEVuY291bnRlciBDbGFzcyBDb2RlcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjEwNDYuMjc0JwoKLy9PYnNlcnZhdGlvbiBDYXRlZ29yeSBDb2Rlcwpjb2RlICJsYWJvcmF0b3J5IjogJ2xhYm9yYXRvcnknIGZyb20gIk9ic2VydmF0aW9uIENhdGVnb3J5IiBkaXNwbGF5ICdMYWJvcmF0b3J5JwoKLy9PYnNlcnZhdGlvbiBFbmNvdW50ZXIgQ2xhc3MgQ29kZQpjb2RlICJvYnNlcnZhdGlvbiBlbmNvdW50ZXIiOiAnT0JTRU5DJyBmcm9tICJBY3RDb2RlIiBkaXNwbGF5ICdvYnNlcnZhdGlvbiBlbmNvdW50ZXInCgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgCiAgZGVmYXVsdCBJbnRlcnZhbFtAMjAyMi0wMS0wMVQwMDowMDowMC4wLCBAMjAyMi0wMi0wMlQwMDowMDowMC4wKQoKY29udGV4dCBQYXRpZW50CgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gSW5pdGlhbCBQb3B1bGF0aW9uCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgRW5jb3VudGVySW5wYXRpZW50CiAgdW5pb24gRW5jb3VudGVyT2JzZXJ2YXRpb24KICB1bmlvbiAiRW5jb3VudGVycyB3aXRoIFBhdGllbnQgSG9zcGl0YWwgTG9jYXRpb25zIgoKZGVmaW5lICJFbmNvdW50ZXJJbnBhdGllbnQiOgogIChbRW5jb3VudGVyOiAiRW5jb3VudGVyIElucGF0aWVudCJdCiAgICB1bmlvbiBbRW5jb3VudGVyOiBjbGFzcyBpbiAiTkhTTiBJbnBhdGllbnQgRW5jb3VudGVyIENsYXNzIENvZGVzIl0pIEVuY291bnRlcnMKICB3aGVyZSBFbmNvdW50ZXJzLnN0YXR1cyBpbiB7J2luLXByb2dyZXNzJywgJ2ZpbmlzaGVkJywgJ3RyaWFnZWQnLCAnb25sZWF2ZScsICdlbnRlcmVkLWluLWVycm9yJ30KICAgIGFuZCBFbmNvdW50ZXJzLnBlcmlvZCBvdmVybGFwcyAiTWVhc3VyZW1lbnQgUGVyaW9kIgoKZGVmaW5lICJFbmNvdW50ZXJPYnNlcnZhdGlvbiI6CiAgKFtFbmNvdW50ZXI6ICJPYnNlcnZhdGlvbiBTZXJ2aWNlcyJdCiAgICB1bmlvbiBbRW5jb3VudGVyOiBjbGFzcyBpbiB7Im9ic2VydmF0aW9uIGVuY291bnRlciJ9XSkgRW5jb3VudGVycwogIHdoZXJlIEVuY291bnRlcnMuc3RhdHVzIGluIHsnaW4tcHJvZ3Jlc3MnLCAnZmluaXNoZWQnLCAndHJpYWdlZCcsICdvbmxlYXZlJywgJ2VudGVyZWQtaW4tZXJyb3InfQogICAgYW5kIEVuY291bnRlcnMucGVyaW9kIG92ZXJsYXBzICJNZWFzdXJlbWVudCBQZXJpb2QiCgpkZWZpbmUgIkVuY291bnRlcnMgd2l0aCBQYXRpZW50IEhvc3BpdGFsIExvY2F0aW9ucyI6CiAgW0VuY291bnRlcl0gRW5jb3VudGVycwogIHdoZXJlIGV4aXN0cygKICAgIEVuY291bnRlcnMubG9jYXRpb24gRW5jb3VudGVyTG9jYXRpb24KICAgIGxldCB0eXBlczogTkhTTkhlbHBlcnMuR2V0TG9jYXRpb24oRW5jb3VudGVyTG9jYXRpb24ubG9jYXRpb24pLnR5cGUKICAgIHdoZXJlIGV4aXN0cygKICAgICAgdHlwZXMgdHlwZQogICAgICB3aGVyZSB0eXBlIGluICJJbnBhdGllbnQsIEVtZXJnZW5jeSwgYW5kIE9ic2VydmF0aW9uIExvY2F0aW9ucyIKICAgICkKICAgIGFuZCBFbmNvdW50ZXJMb2NhdGlvbi5wZXJpb2Qgb3ZlcmxhcHMgRW5jb3VudGVycy5wZXJpb2QKICAgIGFuZCBFbmNvdW50ZXJzLnN0YXR1cyBpbiB7J2luLXByb2dyZXNzJywgJ2ZpbmlzaGVkJywgJ3RyaWFnZWQnLCAnb25sZWF2ZScsICdlbnRlcmVkLWluLWVycm9yJyB9CiAgICBhbmQgRW5jb3VudGVycy5wZXJpb2Qgb3ZlcmxhcHMgIk1lYXN1cmVtZW50IFBlcmlvZCIKICApCgoKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBMb2dpYyByZWxhdGVkIHRvIExhYm9yYXRvcnkKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovL0xhYiBPYnNlcnZhdGlvbnMKZGVmaW5lICJDT1ZJRCBBbmQgSW5mbHVlbnphIE9ic2VydmF0aW9uIjoKICAoW09ic2VydmF0aW9uOiAiSW5mbHVlbnphIChUZXN0cyBmb3IgaW5mbHVlbnphIEEgb3IgQiB2aXJ1cyBOdWNsZWljIEFjaWQpIl0gCiAgdW5pb24gW09ic2VydmF0aW9uOiAiSW5mbHVlbnphIChUZXN0cyBmb3IgaW5mbHVlbnphIEEgb3IgQiB2aXJ1cyBBbnRpZ2VuKSJdCiAgdW5pb24gW09ic2VydmF0aW9uOiAiQ09WSURfMTkgKFRlc3RzIGZvciBTQVJTX0NvVl8yIE51Y2xlaWMgQWNpZCkiXQogIHVuaW9uIFtPYnNlcnZhdGlvbjogIkNPVklEXzE5IChUZXN0cyBmb3IgU0FSU19Db1ZfMiBBbnRpZ2VuKSJdCiAgKSBPYnNlcnZhdGlvbnMKICAgIHdoZXJlIGV4aXN0cyhPYnNlcnZhdGlvbnMuY2F0ZWdvcnkgQ2F0ZWdvcnkgd2hlcmUgQ2F0ZWdvcnkgfiAibGFib3JhdG9yeSIpCiAgICAgIGFuZCBPYnNlcnZhdGlvbnMuc3RhdHVzIGluIHsnZmluYWwnLCdyZWdpc3RlcmVkJywncHJlbGltaW5hcnknLCdwYXJ0aWFsJ30KICAgICAgYW5kIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIikKCmRlZmluZSAiUlNWIE9ic2VydmF0aW9uIjoKICAoW09ic2VydmF0aW9uOiAiUlNWIChUZXN0cyBmb3IgUlNWIE51Y2xlaWMgQWNpZCkiXQogIHVuaW9uIFtPYnNlcnZhdGlvbjogIlJTViAoVGVzdHMgZm9yIFJTViBBbnRpZ2VuKSJdICAgCiAgKSBPYnNlcnZhdGlvbnMKICAgIHdoZXJlIGV4aXN0cyhPYnNlcnZhdGlvbnMuY2F0ZWdvcnkgQ2F0ZWdvcnkgd2hlcmUgQ2F0ZWdvcnkgfiAibGFib3JhdG9yeSIpCiAgICAgIGFuZCBPYnNlcnZhdGlvbnMuc3RhdHVzIGluIHsnZmluYWwnLCdyZWdpc3RlcmVkJywncHJlbGltaW5hcnknLCdwYXJ0aWFsJ30KICAgICAgYW5kIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIikKCmRlZmluZSAiQUNIIERhaWx5IE9ic2VydmF0aW9uIjoKICAiUlNWIE9ic2VydmF0aW9uIgogIHVuaW9uICJDT1ZJRCBBbmQgSW5mbHVlbnphIE9ic2VydmF0aW9uIgoKLy9mdXJ0aGVyIGNvbnN0cmFpbiBDT1ZJRC0xOSBhbmQgSW5mbHVlbnphIE9ic2VydmF0aW9ucyBmb3IgMTQgZGF5IGxvb2tiYWNrCmRlZmluZSAiQ09WSUQgQW5kIEluZmx1ZW56YSBQUkUgQWRtaXNzaW9uIE9ic2VydmF0aW9uIjoKICAiQ09WSUQgQW5kIEluZmx1ZW56YSBPYnNlcnZhdGlvbiIgTyAKICAgd2hlcmUgZXhpc3RzKCBFbmNvdW50ZXJJbnBhdGllbnQgRSAKICAgIHdoZXJlICgKICAgICAgTkhTTkhlbHBlcnMuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoTy5lZmZlY3RpdmUpIDE0IGRheXMgb3IgbGVzcyBvbiBvciBiZWZvcmUgc3RhcnQgb2YgRS5wZXJpb2QKICAgICAgb3IgTkhTTkhlbHBlcnMuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoR2V0U3BlY2ltZW4oTy5zcGVjaW1lbikuY29sbGVjdGlvbi5jb2xsZWN0ZWQpIDE0IGRheXMgb3IgbGVzcyBvbiBvciBiZWZvcmUgc3RhcnQgb2YgRS5wZXJpb2QKICAgICAgKQogICAgICBhbmQgc3RhcnQgb2YgRS5wZXJpb2QgZHVyaW5nICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICApICAKCi8vZnVydGhlciBjb25zdHJhaW4gUlNWIG9ic2VydmF0aW9uIGZvciA4IGRheSBsb29rYmFjawpkZWZpbmUgIlJTViBQUkUgQWRtaXNzaW9uIE9ic2VydmF0aW9uIjoKICAiUlNWIE9ic2VydmF0aW9uIiBPIAogIHdoZXJlIGV4aXN0cyhFbmNvdW50ZXJJbnBhdGllbnQgRSAKICAgIHdoZXJlICgKICAgICAgTkhTTkhlbHBlcnMuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoTy5lZmZlY3RpdmUpIDggZGF5cyBvciBsZXNzIG9uIG9yIGJlZm9yZSBzdGFydCBvZiBFLnBlcmlvZAogICAgICBvciBOSFNOSGVscGVycy4iTm9ybWFsaXplIEludGVydmFsIihHZXRTcGVjaW1lbihPLnNwZWNpbWVuKS5jb2xsZWN0aW9uLmNvbGxlY3RlZCkgOCBkYXlzIG9yIGxlc3Mgb24gb3IgYmVmb3JlIHN0YXJ0IG9mIEUucGVyaW9kCiAgICAgICkKICAgICAgYW5kIHN0YXJ0IG9mIEUucGVyaW9kIGR1cmluZyAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgKQoKLy9MYWIgRGlhZ25vc3RpY1JlcG9ydApkZWZpbmUgIkNPVklEIEFuZCBJbmZsdWVuemEgRGlhZ25vc3RpY1JlcG9ydCI6CiAgKFtEaWFnbm9zdGljUmVwb3J0OiAiQ09WSURfMTkgKFRlc3RzIGZvciBTQVJTX0NvVl8yIE51Y2xlaWMgQWNpZCkiXQogICAgdW5pb24gW0RpYWdub3N0aWNSZXBvcnQ6ICJDT1ZJRF8xOSAoVGVzdHMgZm9yIFNBUlNfQ29WXzIgQW50aWdlbikiXQogICAgdW5pb24gW0RpYWdub3N0aWNSZXBvcnQ6ICJJbmZsdWVuemEgKFRlc3RzIGZvciBpbmZsdWVuemEgQSBvciBCIHZpcnVzIE51Y2xlaWMgQWNpZCkiXQogICAgdW5pb24gW0RpYWdub3N0aWNSZXBvcnQ6ICJJbmZsdWVuemEgKFRlc3RzIGZvciBpbmZsdWVuemEgQSBvciBCIHZpcnVzIEFudGlnZW4pIl0KICApIFJlcG9ydHMKICAgIHdoZXJlIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIikKICAgICAgYW5kIFJlcG9ydHMuc3RhdHVzIGluIHsnZmluYWwnLCdyZWdpc3RlcmVkJywncHJlbGltaW5hcnknLCdwYXJ0aWFsJ30KCmRlZmluZSAiUlNWIERpYWdub3N0aWNSZXBvcnQiOgogIChbRGlhZ25vc3RpY1JlcG9ydDogIlJTViAoVGVzdHMgZm9yIFJTViBOdWNsZWljIEFjaWQpIl0KICAgIHVuaW9uIFtEaWFnbm9zdGljUmVwb3J0OiAiUlNWIChUZXN0cyBmb3IgUlNWIEFudGlnZW4pIl0KICApIFJlcG9ydHMKICAgIHdoZXJlIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIikKICAgICAgYW5kIFJlcG9ydHMuc3RhdHVzIGluIHsnZmluYWwnLCdyZWdpc3RlcmVkJywncHJlbGltaW5hcnknLCdwYXJ0aWFsJ30KCmRlZmluZSAiQUNIIERhaWx5IERpYWdub3N0aWNSZXBvcnQiOgogICJDT1ZJRCBBbmQgSW5mbHVlbnphIERpYWdub3N0aWNSZXBvcnQiCiAgICB1bmlvbiAiUlNWIERpYWdub3N0aWNSZXBvcnQiCgovL2Z1cnRoZXIgY29uc3RyYWluIENPVklELTE5IGFuZCBJbmZsdWVuemEgd2l0aCAxNCBkYXkgbG9va2JhY2sgCmRlZmluZSAiQ09WSUQgQW5kIEluZmx1ZW56YSBEaWFnbm9zdGljUmVwb3J0IFBSRSBBZG1pc3Npb24iOgogICJDT1ZJRCBBbmQgSW5mbHVlbnphIERpYWdub3N0aWNSZXBvcnQiIFIgCiAgd2hlcmUgZXhpc3RzKEVuY291bnRlcklucGF0aWVudCBFIAogICAgd2hlcmUgKAogICAgICBOSFNOSGVscGVycy4iTm9ybWFsaXplIEludGVydmFsIihSLmVmZmVjdGl2ZSkgMTQgZGF5cyBvciBsZXNzIG9uIG9yIGJlZm9yZSBzdGFydCBvZiBFLnBlcmlvZCkKICAgICAgYW5kIHN0YXJ0IG9mIEUucGVyaW9kIGR1cmluZyAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgKQoKLy9mdXJ0aGVyIGNvbnN0cmFpbiBSU1YgZm9yIDggZGF5IGxvb2tiYWNrCmRlZmluZSAiUlNWIERpYWdub3N0aWNSZXBvcnQgUFJFIEFkbWlzc2lvbiI6CiAgIlJTViBEaWFnbm9zdGljUmVwb3J0IiBSIAogIHdoZXJlIGV4aXN0cyhFbmNvdW50ZXJJbnBhdGllbnQgRSAKICAgIHdoZXJlICgKICAgICAgTkhTTkhlbHBlcnMuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoUi5lZmZlY3RpdmUpIDggZGF5cyBvciBsZXNzIG9uIG9yIGJlZm9yZSBzdGFydCBvZiBFLnBlcmlvZCkKICAgICAgYW5kIHN0YXJ0IG9mIEUucGVyaW9kIGR1cmluZyAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgKQoKZGVmaW5lICJDT1ZJRCBhbmQgSW5mbHVlbnphIERpYWdub3N0aWNSZXBvcnQgUmVzdWx0IGZyb20gTGFiIjoKICAiRGlhZ25vc3RpY1JlcG9ydHMiIFJlcG9ydHMKICAgIHdoZXJlIGV4aXN0cygKICAgICAgIkNPVklEIGFuZCBJbmZsdWVuemEgRGlhZ25vc3RpY1JlcG9ydCBPYnNlcnZhdGlvbnMiIE9ic2VydmF0aW9ucwogICAgICB3aGVyZSBSZXBvcnRzLnJlc3VsdC5yZWZlcmVuY2VzKE9ic2VydmF0aW9ucykKICAgICkKICAgIGFuZCBSZXBvcnRzLnN0YXR1cyBpbiB7J2ZpbmFsJywncmVnaXN0ZXJlZCcsJ3ByZWxpbWluYXJ5JywncGFydGlhbCd9CiAgICBhbmQgZXhpc3RzKCJJbml0aWFsIFBvcHVsYXRpb24iKQoKZGVmaW5lICJDT1ZJRCBhbmQgSW5mbHVlbnphIERpYWdub3N0aWNSZXBvcnQgT2JzZXJ2YXRpb25zIjoKICAiT2JzZXJ2YXRpb25zIiBPYnNlcnZhdGlvbnMKICB3aGVyZSBPYnNlcnZhdGlvbnMuY29kZSBpbiAiQ09WSURfMTkgKFRlc3RzIGZvciBTQVJTX0NvVl8yIE51Y2xlaWMgQWNpZCkiCiAgICBvciBPYnNlcnZhdGlvbnMuY29kZSBpbiAiQ09WSURfMTkgKFRlc3RzIGZvciBTQVJTX0NvVl8yIEFudGlnZW4pIgogICAgb3IgT2JzZXJ2YXRpb25zLmNvZGUgaW4gIkluZmx1ZW56YSAoVGVzdHMgZm9yIGluZmx1ZW56YSBBIG9yIEIgdmlydXMgTnVjbGVpYyBBY2lkKSIKICAgIG9yIE9ic2VydmF0aW9ucy5jb2RlIGluICJJbmZsdWVuemEgKFRlc3RzIGZvciBpbmZsdWVuemEgQSBvciBCIHZpcnVzIEFudGlnZW4pIgoKIApkZWZpbmUgIlJTViBEaWFnbm9zdGljUmVwb3J0IFJlc3VsdCBmcm9tIExhYiI6CiAgW0RpYWdub3N0aWNSZXBvcnRdIFJlcG9ydHMKICAgIHdoZXJlIGV4aXN0cygiUlNWIERpYWdub3N0aWNSZXBvcnQgT2JzZXJ2YXRpb25zIikKICAgICAgYW5kIFJlcG9ydHMuc3RhdHVzIGluIHsnZmluYWwnLCdyZWdpc3RlcmVkJywncHJlbGltaW5hcnknLCdwYXJ0aWFsJ30KICAgICAgYW5kIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIikKCmRlZmluZSAiUlNWIE9ic2VydmF0aW9ucyI6CiAgIk9ic2VydmF0aW9ucyIgT2JzZXJ2YXRpb25zCiAgd2hlcmUgT2JzZXJ2YXRpb25zLmNvZGUgaW4gIlJTViAoVGVzdHMgZm9yIFJTViBOdWNsZWljIEFjaWQpIgogICAgb3IgT2JzZXJ2YXRpb25zLmNvZGUgaW4gIlJTViAoVGVzdHMgZm9yIFJTViBBbnRpZ2VuKSIKICAgIApkZWZpbmUgIlJTViBEaWFnbm9zdGljUmVwb3J0IE9ic2VydmF0aW9ucyI6CiAgIkRpYWdub3N0aWNSZXBvcnRzIiBSZXBvcnRzCiAgd2hlcmUgZXhpc3RzKAogICAgIlJTViBPYnNlcnZhdGlvbnMiIE9ic2VydmF0aW9ucwogICAgd2hlcmUgUmVwb3J0cy5yZXN1bHQucmVmZXJlbmNlcyhPYnNlcnZhdGlvbnMpCiAgKQoKZGVmaW5lICJBQ0ggRGFpbHkgRGlhZ25vc3RpY1JlcG9ydCBSZXN1bHQgZnJvbSBMYWIiOgogICJDT1ZJRCBhbmQgSW5mbHVlbnphIERpYWdub3N0aWNSZXBvcnQgUmVzdWx0IGZyb20gTGFiIgogICAgdW5pb24gIlJTViBEaWFnbm9zdGljUmVwb3J0IFJlc3VsdCBmcm9tIExhYiIKCi8vZnVydGhlciBjb25zdHJhaW4gQ09WSUQtMTkgYW5kIEluZmx1ZW56YSB3aXRoIDE0IGRheSBsb29rYmFjawpkZWZpbmUgIkNPVklEIGFuZCBJbmZsdWVuemEgRGlhZ25vc3RpY1JlcG9ydCBSZXN1bHQgZnJvbSBMYWIgUFJFIEFkbWlzc2lvbiI6CiAgIkNPVklEIGFuZCBJbmZsdWVuemEgRGlhZ25vc3RpY1JlcG9ydCBSZXN1bHQgZnJvbSBMYWIiIFIgCiAgd2hlcmUgZXhpc3RzKEVuY291bnRlcklucGF0aWVudCBFIAogICAgd2hlcmUgKAogICAgICBOSFNOSGVscGVycy4iTm9ybWFsaXplIEludGVydmFsIihSLmVmZmVjdGl2ZSkgMTQgZGF5cyBvciBsZXNzIG9uIG9yIGJlZm9yZSBzdGFydCBvZiBFLnBlcmlvZCkKICAgICAgYW5kIHN0YXJ0IG9mIEUucGVyaW9kIGR1cmluZyAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgKQoKLy9mdXJ0aGVyIGNvbnN0cmFpbiBSU1Ygd2l0aCA4IGRheSBsb29rYmFjawpkZWZpbmUgIlJTViBEaWFnbm9zdGljUmVwb3J0IFJlc3VsdCBmcm9tIExhYiBQUkUgQWRtaXNzaW9uIjoKICAiUlNWIERpYWdub3N0aWNSZXBvcnQgUmVzdWx0IGZyb20gTGFiIiBSIAogIHdoZXJlIGV4aXN0cyhFbmNvdW50ZXJJbnBhdGllbnQgRSAKICAgIHdoZXJlICgKICAgICAgTkhTTkhlbHBlcnMuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoUi5lZmZlY3RpdmUpIDggZGF5cyBvciBsZXNzIG9uIG9yIGJlZm9yZSBzdGFydCBvZiBFLnBlcmlvZCkKICAgICAgYW5kIHN0YXJ0IG9mIEUucGVyaW9kIGR1cmluZyAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgKQogICAgCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBTREUKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRlZmluZSAiU0RFIElQIEVuY291bnRlcnMiOgogICJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgcmV0dXJuIEVuY291bnRlclJlc291cmNlKElQLCAKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1kYWlseS1lbmNvdW50ZXInfX0pCgpkZWZpbmUgIlNERSBFbmNvdW50ZXIiOiAKICAiRW5jb3VudGVycyIgRW5jb3VudGVycwogIHdoZXJlIG5vdCBDaGVja0lQKEVuY291bnRlcnMpCiAgYW5kIGV4aXN0cygKICAgICJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgICB3aGVyZSBFbmNvdW50ZXJzLnBlcmlvZCBvdmVybGFwcyBJUC5wZXJpb2QpCiAgcmV0dXJuIEVuY291bnRlclJlc291cmNlKEVuY291bnRlcnMsCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL2hsNy5vcmcvZmhpci91cy9jb3JlL1N0cnVjdHVyZURlZmluaXRpb24vdXMtY29yZS1lbmNvdW50ZXInfX0pCgpkZWZpbmUgIlNERSBNaW5pbWFsIFBhdGllbnQiOgogIFBhdGllbnQgcAogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5QYXRpZW50UmVzb3VyY2UocCwgCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9jcm9zcy1tZWFzdXJlLXBhdGllbnQnfX0pCgpkZWZpbmUgIlNERSBMb2NhdGlvbiI6CiAgW0xvY2F0aW9uXSBMb2NhdGlvbnMKICB3aGVyZSBleGlzdHMoIkluaXRpYWwgUG9wdWxhdGlvbiIpCiAgcmV0dXJuIFNoYXJlZFJlc291cmNlLkxvY2F0aW9uUmVzb3VyY2UoTG9jYXRpb25zLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLWRhaWx5LWxvY2F0aW9uJ319KQogICAKZGVmaW5lICJTREUgRW5jb3VudGVyIERpc2NoYXJnZSBEaXNwb3NpdGlvbnMiOgoJIkluaXRpYWwgUG9wdWxhdGlvbiIgRGlzY2hhcmdlRGlzcG9zaXRpb25zIAogIHdoZXJlIERpc2NoYXJnZURpc3Bvc2l0aW9ucy5ob3NwaXRhbGl6YXRpb24uZGlzY2hhcmdlRGlzcG9zaXRpb24gaW4gIkRpc2NoYXJnZSBEaXNwb3NpdGlvbiIKICByZXR1cm4gRW5jb3VudGVyUmVzb3VyY2UoRGlzY2hhcmdlRGlzcG9zaXRpb25zLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLWRhaWx5LWVuY291bnRlcid9fSkKCi8vcmV0dXJuIHRoZSBPYnNlcnZhdGlvbiBkdXJpbmcgdGhlIE1lYXN1cmVtZW50IFBlcmlvZApkZWZpbmUgIlNERSBBQ0ggRGFpbHkgT2JzZXJ2YXRpb24iOgogICJBQ0ggRGFpbHkgT2JzZXJ2YXRpb24iIE9ic2VydmF0aW9ucwogICAgcmV0dXJuIE9ic2VydmF0aW9uTGFiUmVzb3VyY2UoT2JzZXJ2YXRpb25zLAogICAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtZGFpbHktb2JzZXJ2YXRpb24tbGFiJ319KQoKLy9yZXR1cm4gdGhlIFJTViBPYnNlcnZhdGlvbiBQcmUgQWRtaXNzaW9uICAgIApkZWZpbmUgIlNERSBSU1YgUFJFIEFkbWlzc2lvbiBPYnNlcnZhdGlvbiI6CiAgIlJTViBQUkUgQWRtaXNzaW9uIE9ic2VydmF0aW9uIiBPYnNlcnZhdGlvbnMKICAgIHJldHVybiBPYnNlcnZhdGlvbkxhYlJlc291cmNlKE9ic2VydmF0aW9ucywgCiAgICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1kYWlseS1vYnNlcnZhdGlvbi1sYWInfX0pCgovL3JldHVybiB0aGUgQ09WSUQtMTkgYW5kIEluZmx1ZW56YSBPYnNlcnZhdGlvbiBQcmUgQWRtaXNzaW9uCmRlZmluZSAiU0RFIENPVklEIEFuZCBJbmZsdWVuemEgUFJFIEFkbWlzc2lvbiBPYnNlcnZhdGlvbiI6CiAgIkNPVklEIEFuZCBJbmZsdWVuemEgUFJFIEFkbWlzc2lvbiBPYnNlcnZhdGlvbiIgT2JzZXJ2YXRpb25zCiAgICByZXR1cm4gT2JzZXJ2YXRpb25MYWJSZXNvdXJjZShPYnNlcnZhdGlvbnMsCiAgICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1kYWlseS1vYnNlcnZhdGlvbi1sYWInfX0pCgovL3JldHVybiB0aGUgU3BlY2ltZW4gcmVsYXRlZCB0byB0aGUgT2JzZXJ2YXRpb24gZHVyaW5nIHRoZSBNZWFzdXJlbWVudCBQZXJpb2QKZGVmaW5lICJTREUgQUNIIERhaWx5IFNwZWNpbWVuIjoKICAiQUNIIERhaWx5IE9ic2VydmF0aW9uIiBPYnNlcnZhdGlvbldpdGhTcGVjaW1lbgogICAgbGV0IFNwZWNpbWVuOiBHZXRTcGVjaW1lbihPYnNlcnZhdGlvbldpdGhTcGVjaW1lbi5zcGVjaW1lbikKICAgIHJldHVybiBTaGFyZWRSZXNvdXJjZS5TcGVjaW1lblJlc291cmNlKFNwZWNpbWVuLAogICAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtZGFpbHktc3BlY2ltZW4nfX0pCgovL3JldHVybiB0aGUgU3BlY2ltZW4gcmVsYXRlZCB0byB0aGUgUlNWIE9ic2VydmF0aW9uIFByZSBBZG1pc3Npb24KZGVmaW5lICJTREUgUlNWIFNwZWNpbWVuIjoKICAiUlNWIFBSRSBBZG1pc3Npb24gT2JzZXJ2YXRpb24iIE9ic2VydmF0aW9uV2l0aFNwZWNpbWVuCiAgICBsZXQgU3BlY2ltZW46IEdldFNwZWNpbWVuKE9ic2VydmF0aW9uV2l0aFNwZWNpbWVuLnNwZWNpbWVuKQogICAgcmV0dXJuIFNoYXJlZFJlc291cmNlLlNwZWNpbWVuUmVzb3VyY2UoU3BlY2ltZW4sCiAgICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1kYWlseS1zcGVjaW1lbid9fSkKCi8vcmV0dXJuIHRoZSBTcGVjaW1lbiByZWxhdGVkIHRvIHRoZSBDT1ZJRC0xOSBBbmQgSW5mbHVlbnphIE9ic2VydmF0aW9uIFByZSBBZG1pc3Npb24KZGVmaW5lICJTREUgQ09WSUQgQW5kIEluZmx1ZW56YSBTcGVjaW1lbiI6CiAgIkNPVklEIEFuZCBJbmZsdWVuemEgUFJFIEFkbWlzc2lvbiBPYnNlcnZhdGlvbiIgT2JzZXJ2YXRpb25XaXRoU3BlY2ltZW4KICAgIGxldCBTcGVjaW1lbjogR2V0U3BlY2ltZW4oT2JzZXJ2YXRpb25XaXRoU3BlY2ltZW4uc3BlY2ltZW4pCiAgICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuU3BlY2ltZW5SZXNvdXJjZShTcGVjaW1lbiwKICAgIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLWRhaWx5LXNwZWNpbWVuJ319KQoKLy9yZXR1cm4gdGhlIERpYWdub3N0aWNSZXBvcnQgZHVyaW5nIHRoZSBNZWFzdXJlbWVudCBQZXJpb2QKZGVmaW5lICJTREUgQUNIIERhaWx5IERpYWdub3N0aWNSZXBvcnQiOgogICJBQ0ggRGFpbHkgRGlhZ25vc3RpY1JlcG9ydCIgUmVwb3J0cwogICAgcmV0dXJuIFNoYXJlZFJlc291cmNlLkRpYWdub3N0aWNSZXBvcnRMYWJSZXNvdXJjZShSZXBvcnRzLAogICAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtZGFpbHktZGlhZ25vc3RpY3JlcG9ydC1sYWInfX0pCgovL3JldHVybiB0aGUgQ09WSUQtMTkgQW5kIEluZmx1ZW56YSBEaWFnbm9zdGljUmVwb3J0IHByZSBhZG1pc3Npb24KZGVmaW5lICJTREUgQ09WSUQgQW5kIEluZmx1ZW56YSBEaWFnbm9zdGljUmVwb3J0IjoKICAiQ09WSUQgQW5kIEluZmx1ZW56YSBEaWFnbm9zdGljUmVwb3J0IiBSZXBvcnRzCiAgICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuRGlhZ25vc3RpY1JlcG9ydExhYlJlc291cmNlKFJlcG9ydHMsCiAgICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1kYWlseS1kaWFnbm9zdGljcmVwb3J0LWxhYid9fSkKCi8vcmV0dXJuIHRoZSBSU1YgRGlhZ25vc3RpY1JlcG9ydCBwcmUgYWRtaXNzaW9uCmRlZmluZSAiU0RFIFJTViBEaWFnbm9zdGljUmVwb3J0IjoKICAiUlNWIERpYWdub3N0aWNSZXBvcnQiIFJlcG9ydHMKICAgIHJldHVybiBTaGFyZWRSZXNvdXJjZS5EaWFnbm9zdGljUmVwb3J0TGFiUmVzb3VyY2UoUmVwb3J0cywKICAgIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLWRhaWx5LWRpYWdub3N0aWNyZXBvcnQtbGFiJ319KQoKLy9yZXR1cm4gdGhlIERpYWdub3N0aWNSZXBvcnQgYmFzZWQgb24gdGhlIHJlc3VsdCBkdXJpbmcgdGhlIE1lYXN1cmVtZW50IFBlcmlvZCAgICAKZGVmaW5lICJTREUgQUNIIERhaWx5IERpYWdub3N0aWNSZXBvcnQgUmVzdWx0IGZyb20gTGFiIjoKICAiQUNIIERhaWx5IERpYWdub3N0aWNSZXBvcnQgUmVzdWx0IGZyb20gTGFiIiBSZXBvcnRzCiAgICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuRGlhZ25vc3RpY1JlcG9ydExhYlJlc291cmNlKFJlcG9ydHMsCiAgICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1kYWlseS1kaWFnbm9zdGljcmVwb3J0LWxhYid9fSkKCi8vcmV0dXJuIHRoZSBDT1ZJRC0xOSBhbmQgSW5mbHVlbnphIERpYWdub3N0aWNSZXBvcnQgYmFzZWQgb24gdGhlIHJlc3VsdCBwcmUgYWRtaXNzaW9uCmRlZmluZSAiU0RFIENPVklEIGFuZCBJbmZsdWVuemEgRGlhZ25vc3RpY1JlcG9ydCBSZXN1bHQgZnJvbSBMYWIiOgogICJDT1ZJRCBhbmQgSW5mbHVlbnphIERpYWdub3N0aWNSZXBvcnQgUmVzdWx0IGZyb20gTGFiIiBSZXBvcnRzCiAgICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuRGlhZ25vc3RpY1JlcG9ydExhYlJlc291cmNlKFJlcG9ydHMsCiAgICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1kYWlseS1kaWFnbm9zdGljcmVwb3J0LWxhYid9fSkKCi8vcmV0dXJuIHRoZSBSU1YgRGlhZ25vc3RpY1JlcG9ydCBiYXNlZCBvbiB0aGUgcmVzdWx0IHByZSBhZG1pc3Npb24KZGVmaW5lICJTREUgUlNWIERpYWdub3N0aWNSZXBvcnQgUmVzdWx0IGZyb20gTGFiIjoKICAiUlNWIERpYWdub3N0aWNSZXBvcnQgUmVzdWx0IGZyb20gTGFiIiBSZXBvcnRzCiAgICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuRGlhZ25vc3RpY1JlcG9ydExhYlJlc291cmNlKFJlcG9ydHMsCiAgICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1kYWlseS1kaWFnbm9zdGljcmVwb3J0LWxhYid9fSkKICAKZGVmaW5lICJTREUgQUNIIERhaWx5IFNlcnZpY2VSZXF1ZXN0IjoKICAoW1NlcnZpY2VSZXF1ZXN0OiAiQ09WSURfMTkgKFRlc3RzIGZvciBTQVJTX0NvVl8yIE51Y2xlaWMgQWNpZCkiXSAKICB1bmlvbiAgW1NlcnZpY2VSZXF1ZXN0OiAiQ09WSURfMTkgKFRlc3RzIGZvciBTQVJTX0NvVl8yIEFudGlnZW4pIl0gCiAgdW5pb24gIFtTZXJ2aWNlUmVxdWVzdDogIkluZmx1ZW56YSAoVGVzdHMgZm9yIGluZmx1ZW56YSBBIG9yIEIgdmlydXMgTnVjbGVpYyBBY2lkKSJdCiAgdW5pb24gIFtTZXJ2aWNlUmVxdWVzdDogIkluZmx1ZW56YSAoVGVzdHMgZm9yIGluZmx1ZW56YSBBIG9yIEIgdmlydXMgQW50aWdlbikiXQogIHVuaW9uICBbU2VydmljZVJlcXVlc3Q6ICJSU1YgKFRlc3RzIGZvciBSU1YgTnVjbGVpYyBBY2lkKSJdCiAgdW5pb24gIFtTZXJ2aWNlUmVxdWVzdDogIlJTViAoVGVzdHMgZm9yIFJTViBBbnRpZ2VuKSJdCiAgKSBTZXJ2aWNlUmVxdWVzdHMKICAgIHdoZXJlIFNlcnZpY2VSZXF1ZXN0cy5pbnRlbnQgfiAnb3JkZXInCiAgICAgIGFuZCBTZXJ2aWNlUmVxdWVzdHMuc3RhdHVzIH4gJ2NvbXBsZXRlZCcKICAgICAgYW5kIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIikKICByZXR1cm4gU2VydmljZVJlcXVlc3RSZXNvdXJjZShTZXJ2aWNlUmVxdWVzdHMsCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtZGFpbHktc2VydmljZXJlcXVlc3QnfX0pCgpkZWZpbmUgIlNERSBJc29sYXRpb24gUHJlY2F1dGlvbnMgSW1wbGVtZW50ZWQiOgogIFtQcm9jZWR1cmU6ICJUcmFuc21pc3Npb24gQmFzZWQgUHJlY2F1dGlvbiBUeXBlcyJdIElzb2xhdGlvblByZWNhdXRpb25zCiAgICB3aGVyZSBOSFNOSGVscGVycy4iTm9ybWFsaXplIEludGVydmFsIihJc29sYXRpb25QcmVjYXV0aW9ucy5wZXJmb3JtZWQpIGR1cmluZyAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgYW5kIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIikKICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuUHJvY2VkdXJlUmVzb3VyY2UoSXNvbGF0aW9uUHJlY2F1dGlvbnMsCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtZGFpbHktcHJvY2VkdXJlJ319KQoKZGVmaW5lICJTREUgQ292aWQgb3IgSW5mbHVlbnphIE1lZGljYXRpb24gQWRtaW5pc3RlcmVkIjoKICBbTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uXSBSUFNNZWRBZG1pbgogICAgbGV0IE1lZHM6IEdldE1lZGljYXRpb25Db2RlKFJQU01lZEFkbWluLm1lZGljYXRpb24pCiAgIHdoZXJlIChNZWRzIGluICJBbmFraW5yYSIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiQmFtbGFuaXZpbWFiIgogICAgICAgICAgICBvciBNZWRzIGluICJCYWxveGF2aXIiCiAgICAgICAgICAgIG9yIE1lZHMgaW4gIkJhcmljaXRpbmliIgogICAgICAgICAgICBvciBNZWRzIGluICJCZWJ0ZWxvdmltYWIiCiAgICAgICAgICAgIG9yIE1lZHMgaW4gIkNhc2lyaXZpbWFiIgogICAgICAgICAgICBvciBNZWRzIGluICJDYXNpcml2aW1hYiAvIEltZGV2aW1hYiIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiQ09WSUQxOSBSeE5vcm0gVmFsdWUgU2V0IGZvciBUb2NpbGl6dW1hYiIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiRXRlc2V2aW1hYiIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiSW1kZXZpbWFiIgogICAgICAgICAgICBvciBNZWRzIGluICJNb2xudXBpcmF2aXIiCiAgICAgICAgICAgIG9yIE1lZHMgaW4gIk5pcm1hdHJlbHZpciAvIFJpdG9uYXZpciIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiT3NlbHRhbWl2aXIiCiAgICAgICAgICAgIG9yIE1lZHMgaW4gIlBlcmFtaXZpciIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiUmVtZGVzaXZpciIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiU2FyaWx1bWFiIgogICAgICAgICAgICBvciBNZWRzIGluICJTb3Ryb3ZpbWFiIiAgICAKICAgICAgICAgICAgb3IgTWVkcyBpbiAiVG9mYWNpdGluaWIiCiAgICAgICAgICAgIG9yIE1lZHMgaW4gIlphbmFtaXZpciIpCiAgICAgIGFuZCBSUFNNZWRBZG1pbi5zdGF0dXMgfiAnY29tcGxldGVkJwogICAgICBhbmQgZXhpc3RzKCJJbml0aWFsIFBvcHVsYXRpb24iKQogICAgICBhbmQgTkhTTkhlbHBlcnMuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoUlBTTWVkQWRtaW4uZWZmZWN0aXZlKSBkdXJpbmcgIk1lYXN1cmVtZW50IFBlcmlvZCIKICAgIHJldHVybiBTaGFyZWRSZXNvdXJjZS5NZWRpY2F0aW9uQWRtaW5pc3RyYXRpb25SZXNvdXJjZShSUFNNZWRBZG1pbiwKICAgIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLWRhaWx5LW1lZGljYXRpb25hZG1pbmlzdHJhdGlvbid9fSkKCmRlZmluZSAiU0RFIENvdmlkIG9yIEluZmx1ZW56YSBNZWRpY2F0aW9uIE9yZGVyZWQiOgogIFtNZWRpY2F0aW9uUmVxdWVzdF0gUlBTTWVkUmVxdWVzdAogICAgbGV0IE1lZHM6IEdldE1lZGljYXRpb25Db2RlKFJQU01lZFJlcXVlc3QubWVkaWNhdGlvbikKICAgIHdoZXJlIChNZWRzIGluICJBbmFraW5yYSIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiQmFsb3hhdmlyIgogICAgICAgICAgICBvciBNZWRzIGluICJCYW1sYW5pdmltYWIiCiAgICAgICAgICAgIG9yIE1lZHMgaW4gIkJhcmljaXRpbmliIgogICAgICAgICAgICBvciBNZWRzIGluICJCZWJ0ZWxvdmltYWIiCiAgICAgICAgICAgIG9yIE1lZHMgaW4gIkNhc2lyaXZpbWFiIgogICAgICAgICAgICBvciBNZWRzIGluICJDYXNpcml2aW1hYiAvIEltZGV2aW1hYiIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiQ09WSUQxOSBSeE5vcm0gVmFsdWUgU2V0IGZvciBUb2NpbGl6dW1hYiIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiRXRlc2V2aW1hYiIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiSW1kZXZpbWFiIgogICAgICAgICAgICBvciBNZWRzIGluICJNb2xudXBpcmF2aXIiCiAgICAgICAgICAgIG9yIE1lZHMgaW4gIk5pcm1hdHJlbHZpciAvIFJpdG9uYXZpciIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiT3NlbHRhbWl2aXIiCiAgICAgICAgICAgIG9yIE1lZHMgaW4gIlBlcmFtaXZpciIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiUmVtZGVzaXZpciIKICAgICAgICAgICAgb3IgTWVkcyBpbiAiU2FyaWx1bWFiIgogICAgICAgICAgICBvciBNZWRzIGluICJTb3Ryb3ZpbWFiIiAgICAKICAgICAgICAgICAgb3IgTWVkcyBpbiAiVG9mYWNpdGluaWIiCiAgICAgICAgICAgIG9yIE1lZHMgaW4gIlphbmFtaXZpciIpCiAgICAgIGFuZCBleGlzdHMoIkluaXRpYWwgUG9wdWxhdGlvbiIpCiAgICAgIGFuZCBOSFNOSGVscGVycy4iTm9ybWFsaXplIEludGVydmFsIihSUFNNZWRSZXF1ZXN0LmF1dGhvcmVkT24pIGR1cmluZyAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgcmV0dXJuIE1lZGljYXRpb25SZXF1ZXN0UmVzb3VyY2UoUlBTTWVkUmVxdWVzdCwKICAgIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLWRhaWx5LW1lZGljYXRpb25yZXF1ZXN0J319KQoKZGVmaW5lICJTREUgTWVkaWNhdGlvbiI6CiAgKCJTREUgQ292aWQgb3IgSW5mbHVlbnphIE1lZGljYXRpb24gT3JkZXJlZCIKICB1bmlvbiAiU0RFIENvdmlkIG9yIEluZmx1ZW56YSBNZWRpY2F0aW9uIEFkbWluaXN0ZXJlZCIpIE1lZFJlcU9yQWRtaW4KICB3aGVyZSBNZWRSZXFPckFkbWluLm1lZGljYXRpb24gaXMgRkhJUi5SZWZlcmVuY2UKICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuTWVkaWNhdGlvblJlc291cmNlKEdldE1lZGljYXRpb25Gcm9tKE1lZFJlcU9yQWRtaW4ubWVkaWNhdGlvbiksCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtZGFpbHktbWVkaWNhdGlvbid9fSkKCi8vVG8gY2F0Y2ggYWxsIGlzb2xhdGlvbiBwcmVjYXV0aW9ucwpkZWZpbmUgIlNERSBBbGwgT2JzZXJ2YXRpb25zIjoKICAiT2JzZXJ2YXRpb25zIiBPCiAgd2hlcmUgZXhpc3RzKCJJbml0aWFsIFBvcHVsYXRpb24iKQogIHJldHVybiBPYnNlcnZhdGlvbkxhYlJlc291cmNlKE8sCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtZGFpbHktb2JzZXJ2YXRpb24nfX0pCgovL1RvIGNhdGNoIGFsbCBpc29sYXRpb24gcHJlY2F1dGlvbnMKZGVmaW5lICJTREUgQWxsIFNlcnZpY2VSZXF1ZXN0cyI6CiAgW1NlcnZpY2VSZXF1ZXN0XSBTUgogIHdoZXJlIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIikKICByZXR1cm4gU2VydmljZVJlcXVlc3RSZXNvdXJjZShTUiwKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1kYWlseS1zZXJ2aWNlcmVxdWVzdCd9fSkKCi8vVG8gY2F0Y2ggYWxsIGlzb2xhdGlvbiBwcmVjYXV0aW9ucwpkZWZpbmUgIlNERSBBbGwgUHJvY2VkdXJlcyI6CiAgW1Byb2NlZHVyZV0gUAogIHdoZXJlIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIikKICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuUHJvY2VkdXJlUmVzb3VyY2UoUCwKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1kYWlseS1wcm9jZWR1cmUnfX0pCgoKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovL2Z1bmN0aW9ucwovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRlZmluZSBmdW5jdGlvbiAiQ2hlY2tJUCIoZW5jb3VudGVyIEVuY291bnRlcik6CiAgZXhpc3RzKCJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgd2hlcmUgZW5jb3VudGVyLmlkID0gSVAuaWQpCgpkZWZpbmUgZnVuY3Rpb24gIkdldE1lZGljYXRpb24iKHJlZmVyZW5jZSBSZWZlcmVuY2UgKToKICBzaW5nbGV0b24gZnJvbSAoCiAgICBbTWVkaWNhdGlvbjogaWQgaW4ge05IU05IZWxwZXJzLkdldElkKHJlZmVyZW5jZS5yZWZlcmVuY2UpfV0KICApCgpkZWZpbmUgZnVuY3Rpb24gIkdldE1lZGljYXRpb25Db2RlIihjaG9pY2UgQ2hvaWNlPEZISVIuQ29kZWFibGVDb25jZXB0LCBGSElSLlJlZmVyZW5jZT4pOgogIGNhc2UKICAgIHdoZW4gY2hvaWNlIGlzIEZISVIuQ29kZWFibGVDb25jZXB0IHRoZW4KICAgICAgY2hvaWNlIGFzIEZISVIuQ29kZWFibGVDb25jZXB0CiAgICB3aGVuIGNob2ljZSBpcyBGSElSLlJlZmVyZW5jZSB0aGVuCiAgICAgIEdldE1lZGljYXRpb24oY2hvaWNlIGFzIEZISVIuUmVmZXJlbmNlKS5jb2RlCiAgICBlbHNlCiAgICAgIG51bGwgYXMgRkhJUi5Db2RlYWJsZUNvbmNlcHQKICBlbmQKCmRlZmluZSBmdW5jdGlvbiAiR2V0TWVkaWNhdGlvbkZyb20iKGNob2ljZSBDaG9pY2U8RkhJUi5Db2RlYWJsZUNvbmNlcHQsIEZISVIuUmVmZXJlbmNlPik6CiAgY2FzZQogICAgd2hlbiBjaG9pY2UgaXMgRkhJUi5SZWZlcmVuY2UgdGhlbgogICAgICBHZXRNZWRpY2F0aW9uKGNob2ljZSBhcyBGSElSLlJlZmVyZW5jZSkKICAgIGVsc2UKICAgICAgbnVsbAogIGVuZAoKZGVmaW5lIGZ1bmN0aW9uICJHZXRTcGVjaW1lbiIocmVmZXJlbmNlIEZISVIuUmVmZXJlbmNlKToKICBzaW5nbGV0b24gZnJvbSAoCiAgICBbU3BlY2ltZW5dIFNwZWNpbWVucwogICAgd2hlcmUgU3BlY2ltZW5zLmlkID0gTkhTTkhlbHBlcnMuR2V0SWQocmVmZXJlbmNlLnJlZmVyZW5jZSkKICApCgpkZWZpbmUgZnVuY3Rpb24gIkdldEVuY291bnRlciIocmVmZXJlbmNlIEZISVIuUmVmZXJlbmNlKToKICBzaW5nbGV0b24gZnJvbSAoCiAgICAiRW5jb3VudGVycyIgRW5jb3VudGVycwogICAgd2hlcmUgRW5jb3VudGVycy5pZCA9IE5IU05IZWxwZXJzLkdldElkKHJlZmVyZW5jZS5yZWZlcmVuY2UpCiAgKQoKZGVmaW5lIGZsdWVudCBmdW5jdGlvbiByZWZlcmVuY2VzKHJlZmVyZW5jZSBGSElSLlJlZmVyZW5jZSwgcmVzb3VyY2UgRkhJUi5SZXNvdXJjZSk6CiAgcmVzb3VyY2UuaWQgPSBMYXN0KFNwbGl0KHJlZmVyZW5jZS5yZWZlcmVuY2UsICcvJykpCgpkZWZpbmUgZmx1ZW50IGZ1bmN0aW9uIHJlZmVyZW5jZXMocmVmZXJlbmNlcyBMaXN0PEZISVIuUmVmZXJlbmNlPiwgcmVzb3VyY2UgRkhJUi5SZXNvdXJjZSk6CiAgZXhpc3RzKHJlZmVyZW5jZXMgUiB3aGVyZSBSLnJlZmVyZW5jZXMocmVzb3VyY2UpKQoKLy9Db21tb24gUmV0cmlldmFscwpkZWZpbmUgIkVuY291bnRlcnMiOgogIFtFbmNvdW50ZXJdCgpkZWZpbmUgIk9ic2VydmF0aW9ucyI6CiAgW09ic2VydmF0aW9uXQoKZGVmaW5lICJEaWFnbm9zdGljUmVwb3J0cyI6CiAgW0RpYWdub3N0aWNSZXBvcnRdCgogLy8KIC8vIE1lYXN1cmUgU3BlY2lmaWMgUmVzb3VyY2UgQ3JlYXRpb24gRnVuY3Rpb25zCiAvLwpkZWZpbmUgZnVuY3Rpb24gRW5jb3VudGVySG9zcGl0YWxpemF0aW9uKGhvc3BpdGFsaXphdGlvbiBGSElSLkVuY291bnRlci5Ib3NwaXRhbGl6YXRpb24pOgogIGhvc3BpdGFsaXphdGlvbiBoCiAgcmV0dXJuIEZISVIuRW5jb3VudGVyLkhvc3BpdGFsaXphdGlvbnsKICAgIGV4dGVuc2lvbjogaC5leHRlbnNpb24sCiAgICBwcmVBZG1pc3Npb25JZGVudGlmaWVyOiBoLnByZUFkbWlzc2lvbklkZW50aWZpZXIsCiAgICBvcmlnaW46IGgub3JpZ2luLAogICAgYWRtaXRTb3VyY2U6IGguYWRtaXRTb3VyY2UsCiAgICByZUFkbWlzc2lvbjogaC5yZUFkbWlzc2lvbiwKICAgIGRpZXRQcmVmZXJlbmNlOiBoLmRpZXRQcmVmZXJlbmNlLAogICAgc3BlY2lhbENvdXJ0ZXN5OiBoLnNwZWNpYWxDb3VydGVzeSwKICAgIHNwZWNpYWxBcnJhbmdlbWVudDogaC5zcGVjaWFsQXJyYW5nZW1lbnQsCiAgICBkZXN0aW5hdGlvbjogaC5kZXN0aW5hdGlvbiwKICAgIGRpc2NoYXJnZURpc3Bvc2l0aW9uOiBoLmRpc2NoYXJnZURpc3Bvc2l0aW9uCiAgfQoKZGVmaW5lIGZ1bmN0aW9uIEVuY291bnRlclJlc291cmNlKGVuY291bnRlciBFbmNvdW50ZXIsIHByb2ZpbGVVUkxzIExpc3Q8RkhJUi5jYW5vbmljYWw+KToKICBlbmNvdW50ZXIgZQogIHJldHVybiBFbmNvdW50ZXJ7CiAgICBpZDogRkhJUi5pZHt2YWx1ZTogJ0xDUi0nICsgZS5pZH0sCiAgICBtZXRhOiBTaGFyZWRSZXNvdXJjZS5NZXRhRWxlbWVudChlLCBwcm9maWxlVVJMcyksCiAgICBleHRlbnNpb246IGUuZXh0ZW5zaW9uLAogICAgaWRlbnRpZmllcjogU2hhcmVkUmVzb3VyY2UuRW5jb3VudGVySWRlbnRpZmllcihlLmlkZW50aWZpZXIpLAogICAgc3RhdHVzOiBlLnN0YXR1cywKICAgIHN0YXR1c0hpc3Rvcnk6IFNoYXJlZFJlc291cmNlLkVuY291bnRlclN0YXR1c0hpc3RvcnkoZS5zdGF0dXNIaXN0b3J5KSwKICAgIGNsYXNzOiBlLmNsYXNzLAogICAgY2xhc3NIaXN0b3J5OiBTaGFyZWRSZXNvdXJjZS5FbmNvdW50ZXJDbGFzc0hpc3RvcnkoZS5jbGFzc0hpc3RvcnkpLAogICAgdHlwZTogZS50eXBlLAogICAgc2VydmljZVR5cGU6IGUuc2VydmljZVR5cGUsCiAgICBwcmlvcml0eTogZS5wcmlvcml0eSwKICAgIHN1YmplY3Q6IGUuc3ViamVjdCwKICAgIHBlcmlvZDogZS5wZXJpb2QsCiAgICBsZW5ndGg6IGUubGVuZ3RoLAogICAgcmVhc29uQ29kZTogZS5yZWFzb25Db2RlLAogICAgcmVhc29uUmVmZXJlbmNlOiBlLnJlYXNvblJlZmVyZW5jZSwKICAgIGRpYWdub3NpczogU2hhcmVkUmVzb3VyY2UuRW5jb3VudGVyRGlhZ25vc2lzKGUuZGlhZ25vc2lzKSwKICAgIGFjY291bnQ6IGUuYWNjb3VudCwKICAgIGhvc3BpdGFsaXphdGlvbjogRW5jb3VudGVySG9zcGl0YWxpemF0aW9uKGUuaG9zcGl0YWxpemF0aW9uKSwKICAgIGxvY2F0aW9uOiBTaGFyZWRSZXNvdXJjZS5FbmNvdW50ZXJMb2NhdGlvbihlLmxvY2F0aW9uKSwKICAgIHBhcnRPZjogZS5wYXJ0T2YKICB9CgpkZWZpbmUgZnVuY3Rpb24gTWVkaWNhdGlvblJlcXVlc3RSZXBlYXQocmVwZWF0IEZISVIuVGltaW5nLlJlcGVhdCk6CiAgcmVwZWF0IHIKICByZXR1cm4gRkhJUi5UaW1pbmcuUmVwZWF0ewogICAgYm91bmRzOiByLmJvdW5kcywKICAgIGNvdW50OiByLmNvdW50LAogICAgY291bnRNYXg6IHIuY291bnRNYXgsCiAgICAiZHVyYXRpb24iOiByLiJkdXJhdGlvbiIsCiAgICBkdXJhdGlvbk1heDogci5kdXJhdGlvbk1heCwKICAgIGR1cmF0aW9uVW5pdDogci5kdXJhdGlvblVuaXQsCiAgICBmcmVxdWVuY3k6IHIuZnJlcXVlbmN5LAogICAgZnJlcXVlbmN5TWF4OiByLmZyZXF1ZW5jeU1heCwKICAgIHBlcmlvZDogci5wZXJpb2QsCiAgICBwZXJpb2RNYXg6IHIucGVyaW9kTWF4LAogICAgcGVyaW9kVW5pdDogci5wZXJpb2RVbml0LAogICAgZGF5T2ZXZWVrOiByLmRheU9mV2VlaywKICAgIHRpbWVPZkRheTogci50aW1lT2ZEYXksCiAgICAid2hlbiI6IHIuIndoZW4iLAogICAgb2Zmc2V0OiByLm9mZnNldAogIH0KCmRlZmluZSBmdW5jdGlvbiBNZWRpY2F0aW9uUmVxdWVzdFRpbWluZyh0aW1pbmcgRkhJUi5UaW1pbmcpOgogIHRpbWluZyB0CiAgcmV0dXJuIEZISVIuVGltaW5newogICAgZXZlbnQ6IHQuZXZlbnQsCiAgICByZXBlYXQ6IE1lZGljYXRpb25SZXF1ZXN0UmVwZWF0KHQucmVwZWF0KSwKICAgIGNvZGU6IHQuY29kZQogIH0KCmRlZmluZSBmdW5jdGlvbiBNZWRpY2F0aW9uUmVxdWVzdERvc2FnZUluc3RydWN0aW9uKGRvc2FnZUluc3RydWN0aW9uIExpc3Q8RkhJUi5Eb3NhZ2U+KToKICBkb3NhZ2VJbnN0cnVjdGlvbiBkSQogIHJldHVybiBGSElSLkRvc2FnZXsKICAgIHRleHQ6IGRJLnRleHQsCiAgICBwYXRpZW50SW5zdHJ1Y3Rpb246IGRJLnBhdGllbnRJbnN0cnVjdGlvbiwKICAgIHRpbWluZzogTWVkaWNhdGlvblJlcXVlc3RUaW1pbmcoZEkudGltaW5nKSwKICAgIGFzTmVlZGVkOiBkSS5hc05lZWRlZCwKICAgIHNpdGU6IGRJLnNpdGUsCiAgICByb3V0ZTogZEkucm91dGUsCiAgICBtZXRob2Q6IGRJLm1ldGhvZCwKICAgIGRvc2VBbmRSYXRlOiBTaGFyZWRSZXNvdXJjZS5NZWRpY2F0aW9uUmVxdWVzdERvc2VBbmRSYXRlKGRJLmRvc2VBbmRSYXRlKQogIH0KCiBkZWZpbmUgZnVuY3Rpb24gTWVkaWNhdGlvblJlcXVlc3RSZXNvdXJjZShtZWRpY2F0aW9uUmVxdWVzdCBNZWRpY2F0aW9uUmVxdWVzdCwgcHJvZmlsZVVSTHMgTGlzdDxGSElSLmNhbm9uaWNhbD4pOgogIG1lZGljYXRpb25SZXF1ZXN0IG0KICByZXR1cm4gTWVkaWNhdGlvblJlcXVlc3R7CiAgICBpZDogRkhJUi5pZCB7dmFsdWU6ICdMQ1ItJyArIG0uaWR9LAogICAgbWV0YTogU2hhcmVkUmVzb3VyY2UuTWV0YUVsZW1lbnQobWVkaWNhdGlvblJlcXVlc3QsIHByb2ZpbGVVUkxzKSwKICAgIGV4dGVuc2lvbjogbS5leHRlbnNpb24sCiAgICBzdGF0dXM6IG0uc3RhdHVzLAogICAgaW50ZW50OiBtLmludGVudCwKICAgIGNhdGVnb3J5OiBtLmNhdGVnb3J5LAogICAgcHJpb3JpdHk6IG0ucHJpb3JpdHksCiAgICBkb05vdFBlcmZvcm06IG0uZG9Ob3RQZXJmb3JtLAogICAgcmVwb3J0ZWQ6IG0ucmVwb3J0ZWQsCiAgICBtZWRpY2F0aW9uOiBtLm1lZGljYXRpb24sCiAgICBzdWJqZWN0OiBtLnN1YmplY3QsCiAgICBlbmNvdW50ZXI6IG0uZW5jb3VudGVyLAogICAgYXV0aG9yZWRPbjogbS5hdXRob3JlZE9uLAogICAgcmVxdWVzdGVyOiBtLnJlcXVlc3RlciwKICAgIHJlY29yZGVyOiBtLnJlY29yZGVyLAogICAgcmVhc29uQ29kZTogbS5yZWFzb25Db2RlLAogICAgcmVhc29uUmVmZXJlbmNlOiBtLnJlYXNvblJlZmVyZW5jZSwKICAgIGluc3RhbnRpYXRlc0Nhbm9uaWNhbDogbS5pbnN0YW50aWF0ZXNDYW5vbmljYWwsCiAgICBpbnN0YW50aWF0ZXNVcmk6IG0uaW5zdGFudGlhdGVzVXJpLAogICAgY291cnNlT2ZUaGVyYXB5VHlwZTogbS5jb3Vyc2VPZlRoZXJhcHlUeXBlLAogICAgZG9zYWdlSW5zdHJ1Y3Rpb246IE1lZGljYXRpb25SZXF1ZXN0RG9zYWdlSW5zdHJ1Y3Rpb24obS5kb3NhZ2VJbnN0cnVjdGlvbikKICB9CgpkZWZpbmUgZnVuY3Rpb24gT2JzZXJ2YXRpb25MYWJDb2RpbmcoY29kaW5nIExpc3Q8Q29kaW5nPik6CiAgY29kaW5nIGMKICByZXR1cm4gQ29kaW5newogICAgc3lzdGVtOiBjLnN5c3RlbSwKICAgIHZlcnNpb246IGMudmVyc2lvbiwKICAgIGNvZGU6IGMuY29kZSwKICAgIGRpc3BsYXk6IGMuZGlzcGxheSwKICAgIHVzZXJTZWxlY3RlZDogYy51c2VyU2VsZWN0ZWQKICB9CgpkZWZpbmUgZnVuY3Rpb24gT2JzZXJ2YXRpb25MYWJDYXRlZ29yeShjYXRlZ29yeSBMaXN0PENvZGVhYmxlQ29uY2VwdD4pOgogIGNhdGVnb3J5IGMKICByZXR1cm4gQ29kZWFibGVDb25jZXB0ewogICAgY29kaW5nOiBPYnNlcnZhdGlvbkxhYkNvZGluZyhjLmNvZGluZyksCiAgICB0ZXh0OiBjLnRleHQKICB9CgpkZWZpbmUgZnVuY3Rpb24gT2JzZXJ2YXRpb25MYWJSZXNvdXJjZShvYnNlcnZhdGlvbiBPYnNlcnZhdGlvbiwgcHJvZmlsZVVSTHMgTGlzdDxGSElSLmNhbm9uaWNhbD4pOgogIG9ic2VydmF0aW9uIG8KICByZXR1cm4gT2JzZXJ2YXRpb257CiAgICBpZDogRkhJUi5pZCB7dmFsdWU6ICdMQ1ItJyArIG8uaWR9LAogICAgbWV0YTogU2hhcmVkUmVzb3VyY2UuTWV0YUVsZW1lbnQobywgcHJvZmlsZVVSTHMpLAogICAgZXh0ZW5zaW9uOiBvLmV4dGVuc2lvbiwKICAgIGJhc2VkT246IG8uYmFzZWRPbiwKICAgIHBhcnRPZjogby5wYXJ0T2YsCiAgICBzdGF0dXM6IG8uc3RhdHVzLAogICAgY2F0ZWdvcnk6IE9ic2VydmF0aW9uTGFiQ2F0ZWdvcnkoby5jYXRlZ29yeSksCiAgICBjb2RlOiBvLmNvZGUsCiAgICBzdWJqZWN0OiBvLnN1YmplY3QsCiAgICBmb2N1czogby5mb2N1cywKICAgIGVuY291bnRlcjogby5lbmNvdW50ZXIsCiAgICBlZmZlY3RpdmU6IG8uZWZmZWN0aXZlLAogICAgaXNzdWVkOiBvLmlzc3VlZCwKICAgIHBlcmZvcm1lcjogby5wZXJmb3JtZXIsCiAgICB2YWx1ZTogby52YWx1ZSwKICAgIGRhdGFBYnNlbnRSZWFzb246IG8uZGF0YUFic2VudFJlYXNvbiwKICAgIGludGVycHJldGF0aW9uOiBvLmludGVycHJldGF0aW9uLAogICAgbm90ZTogby5ub3RlLAogICAgYm9keVNpdGU6IG8uYm9keVNpdGUsCiAgICBtZXRob2Q6IG8ubWV0aG9kLAogICAgc3BlY2ltZW46IG8uc3BlY2ltZW4sCiAgICBkZXZpY2U6IG8uZGV2aWNlLAogICAgcmVmZXJlbmNlUmFuZ2U6IFNoYXJlZFJlc291cmNlLk9ic2VydmF0aW9uUmVmZXJlbmNlUmFuZ2Uoby5yZWZlcmVuY2VSYW5nZSksCiAgICBoYXNNZW1iZXI6IG8uaGFzTWVtYmVyLAogICAgZGVyaXZlZEZyb206IG8uZGVyaXZlZEZyb20sCiAgICBjb21wb25lbnQ6IFNoYXJlZFJlc291cmNlLk9ic2VydmF0aW9uQ29tcG9uZW50KG8uY29tcG9uZW50KQogIH0KCmRlZmluZSBmdW5jdGlvbiAiR2V0UHJvY2VkdXJlRXh0ZW5zaW9ucyIoZG9tYWluUmVzb3VyY2UgRG9tYWluUmVzb3VyY2UpOgogIGRvbWFpblJlc291cmNlLmV4dGVuc2lvbiBFCiAgICB3aGVyZSBFLnVybCAhPSAnaHR0cDovL2hsNy5vcmcvZmhpci91cy9xaWNvcmUvU3RydWN0dXJlRGVmaW5pdGlvbi9xaWNvcmUtcmVjb3JkZWQnCiAgICAgcmV0dXJuIEUKCmRlZmluZSBmdW5jdGlvbiBQcm9jZWR1cmVSZXNvdXJjZShwcm9jZWR1cmUgUHJvY2VkdXJlLCBwcm9maWxlVVJMcyBMaXN0PEZISVIuY2Fub25pY2FsPik6CiAgcHJvY2VkdXJlIHAKICByZXR1cm4gUHJvY2VkdXJlewogICAgaWQ6IEZISVIuaWQge3ZhbHVlOiAnTENSLScgKyBwLmlkfSwKICAgIG1ldGE6IFNoYXJlZFJlc291cmNlLk1ldGFFbGVtZW50KHAsIHByb2ZpbGVVUkxzKSwKICAgIGV4dGVuc2lvbjogR2V0UHJvY2VkdXJlRXh0ZW5zaW9ucyhwKSwgCiAgICBpbnN0YW50aWF0ZXNDYW5vbmljYWw6IHAuaW5zdGFudGlhdGVzQ2Fub25pY2FsLAogICAgaW5zdGFudGlhdGVzVXJpOiBwLmluc3RhbnRpYXRlc1VyaSwKICAgIGJhc2VkT246IHAuYmFzZWRPbiwKICAgIHBhcnRPZjogcC5wYXJ0T2YsCiAgICBzdGF0dXM6IHAuc3RhdHVzLAogICAgc3RhdHVzUmVhc29uOiBwLnN0YXR1c1JlYXNvbiwKICAgIGNhdGVnb3J5OiBwLmNhdGVnb3J5LAogICAgY29kZTogcC5jb2RlLAogICAgc3ViamVjdDogcC5zdWJqZWN0LAogICAgZW5jb3VudGVyOiBwLmVuY291bnRlciwKICAgIHBlcmZvcm1lZDogcC5wZXJmb3JtZWQsCiAgICByZWNvcmRlcjogcC5yZWNvcmRlciwKICAgIGFzc2VydGVyOiBwLmFzc2VydGVyLAogICAgcGVyZm9ybWVyOiBTaGFyZWRSZXNvdXJjZS5Qcm9jZWR1cmVQZXJmb3JtZXIocC5wZXJmb3JtZXIpLAogICAgbG9jYXRpb246IHAubG9jYXRpb24sCiAgICByZWFzb25Db2RlOiBwLnJlYXNvbkNvZGUsCiAgICByZWFzb25SZWZlcmVuY2U6IHAucmVhc29uUmVmZXJlbmNlLAogICAgYm9keVNpdGU6IHAuYm9keVNpdGUsCiAgICBvdXRjb21lOiBwLm91dGNvbWUsCiAgICByZXBvcnQ6IHAucmVwb3J0LAogICAgY29tcGxpY2F0aW9uOiBwLmNvbXBsaWNhdGlvbiwKICAgIGNvbXBsaWNhdGlvbkRldGFpbDogcC5jb21wbGljYXRpb25EZXRhaWwsCiAgICBmb2xsb3dVcDogcC5mb2xsb3dVcCwKICAgIG5vdGU6IHAubm90ZSwKICAgIGZvY2FsRGV2aWNlOiBTaGFyZWRSZXNvdXJjZS5Qcm9jZWR1cmVGb2NhbERldmljZShwLmZvY2FsRGV2aWNlKSwKICAgIHVzZWRSZWZlcmVuY2U6IHAudXNlZFJlZmVyZW5jZSwKICAgIHVzZWRDb2RlOiBwLnVzZWRDb2RlCiAgfQoKZGVmaW5lIGZ1bmN0aW9uIFNlcnZpY2VSZXF1ZXN0UmVzb3VyY2Uoc2VydmljZVJlcXVlc3QgU2VydmljZVJlcXVlc3QsIHByb2ZpbGVVUkxzIExpc3Q8RkhJUi5jYW5vbmljYWw+KToKICBzZXJ2aWNlUmVxdWVzdCBzUgogIHJldHVybiBTZXJ2aWNlUmVxdWVzdHsKICAgIGlkOiBGSElSLmlkIHt2YWx1ZTogJ0xDUi0nICsgc1IuaWR9LAogICAgbWV0YTogU2hhcmVkUmVzb3VyY2UuTWV0YUVsZW1lbnQoc1IsIHByb2ZpbGVVUkxzKSwKICAgIGV4dGVuc2lvbjogc1IuZXh0ZW5zaW9uLAogICAgaW5zdGFudGlhdGVzQ2Fub25pY2FsOiBzUi5pbnN0YW50aWF0ZXNDYW5vbmljYWwsCiAgICBpbnN0YW50aWF0ZXNVcmk6IHNSLmluc3RhbnRpYXRlc1VyaSwKICAgIGJhc2VkT246IHNSLmJhc2VkT24sCiAgICByZXBsYWNlczogc1IucmVwbGFjZXMsCiAgICByZXF1aXNpdGlvbjogc1IucmVxdWlzaXRpb24sCiAgICBzdGF0dXM6IHNSLnN0YXR1cywKICAgIGludGVudDogc1IuaW50ZW50LAogICAgY2F0ZWdvcnk6IHNSLmNhdGVnb3J5LAogICAgcHJpb3JpdHk6IHNSLnByaW9yaXR5LAogICAgZG9Ob3RQZXJmb3JtOiBzUi5kb05vdFBlcmZvcm0sCiAgICBjb2RlOiBzUi5jb2RlLAogICAgb3JkZXJEZXRhaWw6IHNSLm9yZGVyRGV0YWlsLAogICAgcXVhbnRpdHk6IHNSLnF1YW50aXR5LAogICAgc3ViamVjdDogc1Iuc3ViamVjdCwKICAgIGVuY291bnRlcjogc1IuZW5jb3VudGVyLAogICAgb2NjdXJyZW5jZTogc1Iub2NjdXJyZW5jZSwKICAgIGFzTmVlZGVkOiBzUi5hc05lZWRlZCwKICAgIGF1dGhvcmVkT246IHNSLmF1dGhvcmVkT24sCiAgICBwZXJmb3JtZXJUeXBlOiBzUi5wZXJmb3JtZXJUeXBlLAogICAgcGVyZm9ybWVyOiBzUi5wZXJmb3JtZXIsCiAgICBsb2NhdGlvbkNvZGU6IHNSLmxvY2F0aW9uQ29kZSwKICAgIGxvY2F0aW9uUmVmZXJlbmNlOiBzUi5sb2NhdGlvblJlZmVyZW5jZSwKICAgIHJlYXNvbkNvZGU6IHNSLnJlYXNvbkNvZGUsCiAgICByZWFzb25SZWZlcmVuY2U6IHNSLnJlYXNvblJlZmVyZW5jZSwKICAgIGluc3VyYW5jZTogc1IuaW5zdXJhbmNlLAogICAgc3VwcG9ydGluZ0luZm86IHNSLnN1cHBvcnRpbmdJbmZvLAogICAgc3BlY2ltZW46IHNSLnNwZWNpbWVuLAogICAgYm9keVNpdGU6IHNSLmJvZHlTaXRlLAogICAgbm90ZTogc1Iubm90ZSwKICAgIHBhdGllbnRJbnN0cnVjdGlvbjogc1IucGF0aWVudEluc3RydWN0aW9uLAogICAgcmVsZXZhbnRIaXN0b3J5OiBzUi5yZWxldmFudEhpc3RvcnkKICB9CiAgICAKICAgIA=="/>
<url
value="http://www.cdc.gov/nhsn/fhirportal/dqm/ig/NHSNAcuteCareHospitalDailyInitialPopulation.cql"/>
</content>
</Library>