CDC National Healthcare Safety Network (NHSN) Digital Quality Measures (dQM) Content Package IG
1.0.0 - Release 1 United States of America flag

CDC National Healthcare Safety Network (NHSN) Digital Quality Measures (dQM) Content Package IG - Local Development build (v1.0.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: NHSN Acute Care Hospital Monthly Initial Population Library - JSON Representation

Page standards status: Trial-use Maturity Level: 1

Raw json | Download

{
  "resourceType" : "Library",
  "id" : "NHSNAcuteCareHospitalMonthlyInitialPopulation",
  "text" : {
    "status" : "extensions",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n    <table class=\"grid dict\">\n        \n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Id: </b></th>\n            <td style=\"padding-left: 4px;\">NHSNAcuteCareHospitalMonthlyInitialPopulation</td>\n        </tr>\n        \n\n        \n        \n        <tr>\n            <th scope=\"row\"><b>Version: </b></th>\n            <td style=\"padding-left: 4px;\">1.0.0</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Url: </b></th>\n            <td style=\"padding-left: 4px;\"><a href=\"Library-NHSNAcuteCareHospitalMonthlyInitialPopulation.html\">NHSNAcuteCareHospitalMonthlyInitialPopulation</a></td>\n        </tr>\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Status: </b></th>\n            <td style=\"padding-left: 4px;\">draft</td>\n        </tr>\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Type: </b></th>\n            <td style=\"padding-left: 4px;\">\n                \n                    \n                        \n                        <p style=\"margin-bottom: 5px;\">\n                            <b>system: </b> <span><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-library-type.html\">http://terminology.hl7.org/CodeSystem/library-type</a></span>\n                        </p>\n                        \n                        \n                        <p style=\"margin-bottom: 5px;\">\n                            <b>code: </b> <span>logic-library</span>\n                        </p>\n                        \n                        \n                    \n                \n                \n            </td>\n        </tr>\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Date: </b></th>\n            <td style=\"padding-left: 4px;\">2025-09-28 15:20:22+0000</td>\n        </tr>\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Publisher: </b></th>\n            <td style=\"padding-left: 4px;\">CDC National Healthcare Safety Network (NHSN)</td>\n        </tr>\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Jurisdiction: </b></th>\n            <td style=\"padding-left: 4px;\">US</td>\n        </tr>\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n\n        \n        <tr>\n            <th scope=\"row\"><b>Related Artifacts: </b></th>\n            <td style=\"padding-left: 4px;\">\n                \n                \n                \n                <p><b>Dependencies</b></p>\n                <ul>\n                  \n                    <li><a href=\"http://fhir.org/guides/cqf/common/4.0.1/4.0.1/Library-FHIR-ModelInfo.html\">http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1</a></li>\n                  \n                    <li><code>http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/FHIRHelpers|4.0.2</code></li>\n                  \n                    <li><code>http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/NHSNHelpers|0.0.002</code></li>\n                  \n                    <li><code>http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/SharedResourceCreation|0.1.010</code></li>\n                  \n                    <li><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-v3-ActCode.html\">ActCodeversion: null9.0.0)</a></li>\n                  \n                    <li><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-observation-category.html\">Observation Category Codesversion: null1.0.1)</a></li>\n                  \n                    <li><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-v3-loinc.html\">Logical Observation Identifiers, Names and Codes (LOINC)</a></li>\n                  \n                    <li><a href=\"http://terminology.hl7.org/5.0.0/CodeSystem-v2-0074.html\">diagnosticServiceSectionIdversion: null2.5.0)</a></li>\n                  \n                    <li><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-condition-category.html\">Condition Category Codesversion: null1.0.1)</a></li>\n                  \n                    <li><a href=\"http://hl7.org/fhir/us/core/STU6.1/CodeSystem-condition-category.html\">US Core Condition Category Extension Codesversion: null6.1.0)</a></li>\n                  \n                    <li><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-condition-clinical.html\">Condition Clinical Status Codesversion: null3.0.0)</a></li>\n                  \n                    <li><a href=\"http://hl7.org/fhir/R4/codesystem-snomedct.html\">SNOMED CT (all versions)</a></li>\n                  \n                    <li><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-medicationrequest-category.html\">MedicationRequest Category Codesversion: null1.0.0)</a></li>\n                  \n                    <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1046.265/expansion\">Inpatient, Emergency, and Observation Locations</a></li>\n                  \n                    <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.117.1.7.1.292/expansion\">Emergency Department Visitversion: null20210611)</a></li>\n                  \n                    <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113883.3.666.5.307/expansion\">Encounter Inpatient</a></li>\n                  \n                    <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1111.143/expansion\">Observation Servicesversion: null20210611)</a></li>\n                  \n                    <li><a href=\"https://vsac.nlm.nih.gov/valueset/2.16.840.1.113762.1.4.1046.274/expansion\">http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274</a></li>\n                  \n                </ul>\n                \n                \n                \n                \n                \n            </td>\n        </tr>\n        \n\n        \n        <tr>\n          <th scope=\"row\"><b>Parameters: </b></th>\n          <td style=\"padding-left: 4px;\">\n            <table class=\"grid-dict\">\n              <tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>\n              \n                <tr><th>Measurement Period</th><th>Period</th><th>0</th><th>1</th><th>In</th></tr>\n              \n                <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n                <tr><th>Qualifying Encounters During Measurement Period</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>Encounters</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>Encounters with Patient Hospital Locations</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>Initial Population</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>Conditions</th><th>Condition</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>DiagnosticReports</th><th>DiagnosticReport</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>Observations</th><th>Observation</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>Get Locations from IP Encounters in Measurement Period</th><th>Location</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Condition</th><th>Condition</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Device</th><th>Device</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE DiagnosticReport Lab</th><th>DiagnosticReport</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE DiagnosticReport Note</th><th>DiagnosticReport</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE DiagnosticReport Others</th><th>DiagnosticReport</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Encounter</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE IP Encounters</th><th>Encounter</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Location</th><th>Location</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Medication Administration</th><th>MedicationAdministration</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Medication Request</th><th>MedicationRequest</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Medication</th><th>Medication</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Observation Lab Category</th><th>Observation</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Observation Vital Signs Category</th><th>Observation</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Observation Category</th><th>Observation</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Coverage</th><th>Coverage</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Procedure</th><th>Procedure</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Specimen</th><th>Specimen</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Service Request</th><th>ServiceRequest</th><th>0</th><th>*</th><th>Out</th></tr>\n              \n                <tr><th>SDE Minimal Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>\n              \n            </table>\n          </td>\n        </tr>\n        \n\n        \n        <tr>\n          <th scope=\"row\"><b>Data Requirements:</b></th>\n          <td style=\"padding-left: 4px;\">\n            <table class=\"grid-dict\">\n              <tr><th><b>Type</b></th><th><b>Profile</b></th><th><b>MS</b></th><th><b>Code Filter</b></th></tr>\n              \n                <tr>\n                  <th>Patient</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Patient</th>\n                  <th>;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Encounter</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n                  <th>;;;;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                      <b>code filter: </b>\n                      \n                      <br/>\n                      \n                      \n                      <span style=\"padding-left: 4px;\">\n                          <b>path: </b><span>type</span>\n                      </span>\n                      \n                      <br/>\n                      \n                      \n                      \n                      <span style=\"padding-left: 4px;\">\n                          <b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307</span>\n                      </span>\n                      \n                      \n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Encounter</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n                  <th>;;;;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                      <b>code filter: </b>\n                      \n                      <br/>\n                      \n                      \n                      <span style=\"padding-left: 4px;\">\n                          <b>path: </b><span>type</span>\n                      </span>\n                      \n                      <br/>\n                      \n                      \n                      \n                      <span style=\"padding-left: 4px;\">\n                          <b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292|20210611</span>\n                      </span>\n                      \n                      \n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Encounter</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n                  <th>;;;;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                      <b>code filter: </b>\n                      \n                      <br/>\n                      \n                      \n                      <span style=\"padding-left: 4px;\">\n                          <b>path: </b><span>type</span>\n                      </span>\n                      \n                      <br/>\n                      \n                      \n                      \n                      <span style=\"padding-left: 4px;\">\n                          <b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143|20210611</span>\n                      </span>\n                      \n                      \n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Encounter</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n                  <th>;;;;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                      <b>code filter: </b>\n                      \n                      <br/>\n                      \n                      \n                      <span style=\"padding-left: 4px;\">\n                          <b>path: </b><span>class</span>\n                      </span>\n                      \n                      <br/>\n                      \n                      \n                      \n                      <span style=\"padding-left: 4px;\">\n                          <b>value set: </b><span>http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274</span>\n                      </span>\n                      \n                      \n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Encounter</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n                  <th>;;;;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                      <b>code filter: </b>\n                      \n                      <br/>\n                      \n                      \n                      <span style=\"padding-left: 4px;\">\n                          <b>path: </b><span>class</span>\n                      </span>\n                      \n                      <br/>\n                      \n                      \n                      \n                      \n                          \n                          <p style=\"margin-bottom: 5px;\">\n                              <b>system: </b> <span><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-v3-ActCode.html\">http://terminology.hl7.org/CodeSystem/v3-ActCode</a></span>\n                          </p>\n                          \n                          \n                          <p style=\"margin-bottom: 5px;\">\n                              <b>code: </b> <span>EMER</span>\n                          </p>\n                          \n                          \n                          <p style=\"margin-bottom: 5px;\">\n                              <b>display: </b> <span>emergency</span>\n                          </p>\n                          \n                      \n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Encounter</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n                  <th>;;;;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                      <b>code filter: </b>\n                      \n                      <br/>\n                      \n                      \n                      <span style=\"padding-left: 4px;\">\n                          <b>path: </b><span>class</span>\n                      </span>\n                      \n                      <br/>\n                      \n                      \n                      \n                      \n                          \n                          <p style=\"margin-bottom: 5px;\">\n                              <b>system: </b> <span><a href=\"http://terminology.hl7.org/6.5.0/CodeSystem-v3-ActCode.html\">http://terminology.hl7.org/CodeSystem/v3-ActCode</a></span>\n                          </p>\n                          \n                          \n                          <p style=\"margin-bottom: 5px;\">\n                              <b>code: </b> <span>OBSENC</span>\n                          </p>\n                          \n                          \n                          <p style=\"margin-bottom: 5px;\">\n                              <b>display: </b> <span>observation encounter</span>\n                          </p>\n                          \n                      \n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Encounter</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Encounter</th>\n                  <th>;;;;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Location</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Location</th>\n                  <th>;;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Condition</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Condition</th>\n                  <th>;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>DiagnosticReport</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/DiagnosticReport</th>\n                  <th>;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Observation</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Observation</th>\n                  <th>;;;;;;;;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Device</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Device</th>\n                  <th>;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>MedicationAdministration</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/MedicationAdministration</th>\n                  <th>;;;;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>MedicationRequest</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/MedicationRequest</th>\n                  <th>;;;;;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Medication</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Medication</th>\n                  <th>;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Coverage</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Coverage</th>\n                  <th>;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Procedure</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Procedure</th>\n                  <th>;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>Specimen</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/Specimen</th>\n                  <th>;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n                <tr>\n                  <th>ServiceRequest</th>\n                  <th>http://hl7.org/fhir/StructureDefinition/ServiceRequest</th>\n                  <th>;;;;;;;;;;;;;;;;;</th>\n                  <th>\n                    \n                  </th>\n                </tr>\n              \n            </table>\n          </td>\n        </tr>\n        \n\n        \n        \n        <tr>\n          <td colspan=\"2\">\n            <table>\n              <tr><th><a id=\"cql-content\"><b>Content: </b></a> text/cql</th></tr>\n              <tr><td><pre><code class=\"language-cql\">library NHSNAcuteCareHospitalMonthlyInitialPopulation version '1.0.0-dev'\n\nusing FHIR version '4.0.1'\n\ninclude FHIRHelpers version '4.0.2' called FHIRHelpers\ninclude NHSNHelpers version '0.0.002' called NHSNHelpers\ninclude SharedResourceCreation version '0.1.010' called SharedResource\n\ncodesystem &quot;ActCode&quot;: 'http://terminology.hl7.org/CodeSystem/v3-ActCode'\ncodesystem &quot;Observation Category&quot;: 'http://terminology.hl7.org/CodeSystem/observation-category'\ncodesystem &quot;LOINC&quot;: 'http://loinc.org' \ncodesystem &quot;V2-0074&quot;: 'http://terminology.hl7.org/CodeSystem/v2-0074'\ncodesystem &quot;Condition Category&quot;: 'http://terminology.hl7.org/CodeSystem/condition-category'\ncodesystem &quot;US Core Condition Category&quot;: 'http://hl7.org/fhir/us/core/CodeSystem/condition-category'\ncodesystem &quot;Condition Clinical Status&quot;: 'http://terminology.hl7.org/CodeSystem/condition-clinical'\ncodesystem &quot;SNOMEDCT&quot;: 'http://snomed.info/sct'\ncodesystem &quot;MedicationRequest Category&quot;: 'http://terminology.hl7.org/CodeSystem/medicationrequest-category'\n\nvalueset &quot;Inpatient, Emergency, and Observation Locations&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.265'\nvalueset &quot;Emergency Department Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292'\nvalueset &quot;Encounter Inpatient&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307'\nvalueset &quot;Observation Services&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143'\nvalueset &quot;NHSN Inpatient Encounter Class Codes&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274'\n\n//code for Observation Category\ncode &quot;laboratory&quot;: 'laboratory' from &quot;Observation Category&quot; display 'Laboratory'\ncode &quot;social-history&quot;: 'social-history' from &quot;Observation Category&quot; display 'Social History'\ncode &quot;vital-signs&quot;: 'vital-signs' from &quot;Observation Category&quot; display 'Vital Signs'\ncode &quot;imaging&quot;: 'imaging' from &quot;Observation Category&quot; display 'Imaging'\ncode &quot;procedure&quot;: 'procedure' from &quot;Observation Category&quot; display 'Procedure'\ncode &quot;survey&quot;: 'survey' from &quot;Observation Category&quot; display 'Survey'\n\n//code for Condition category\n//code &quot;problem-list-item&quot;: 'problem-list-item' from &quot;Condition Category&quot; display 'Problem List Item'\ncode &quot;encounter-diagnosis&quot;: 'encounter-diagnosis' from &quot;Condition Category&quot; display 'Encounter Diagnosis'\n//code &quot;health-concern&quot;: 'health-concern' from &quot;US Core Condition Category&quot; display 'Health Concern'\n\n//code for Diagnostic Report Category\ncode &quot;LAB&quot;: 'LAB' from &quot;V2-0074&quot; display 'Laboratory'\ncode &quot;Radiology&quot;: 'LP29684-5' from &quot;LOINC&quot; display 'Radiology'\ncode &quot;Pathology&quot;: 'LP7839-6' from &quot;LOINC&quot; display 'Pathology'\ncode &quot;Cardiology&quot;: 'LP29708-2' from &quot;LOINC&quot; display 'Cardiology'\n\n//code for Emergency Encounter Class\ncode &quot;emergency&quot;: 'EMER' from &quot;ActCode&quot; display 'emergency'\ncode &quot;observation encounter&quot;: 'OBSENC' from &quot;ActCode&quot; display 'observation encounter'\n\n//code for Condition clinicalStatus\ncode &quot;active&quot;: 'active' from &quot;Condition Clinical Status&quot; display 'active'\n\n//code for Procedure category\ncode &quot;Surgical procedure&quot;: '3877713003' from &quot;SNOMEDCT&quot; display 'Surgical procedure'\ncode &quot;Diagnostic procedure&quot;: '103693007' from &quot;SNOMEDCT&quot; display 'Diagnostic procedure'\n\n//code for MedicationRequest category\ncode &quot;inpatient&quot;: 'inpatient' from &quot;MedicationRequest Category&quot; display 'Inpatient'\ncode &quot;outpatient&quot;: 'outpatient' from &quot;MedicationRequest Category&quot; display 'Outpatient'\n\n//code for ServiceRequest category (also uses Surgical procedure from Procedure categories)\ncode &quot;Laboratory procedure&quot;: '108252007' from &quot;SNOMEDCT&quot; display 'Laboratory procedure'\ncode &quot;Imaging&quot;: '363679005' from &quot;SNOMEDCT&quot; display 'Imaging'\n\nparameter &quot;Measurement Period&quot; \n    default Interval[@2022-01-01T00:00:00.0, @2022-01-31T23:59:59.0)\n\ncontext Patient \n\ndefine &quot;Qualifying Encounters During Measurement Period&quot;:\n ( [Encounter: &quot;Encounter Inpatient&quot;]\n  union [Encounter: &quot;Emergency Department Visit&quot;]\n  union [Encounter: &quot;Observation Services&quot;]\n  union [Encounter: class in &quot;NHSN Inpatient Encounter Class Codes&quot;]\n  union [Encounter: class ~ &quot;emergency&quot;]\n  union [Encounter: class ~ &quot;observation encounter&quot;]) QualifyingEncounters\n  where QualifyingEncounters.status in {'in-progress', 'finished', 'triaged', 'onleave', 'entered-in-error'}\n    and QualifyingEncounters.period overlaps &quot;Measurement Period&quot; \n\ndefine &quot;Encounters with Patient Hospital Locations&quot;:\n  &quot;Encounters&quot; Encounters\n  where exists(\n    Encounters.location EncounterLocation\n    where NHSNHelpers.GetLocation(EncounterLocation.location).type in &quot;Inpatient, Emergency, and Observation Locations&quot;\n      and EncounterLocation.period overlaps Encounters.period\n  )\n  and Encounters.status in {'in-progress', 'finished', 'triaged', 'onleave', 'entered-in-error'}\n  and Encounters.period overlaps &quot;Measurement Period&quot;\n\ndefine &quot;Initial Population&quot;:\n  &quot;Qualifying Encounters During Measurement Period&quot;\n  union &quot;Encounters with Patient Hospital Locations&quot;\n\ndefine &quot;Encounters&quot;:\n  [Encounter]\n\ndefine &quot;Conditions&quot;:\n  [Condition]\n\ndefine &quot;DiagnosticReports&quot;:\n  [DiagnosticReport]\n\ndefine &quot;Observations&quot;:\n  [Observation]\n\ndefine &quot;Get Locations from IP Encounters in Measurement Period&quot;:\n  flatten(&quot;Initial Population&quot; IP\n  let locationElements: IP.location\n  return\n    locationElements LE\n    let locationReference: LE.location\n    return NHSNHelpers.GetLocation(locationReference))\n\n//============================================================================\n//Supplemental Data Element\n//When FHIR.canonical value is present, US Core 3.1.1 profiles are used\n//When FHIR.canonical value is not present, FHIR Base profiles are used\n//============================================================================\ndefine &quot;SDE Condition&quot;:\n  &quot;Conditions&quot; Conditions \n    where exists(\n    &quot;Initial Population&quot; IP\n//Check for Problem List Conditions that were recorded before or during IP \n     where \n      (exists(IP.diagnosis Diagnoses\n          where GetCondition(Diagnoses.condition).id = Conditions.id\n        )\n        or GetEncounter(Conditions.encounter).id = IP.id\n      )\n      and exists (Conditions.category categories\n        where categories ~ &quot;encounter-diagnosis&quot;\n    )\n  )\n  return ConditionResource(Conditions,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-condition'}},\n   {&quot;encounter-diagnosis&quot;})\n\ndefine &quot;SDE Device&quot;:\n  [Device] Devices \n  where exists(&quot;Initial Population&quot;)\n  return DeviceResource(Devices,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-device'}})\n\n//This block collects all DiagnosticReport resources while also marking Lab and Note DiagnosticReports with the appropriate profiles\n//#Start DiagnosticReport block\ndefine &quot;SDE DiagnosticReport Lab&quot;:\n  &quot;DiagnosticReports&quot; DiagnosticReports\n  where (exists(DiagnosticReports.category Category where Category ~ &quot;LAB&quot;)\n    and exists(\n      &quot;Initial Population&quot; IP\n      where NHSNHelpers.&quot;Normalize Interval&quot;(DiagnosticReports.effective) overlaps IP.period))\n  return DiagnosticReportLabResource(DiagnosticReports,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-diagnosticreport-lab'}},\n  {&quot;LAB&quot;, &quot;Radiology&quot;, &quot;Pathology&quot;, &quot;Cardiology&quot;})\n \ndefine &quot;SDE DiagnosticReport Note&quot;:\n  &quot;DiagnosticReports&quot; DiagnosticReports\n  where ((exists(DiagnosticReports.category Category where Category ~ &quot;Radiology&quot;))\n    or exists((DiagnosticReports.category Category where Category ~ &quot;Pathology&quot;))\n    or exists((DiagnosticReports.category Category where Category ~ &quot;Cardiology&quot;)))\n    and exists(\n      &quot;Initial Population&quot; IP\n      where NHSNHelpers.&quot;Normalize Interval&quot;(DiagnosticReports.effective) overlaps IP.period)\n  return DiagnosticReportResource(DiagnosticReports,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-diagnosticreport-note'}})\n\ndefine &quot;SDE DiagnosticReport Others&quot;:\n  [DiagnosticReport] DiagnosticReports\n  where not ((exists(DiagnosticReports.category Category where Category ~ &quot;Radiology&quot;))\n    or exists((DiagnosticReports.category Category where Category ~ &quot;Pathology&quot;))\n    or exists((DiagnosticReports.category Category where Category ~ &quot;Cardiology&quot;))\n    or exists(DiagnosticReports.category Category where Category ~ &quot;LAB&quot;))\n    and exists(&quot;Initial Population&quot; IP\n      where NHSNHelpers.&quot;Normalize Interval&quot;(DiagnosticReports.effective) overlaps IP.period)\n  return DiagnosticReportResource(DiagnosticReports,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-diagnosticreport'}})\n//#End DiagnosticReport block\n\ndefine &quot;SDE Encounter&quot;: \n  &quot;Encounters&quot; Encounters\n  where not CheckIP(Encounters)\n  and exists(\n    &quot;Initial Population&quot; IP\n    where Encounters.period overlaps IP.period)\n  return SharedResource.EncounterResource(Encounters,\n  {FHIR.canonical{value: 'http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter'}})\n\ndefine &quot;SDE IP Encounters&quot;:\n  &quot;Initial Population&quot; IP\n  return SharedResource.EncounterResource(IP, \n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-encounter'}})\n\ndefine &quot;SDE Location&quot;:\n  &quot;Get Locations from IP Encounters in Measurement Period&quot; Locations\n  where exists(&quot;Initial Population&quot;)\n  and Locations is not null\n  return SharedResource.LocationResource(Locations,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-location'}})\n \ndefine &quot;SDE Medication Administration&quot;:\n  [MedicationAdministration] MedicationAdministrations \n  where exists(\n    &quot;Initial Population&quot; IP\n    where NHSNHelpers.&quot;Normalize Interval&quot;(MedicationAdministrations.effective) overlaps IP.period)\n  return MedicationAdministrationResource(MedicationAdministrations,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-medicationadministration'}},\n  {&quot;inpatient&quot;, &quot;outpatient&quot;})\n \ndefine &quot;SDE Medication Request&quot;:\n  [MedicationRequest] MedicationRequests \n  where exists(\n    &quot;Initial Population&quot; IP\n    where MedicationRequests.authoredOn during IP.period)\n  return MedicationRequestResource(MedicationRequests,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-medicationrequest'}},\n  {&quot;inpatient&quot;, &quot;outpatient&quot;})\n\ndefine &quot;SDE Medication&quot;:\n  (&quot;SDE Medication Request&quot;\n  union &quot;SDE Medication Administration&quot;) MedReqOrAdmin\n  where MedReqOrAdmin.medication is FHIR.Reference\n  and exists(&quot;Initial Population&quot;) //No longer need to check for timing here because it's checked in SDE Medication Request/Administriation\n  return SharedResource.MedicationResource(GetMedicationFrom(MedReqOrAdmin.medication),\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-medication'}})\n\ndefine &quot;SDE Observation Lab Category&quot;:\n  &quot;Observations&quot; Observations \n  where (exists(Observations.category Category where Category ~ &quot;laboratory&quot;))\n    and exists(\n      &quot;Initial Population&quot; IP\n      where NHSNHelpers.&quot;Normalize Interval&quot;(Observations.effective) overlaps IP.period)\n  return ObservationLabResource(Observations,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-observation-lab'}},\n  {&quot;imaging&quot;, &quot;procedure&quot;, &quot;vital-signs&quot;, &quot;laboratory&quot;})\n\n//Vital Signs Observation has its own profile in FHIR Base\ndefine &quot;SDE Observation Vital Signs Category&quot;:\n  &quot;Observations&quot; Observations \n  where (exists(Observations.category Category where Category ~ &quot;vital-signs&quot;))\n    and exists(\n      &quot;Initial Population&quot; IP\n      where NHSNHelpers.&quot;Normalize Interval&quot;(Observations.effective) overlaps IP.period)\n  return ObservationVitalSignsResource(Observations,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-observation-vitals'}},\n  {&quot;imaging&quot;, &quot;procedure&quot;, &quot;vital-signs&quot;, &quot;laboratory&quot;})\n\n//Defaulting to base FHIR profile as there are no individual profiles in US Core 3.1.1 that cover these Observation categories\ndefine &quot;SDE Observation Category&quot;:\n  &quot;Observations&quot; Observations \n  where (/*(exists(Observations.category Category where Category ~ &quot;social-history&quot;))\n    or (exists(Observations.category Category where Category ~ &quot;survey&quot;))\n    or */(exists(Observations.category Category where Category ~ &quot;imaging&quot;))\n    or (exists(Observations.category Category where Category ~ &quot;procedure&quot;)))\n    and exists(\n      &quot;Initial Population&quot; IP\n      where NHSNHelpers.&quot;Normalize Interval&quot;(Observations.effective) overlaps IP.period)\n  return ObservationResource(Observations,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-observation'}},\n  {&quot;imaging&quot;, &quot;procedure&quot;, &quot;vital-signs&quot;, &quot;laboratory&quot;})\n\ndefine &quot;SDE Coverage&quot;: \n\t[Coverage] Coverages\n  where exists(\n    &quot;Initial Population&quot; IP\n    where Coverages.period overlaps IP.period)\n  return SharedResource.CoverageResource(Coverages,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-coverage'}})\n\ndefine &quot;SDE Procedure&quot;:\n  [Procedure] Procedures \n  where exists(\n    &quot;Initial Population&quot; IP\n    where NHSNHelpers.&quot;Normalize Interval&quot;(Procedures.performed) overlaps IP.period)\n     return ProcedureResource(Procedures,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-procedure'}},\n  {&quot;Surgical procedure&quot;, &quot;Diagnostic procedure&quot;})\n\ndefine &quot;SDE Specimen&quot;:\n  [Specimen] Specimens\n  where exists(\n    &quot;Initial Population&quot; IP\n    where NHSNHelpers.&quot;Normalize Interval&quot;(Specimens.collection.collected) overlaps IP.period\n  )\n  return SharedResource.SpecimenResource(Specimens,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-specimen'}})\n\ndefine &quot;SDE Service Request&quot;:\n  [ServiceRequest] ServiceRequests\n  where exists(&quot;Initial Population&quot; IP\n    where ServiceRequests.authoredOn during IP.period)\n  return ServiceRequestResource(ServiceRequests,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/ach-monthly-servicerequest'}},\n  {&quot;Laboratory procedure&quot;, &quot;Surgical procedure&quot;, &quot;Imaging&quot;})\n\ndefine &quot;SDE Minimal Patient&quot;:\n  Patient p\n  return SharedResource.PatientResource(p,\n  {FHIR.canonical{value: 'http://www.cdc.gov/nhsn/fhirportal/dqm/ig/StructureDefinition/cross-measure-patient'}})\n\n//\n//Functions\n//\ndefine function &quot;CheckIP&quot;(encounter Encounter):\n  exists(&quot;Initial Population&quot; IP\n  where encounter.id = IP.id)\n\ndefine function &quot;GetMedicationFrom&quot;(choice Choice&lt;FHIR.CodeableConcept, FHIR.Reference&gt;):\n  case\n    when choice is FHIR.Reference then\n      GetMedication(choice as FHIR.Reference)\n    else\n      null\n  end\n\ndefine function &quot;GetMedication&quot;(reference Reference):\n  singleton from (\n    [Medication] Medications\n    where Medications.id = NHSNHelpers.GetId(reference.reference)\n  )\n\ndefine function &quot;GetCondition&quot;(reference Reference):\n  singleton from (\n    &quot;Conditions&quot; Conditions\n    where Conditions.id = NHSNHelpers.GetId(reference.reference)\n  )\n\ndefine function &quot;GetEncounter&quot;(reference Reference):\n  singleton from (\n    &quot;Encounters&quot; Encounters\n    where Encounters.id = NHSNHelpers.GetId(reference.reference)\n  )\n\ndefine function RemoveUnaccepted(codes List&lt;FHIR.CodeableConcept&gt;, accepted List&lt;System.Code&gt;):\n  codes c\n  where exists(\n    accepted a\n    where c ~ a\n  )\n\ndefine function FilterCodeableConcepts(codes List&lt;FHIR.CodeableConcept&gt;, accepted List&lt;System.Code&gt;):\n  if Count(accepted) &gt; 0\n    then RemoveUnaccepted(codes, accepted)\n  else codes    \n\n//\n//Measure Specific Resource Creation Functions\n//\n\ndefine function ConditionResource(condition Condition, profileURLs List&lt;FHIR.canonical&gt;, acceptedCategories List&lt;System.Code&gt;):\n  condition c\n  return Condition{\n    id: FHIR.id {value: 'LCR-' + c.id},\n    meta: SharedResource.MetaElement(c, profileURLs),\n    extension: c.extension,\n    clinicalStatus: c.clinicalStatus,\n    verificationStatus: c.verificationStatus,\n    category: FilterCodeableConcepts(c.category, acceptedCategories),\n    code: c.code,\n    subject: c.subject,\n    encounter: c.encounter,\n    onset: c.onset,\n    abatement: c.abatement,\n    recordedDate: c.recordedDate\n  }\n\ndefine function DeviceResource(device Device, profileURLs List&lt;FHIR.canonical&gt;):\n  device d\n  return Device{\n    id: FHIR.id{value: 'LCR-' + d.id},\n    meta: SharedResource.MetaElement(d, profileURLs),\n    extension: d.extension,\n    status: d.status,\n    expirationDate: d.expirationDate,\n    lotNumber: d.lotNumber,\n    serialNumber: d.serialNumber,\n    modelNumber: d.modelNumber,\n    partNumber: d.partNumber,\n    type: d.type,\n    patient: d.patient,\n    parent: d.parent\n  }\n\ndefine function DiagnosticReportCoding(coding List&lt;Coding&gt;):\n  coding c\n  return Coding{\n    system: c.system,\n    version: c.version,\n    code: c.code,\n    display: c.display\n  }\n\ndefine function DiagnosticReportCategory(category List&lt;CodeableConcept&gt;):\n  category c\n  return CodeableConcept{\n    coding: DiagnosticReportCoding(c.coding)\n  }\n\ndefine function DiagnosticReportLabResource(diagnosticReport DiagnosticReport, profileURLs List&lt;FHIR.canonical&gt;, acceptedCategories List&lt;System.Code&gt;):\n  diagnosticReport d\n  return DiagnosticReport{\n    id: FHIR.id{value: 'LCR-' + d.id},\n    meta: SharedResource.MetaElement(d, profileURLs),\n    extension: d.extension,\n    basedOn: d.basedOn,\n    status: d.status,\n    category: FilterCodeableConcepts(DiagnosticReportCategory(d.category), acceptedCategories),\n    code: d.code,\n    subject: d.subject,\n    encounter: d.encounter,\n    effective: d.effective,\n    issued: d.issued,\n    specimen: d.specimen,\n    result: d.result,\n    conclusion: d.conclusion,\n    conclusionCode: d.conclusionCode\n  }\n\ndefine function DiagnosticReportResource(diagnosticReport DiagnosticReport, profileURLs List&lt;FHIR.canonical&gt;):\n  diagnosticReport d\n  return DiagnosticReport{\n    id: FHIR.id{value: 'LCR-' + d.id},\n    meta: SharedResource.MetaElement(d, profileURLs),\n    extension: d.extension,\n    basedOn: d.basedOn,\n    status: d.status,\n    category: d.category,\n    code: d.code,\n    subject: d.subject,\n    encounter: d.encounter,\n    effective: d.effective,\n    issued: d.issued,\n    performer: d.performer,\n    resultsInterpreter: d.resultsInterpreter,\n    specimen: d.specimen,\n    result: d.result,\n    conclusion: d.conclusion,\n    conclusionCode: d.conclusionCode\n  }\n\ndefine function EncounterHospitalization(hospitalization FHIR.Encounter.Hospitalization):\n  hospitalization h\n  return FHIR.Encounter.Hospitalization{\n    origin: h.origin,\n    admitSource: h.admitSource,\n    reAdmission: h.reAdmission,\n    dietPreference: h.dietPreference,\n    dischargeDisposition: h.dischargeDisposition\n  }\n\ndefine function EncounterResource(encounter Encounter, profileURLs List&lt;FHIR.canonical&gt;):\n  encounter e\n  return Encounter{\n    id: FHIR.id{value: 'LCR-' + e.id},\n    meta: SharedResource.MetaElement(e, profileURLs),\n    extension: e.extension,\n    identifier: SharedResource.EncounterIdentifier(e.identifier),\n    status: e.status,\n    statusHistory: SharedResource.EncounterStatusHistory(e.statusHistory),\n    class: e.class,\n    classHistory: SharedResource.EncounterClassHistory(e.classHistory),\n    type: e.type,\n    subject: e.subject,\n    period: e.period,\n    reasonCode: e.reasonCode,\n    diagnosis: SharedResource.EncounterDiagnosis(e.diagnosis),\n    hospitalization: EncounterHospitalization(e.hospitalization),\n    location: SharedResource.EncounterLocation(e.location),\n    partOf: e.partOf\n  }\n\ndefine function LocationResource(location Location, profileURLs List&lt;FHIR.canonical&gt;):\n  location l\n  return Location{\n    id: FHIR.id {value: 'LCR-' + l.id},\n    meta: SharedResource.MetaElement(l, profileURLs),\n    extension: l.extension,\n    status: l.status,\n    name: l.name,\n    alias: l.alias,\n    type: l.type,\n    physicalType: l.physicalType,\n    managingOrganization: l.managingOrganization,\n    partOf: l.partOf\n  }\n\ndefine function MedicationRequestResource(medicationRequest MedicationRequest, profileURLs List&lt;FHIR.canonical&gt;, acceptedCategories List&lt;System.Code&gt;):\n  medicationRequest m\n  return MedicationRequest{\n    id: FHIR.id {value: 'LCR-' + m.id},\n    meta: SharedResource.MetaElement(medicationRequest, profileURLs),\n    extension: m.extension,\n    status: m.status,\n    statusReason: m.statusReason,\n    intent: m.intent,\n    category: FilterCodeableConcepts(m.category, acceptedCategories),\n    priority: m.priority,\n    doNotPerform: m.doNotPerform,\n    reported: m.reported,\n    medication: m.medication,\n    subject: m.subject,\n    encounter: m.encounter,\n    authoredOn: m.authoredOn,\n    requester: m.requester,\n    recorder: m.recorder,\n    reasonCode: m.reasonCode,\n    reasonReference: m.reasonReference,\n    instantiatesCanonical: m.instantiatesCanonical,\n    instantiatesUri: m.instantiatesUri,\n    courseOfTherapyType: m.courseOfTherapyType,\n    dosageInstruction: SharedResource.MedicationRequestDosageInstruction(m.dosageInstruction)\n  }\n\n  define function MedicationAdministrationResource(medicationAdministration MedicationAdministration, profileURLs List&lt;FHIR.canonical&gt;, acceptedCategories List&lt;System.Code&gt;):\n  medicationAdministration m\n  return MedicationAdministration{\n    id: FHIR.id {value: 'LCR-' + m.id},\n    meta: SharedResource.MetaElement(m, profileURLs),\n    extension: m.extension,\n    instantiates: m.instantiates,\n    partOf: m.partOf,\n    status: m.status,\n    statusReason: m.statusReason,\n    category: FilterCodeableConcepts({m.category}, acceptedCategories)[0],\n    medication: m.medication,\n    subject: m.subject,\n    context: m.context,\n    supportingInformation: m.supportingInformation,\n    effective: m.effective,\n    performer: SharedResource.MedicationAdministrationPerformer(m.performer),\n    reasonCode: m.reasonCode,\n    reasonReference: m.reasonReference,\n    request: m.request,\n    device: m.device,\n    note: m.note,\n    dosage: SharedResource.MedicationAdministrationDosage(m.dosage),\n    eventHistory: m.eventHistory\n  }\n\ndefine function ObservationLabReferenceRange(referenceRange List&lt;FHIR.Observation.ReferenceRange&gt;):\n  referenceRange rR\n  return FHIR.Observation.ReferenceRange{\n    low: rR.low,\n    high: rR.high,\n    type: rR.type,\n    appliesTo: rR.appliesTo,\n    age: rR.age\n  }\n\ndefine function ObservationLabResource(observation Observation, profileURLs List&lt;FHIR.canonical&gt;, acceptedCategories List&lt;System.Code&gt;):\n  observation o\n  return Observation{\n    id: FHIR.id {value: 'LCR-' + o.id},\n    meta: SharedResource.MetaElement(o, profileURLs),\n    extension: o.extension,\n    partOf: o.partOf,\n    status: o.status,\n    category: FilterCodeableConcepts(SharedResource.ObservationLabCategory(o.category), acceptedCategories),\n    code: o.code,\n    subject: o.subject,\n    encounter: o.encounter,\n    effective: o.effective,\n    issued: o.issued,\n    value: o.value,\n    dataAbsentReason: o.dataAbsentReason,\n    interpretation: o.interpretation,\n    bodySite: o.bodySite,\n    method: o.method,\n    specimen: o.specimen,\n    referenceRange: ObservationLabReferenceRange(o.referenceRange),\n    hasMember: o.hasMember,\n    derivedFrom: o.derivedFrom,\n    component: SharedResource.ObservationComponent(o.component)\n  }\n\ndefine function ObservationReferenceRange(referenceRange List&lt;FHIR.Observation.ReferenceRange&gt;):\n  referenceRange rR\n  return FHIR.Observation.ReferenceRange{\n    low: rR.low,\n    high: rR.high,\n    type: rR.type,\n    appliesTo: rR.appliesTo,\n    age: rR.age\n  }\n\ndefine function ObservationResource(observation Observation, profileURLs List&lt;FHIR.canonical&gt;, acceptedCategories List&lt;System.Code&gt;):\n  observation o\n  return Observation{\n    id: FHIR.id {value: 'LCR-' + o.id},\n    meta: SharedResource.MetaElement(o, profileURLs),\n    extension: o.extension,\n    partOf: o.partOf,\n    status: o.status,\n    category: FilterCodeableConcepts(o.category, acceptedCategories),\n    code: o.code,\n    subject: o.subject,\n    encounter: o.encounter,\n    effective: o.effective,\n    issued: o.issued,\n    value: o.value,\n    dataAbsentReason: o.dataAbsentReason,\n    interpretation: o.interpretation,\n    bodySite: o.bodySite,\n    method: o.method,\n    specimen: o.specimen,\n    referenceRange: ObservationReferenceRange(o.referenceRange),\n    hasMember: o.hasMember,\n    derivedFrom: o.derivedFrom,\n    component: SharedResource.ObservationComponent(o.component)\n  }\n\ndefine function ObservationVitalSignsCoding(coding List&lt;Coding&gt;):\n  coding c\n  return Coding{\n    system: c.system,\n    version: c.version,\n    code: c.code,\n    display: c.display,\n    userSelected: c.userSelected\n  }\n\ndefine function ObservationVitalSignsCategory(category List&lt;CodeableConcept&gt;):\n  category c\n  return CodeableConcept{\n    coding: ObservationVitalSignsCoding(c.coding),\n    text: c.text\n  }\n\ndefine function ObservationVitalSignsComponent(component List&lt;FHIR.Observation.Component&gt;):\n  component c\n  return FHIR.Observation.Component{\n    code: c.code,\n    value: c.value,\n    dataAbsentReason: c.dataAbsentReason,\n    interpretation: c.interpretation,\n    referenceRange: SharedResource.ObservationReferenceRange(c.referenceRange)\n  }\n\ndefine function ObservationVitalSignsResource(observation Observation, profileURLs List&lt;FHIR.canonical&gt;, acceptedCategories List&lt;System.Code&gt;):\n  observation o\n  return Observation{\n    id: FHIR.id {value: 'LCR-' + o.id},\n    meta: SharedResource.MetaElement(o, profileURLs),\n    extension: o.extension,\n    partOf: o.partOf,\n    status: o.status,\n    category: FilterCodeableConcepts(ObservationVitalSignsCategory(o.category), acceptedCategories),\n    code: o.code,\n    subject: o.subject,\n    focus: o.focus,\n    encounter: o.encounter,\n    effective: o.effective,\n    issued: o.issued,\n    performer: o.performer,\n    value: o.value,\n    dataAbsentReason: o.dataAbsentReason,\n    interpretation: o.interpretation,\n    note: o.note,\n    bodySite: o.bodySite,\n    method: o.method,\n    specimen: o.specimen,\n    device: o.device,\n    referenceRange: SharedResource.ObservationReferenceRange(o.referenceRange),\n    hasMember: o.hasMember,\n    derivedFrom: o.derivedFrom,\n    component: ObservationVitalSignsComponent(o.component)\n  }\n\n\ndefine function ProcedureResource(procedure Procedure, profileURLs List&lt;FHIR.canonical&gt;, acceptedCategories List&lt;System.Code&gt;):\n  procedure p\n  return Procedure{\n    id: FHIR.id {value: 'LCR-' + p.id},\n    meta: SharedResource.MetaElement(p, profileURLs),\n    extension: p.extension,\n    basedOn: p.basedOn,\n    partOf: p.partOf,\n    status: p.status,\n    category: FilterCodeableConcepts({p.category}, acceptedCategories)[0],\n    code: p.code,\n    subject: p.subject,\n    encounter: p.encounter,\n    performed: p.performed,\n    location: p.location,\n    reasonCode: p.reasonCode,\n    reasonReference: p.reasonReference,\n    bodySite: p.bodySite\n  }\n\n  define function ServiceRequestResource(serviceRequest ServiceRequest, profileURLs List&lt;FHIR.canonical&gt;, acceptedCategories List&lt;System.Code&gt;):\n  serviceRequest sR\n  return ServiceRequest{\n    id: FHIR.id {value: 'LCR-' + sR.id},\n    meta: SharedResource.MetaElement(sR, profileURLs),\n    extension: sR.extension,\n    basedOn: sR.basedOn,\n    status: sR.status,\n    intent: sR.intent,\n    category: FilterCodeableConcepts(sR.category, acceptedCategories),\n    priority: sR.priority,\n    doNotPerform: sR.doNotPerform,\n    code: sR.code,\n    quantity: sR.quantity,\n    subject: sR.subject,\n    encounter: sR.encounter,\n    occurrence: sR.occurrence,\n    asNeeded: sR.asNeeded,\n    authoredOn: sR.authoredOn,\n    requester: sR.requester,\n    specimen: sR.specimen\n  }\n\n  define function SpecimenCollection(collection FHIR.Specimen.Collection):\n  collection c\n  return FHIR.Specimen.Collection{\n    collector: c.collector,\n    collected: c.collected,\n    quantity: c.quantity,\n    bodySite: c.bodySite\n  }\n\n  define function SpecimenResource(specimen Specimen, profileURLs List&lt;FHIR.canonical&gt;):\n  specimen s\n  return Specimen{\n    id: FHIR.id {value: 'LCR-' + s.id},\n    meta: SharedResource.MetaElement(s, profileURLs),\n    extension: s.extension,\n    identifier: s.identifier,\n    accessionIdentifier: s.accessionIdentifier,\n    status: s.status,\n    type: s.type,\n    subject: s.subject,\n    parent: s.parent,\n    request: s.request,\n    collection: SpecimenCollection(s.collection),\n    note: s.note\n  }</code></pre></td></tr>\n            </table>\n          </td>\n        </tr>\n        \n        \n        \n    </table>\n</div>\n</div>"
  },
  "contained" : [
    {
      "resourceType" : "Parameters",
      "id" : "options",
      "parameter" : [
        {
          "name" : "translatorVersion",
          "valueString" : "3.11.0"
        },
        {
          "name" : "option",
          "valueString" : "EnableDateRangeOptimization"
        },
        {
          "name" : "option",
          "valueString" : "EnableAnnotations"
        },
        {
          "name" : "option",
          "valueString" : "EnableLocators"
        },
        {
          "name" : "option",
          "valueString" : "DisableListDemotion"
        },
        {
          "name" : "option",
          "valueString" : "DisableListPromotion"
        },
        {
          "name" : "analyzeDataRequirements",
          "valueBoolean" : false
        },
        {
          "name" : "collapseDataRequirements",
          "valueBoolean" : true
        },
        {
          "name" : "compatibilityLevel",
          "valueString" : "1.5"
        },
        {
          "name" : "enableCqlOnly",
          "valueBoolean" : false
        },
        {
          "name" : "errorLevel",
          "valueString" : "Info"
        },
        {
          "name" : "signatureLevel",
          "valueString" : "Overloads"
        },
        {
          "name" : "validateUnits",
          "valueBoolean" : true
        },
        {
          "name" : "verifyOnly",
          "valueBoolean" : false
        }
      ]
    }
  ],
  "extension" : [
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/cqf-cqlOptions",
      "valueReference" : {
        "reference" : "#options"
      }
    },
    {
      "url" : "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem",
      "valueReference" : {
        🔗 "reference" : "Device/cqf-tooling"
      }
    }
  ],
  "url" : "http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/NHSNAcuteCareHospitalMonthlyInitialPopulation",
  "version" : "1.0.0",
  "name" : "NHSNAcuteCareHospitalMonthlyInitialPopulation",
  "status" : "draft",
  "type" : {
    "coding" : [
      {
        "system" : "http://terminology.hl7.org/CodeSystem/library-type",
        "code" : "logic-library"
      }
    ]
  },
  "date" : "2025-09-28T15:20:22+00:00",
  "publisher" : "CDC National Healthcare Safety Network (NHSN)",
  "contact" : [
    {
      "name" : "CDC National Healthcare Safety Network (NHSN)",
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://www.cdc.gov/nhsn"
        },
        {
          "system" : "email",
          "value" : "nhsn@cdc.gov"
        }
      ]
    }
  ],
  "jurisdiction" : [
    {
      "coding" : [
        {
          "system" : "urn:iso:std:iso:3166",
          "code" : "US"
        }
      ]
    }
  ],
  "relatedArtifact" : [
    {
      "type" : "depends-on",
      "display" : "FHIR model information",
      "resource" : "http://fhir.org/guides/cqf/common/Library/FHIR-ModelInfo|4.0.1"
    },
    {
      "type" : "depends-on",
      "display" : "Library FHIRHelpers",
      "resource" : "http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/FHIRHelpers|4.0.2"
    },
    {
      "type" : "depends-on",
      "display" : "Library NHSNHelpers",
      "resource" : "http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/NHSNHelpers|0.0.002"
    },
    {
      "type" : "depends-on",
      "display" : "Library SharedResource",
      "resource" : "http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library/SharedResourceCreation|0.1.010"
    },
    {
      "type" : "depends-on",
      "display" : "Code system ActCode",
      "resource" : "http://terminology.hl7.org/CodeSystem/v3-ActCode|9.0.0"
    },
    {
      "type" : "depends-on",
      "display" : "Code system Observation Category",
      "resource" : "http://terminology.hl7.org/CodeSystem/observation-category|1.0.1"
    },
    {
      "type" : "depends-on",
      "display" : "Code system LOINC",
      "resource" : "http://loinc.org"
    },
    {
      "type" : "depends-on",
      "display" : "Code system V2-0074",
      "resource" : "http://terminology.hl7.org/CodeSystem/v2-0074|2.5.0"
    },
    {
      "type" : "depends-on",
      "display" : "Code system Condition Category",
      "resource" : "http://terminology.hl7.org/CodeSystem/condition-category|1.0.1"
    },
    {
      "type" : "depends-on",
      "display" : "Code system US Core Condition Category",
      "resource" : "http://hl7.org/fhir/us/core/CodeSystem/condition-category|6.1.0"
    },
    {
      "type" : "depends-on",
      "display" : "Code system Condition Clinical Status",
      "resource" : "http://terminology.hl7.org/CodeSystem/condition-clinical|3.0.0"
    },
    {
      "type" : "depends-on",
      "display" : "Code system SNOMEDCT",
      "resource" : "http://snomed.info/sct"
    },
    {
      "type" : "depends-on",
      "display" : "Code system MedicationRequest Category",
      "resource" : "http://terminology.hl7.org/CodeSystem/medicationrequest-category|1.0.0"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Inpatient, Emergency, and Observation Locations",
      "resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.265"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Emergency Department Visit",
      "resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292|20210611"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Encounter Inpatient",
      "resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307"
    },
    {
      "type" : "depends-on",
      "display" : "Value set Observation Services",
      "resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143|20210611"
    },
    {
      "type" : "depends-on",
      "display" : "Value set NHSN Inpatient Encounter Class Codes",
      "resource" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274"
    }
  ],
  "parameter" : [
    {
      "name" : "Measurement Period",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "type" : "Period"
    },
    {
      "name" : "Patient",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "Patient"
    },
    {
      "name" : "Qualifying Encounters During Measurement Period",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Encounter"
    },
    {
      "name" : "Encounters",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Encounter"
    },
    {
      "name" : "Encounters with Patient Hospital Locations",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Encounter"
    },
    {
      "name" : "Initial Population",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Encounter"
    },
    {
      "name" : "Conditions",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Condition"
    },
    {
      "name" : "DiagnosticReports",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "DiagnosticReport"
    },
    {
      "name" : "Observations",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Observation"
    },
    {
      "name" : "Get Locations from IP Encounters in Measurement Period",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Location"
    },
    {
      "name" : "SDE Condition",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Condition"
    },
    {
      "name" : "SDE Device",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Device"
    },
    {
      "name" : "SDE DiagnosticReport Lab",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "DiagnosticReport"
    },
    {
      "name" : "SDE DiagnosticReport Note",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "DiagnosticReport"
    },
    {
      "name" : "SDE DiagnosticReport Others",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "DiagnosticReport"
    },
    {
      "name" : "SDE Encounter",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Encounter"
    },
    {
      "name" : "SDE IP Encounters",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Encounter"
    },
    {
      "name" : "SDE Location",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Location"
    },
    {
      "name" : "SDE Medication Administration",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "MedicationAdministration"
    },
    {
      "name" : "SDE Medication Request",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "MedicationRequest"
    },
    {
      "name" : "SDE Medication",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Medication"
    },
    {
      "name" : "SDE Observation Lab Category",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Observation"
    },
    {
      "name" : "SDE Observation Vital Signs Category",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Observation"
    },
    {
      "name" : "SDE Observation Category",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Observation"
    },
    {
      "name" : "SDE Coverage",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Coverage"
    },
    {
      "name" : "SDE Procedure",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Procedure"
    },
    {
      "name" : "SDE Specimen",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "Specimen"
    },
    {
      "name" : "SDE Service Request",
      "use" : "out",
      "min" : 0,
      "max" : "*",
      "type" : "ServiceRequest"
    },
    {
      "name" : "SDE Minimal Patient",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "type" : "Patient"
    }
  ],
  "dataRequirement" : [
    {
      "type" : "Patient",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Patient"
      ],
      "mustSupport" : [
        "id",
        "identifier",
        "active",
        "name",
        "telecom",
        "gender",
        "birthDate",
        "deceased",
        "address",
        "maritalStatus",
        "multipleBirth",
        "photo",
        "contact",
        "communication",
        "generalPractitioner",
        "managingOrganization",
        "link"
      ]
    },
    {
      "type" : "Encounter",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
      ],
      "mustSupport" : [
        "type",
        "status",
        "period",
        "location",
        "diagnosis",
        "id",
        "extension",
        "identifier",
        "statusHistory",
        "class",
        "classHistory",
        "serviceType",
        "priority",
        "subject",
        "length",
        "reasonCode",
        "reasonReference",
        "account",
        "hospitalization",
        "partOf"
      ],
      "codeFilter" : [
        {
          "path" : "type",
          "valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307"
        }
      ]
    },
    {
      "type" : "Encounter",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
      ],
      "mustSupport" : [
        "type",
        "status",
        "period",
        "location",
        "diagnosis",
        "id",
        "extension",
        "identifier",
        "statusHistory",
        "class",
        "classHistory",
        "serviceType",
        "priority",
        "subject",
        "length",
        "reasonCode",
        "reasonReference",
        "account",
        "hospitalization",
        "partOf"
      ],
      "codeFilter" : [
        {
          "path" : "type",
          "valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292|20210611"
        }
      ]
    },
    {
      "type" : "Encounter",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
      ],
      "mustSupport" : [
        "type",
        "status",
        "period",
        "location",
        "diagnosis",
        "id",
        "extension",
        "identifier",
        "statusHistory",
        "class",
        "classHistory",
        "serviceType",
        "priority",
        "subject",
        "length",
        "reasonCode",
        "reasonReference",
        "account",
        "hospitalization",
        "partOf"
      ],
      "codeFilter" : [
        {
          "path" : "type",
          "valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143|20210611"
        }
      ]
    },
    {
      "type" : "Encounter",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
      ],
      "mustSupport" : [
        "class",
        "status",
        "period",
        "location",
        "diagnosis",
        "id",
        "extension",
        "identifier",
        "statusHistory",
        "classHistory",
        "type",
        "serviceType",
        "priority",
        "subject",
        "length",
        "reasonCode",
        "reasonReference",
        "account",
        "hospitalization",
        "partOf"
      ],
      "codeFilter" : [
        {
          "path" : "class",
          "valueSet" : "http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274"
        }
      ]
    },
    {
      "type" : "Encounter",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
      ],
      "mustSupport" : [
        "class",
        "status",
        "period",
        "location",
        "diagnosis",
        "id",
        "extension",
        "identifier",
        "statusHistory",
        "classHistory",
        "type",
        "serviceType",
        "priority",
        "subject",
        "length",
        "reasonCode",
        "reasonReference",
        "account",
        "hospitalization",
        "partOf"
      ],
      "codeFilter" : [
        {
          "path" : "class",
          "code" : [
            {
              "system" : "http://terminology.hl7.org/CodeSystem/v3-ActCode",
              "code" : "EMER",
              "display" : "emergency"
            }
          ]
        }
      ]
    },
    {
      "type" : "Encounter",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
      ],
      "mustSupport" : [
        "class",
        "status",
        "period",
        "location",
        "diagnosis",
        "id",
        "extension",
        "identifier",
        "statusHistory",
        "classHistory",
        "type",
        "serviceType",
        "priority",
        "subject",
        "length",
        "reasonCode",
        "reasonReference",
        "account",
        "hospitalization",
        "partOf"
      ],
      "codeFilter" : [
        {
          "path" : "class",
          "code" : [
            {
              "system" : "http://terminology.hl7.org/CodeSystem/v3-ActCode",
              "code" : "OBSENC",
              "display" : "observation encounter"
            }
          ]
        }
      ]
    },
    {
      "type" : "Encounter",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Encounter"
      ],
      "mustSupport" : [
        "status",
        "period",
        "location",
        "diagnosis",
        "id",
        "extension",
        "identifier",
        "statusHistory",
        "class",
        "classHistory",
        "type",
        "serviceType",
        "priority",
        "subject",
        "length",
        "reasonCode",
        "reasonReference",
        "account",
        "hospitalization",
        "partOf"
      ]
    },
    {
      "type" : "Location",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Location"
      ],
      "mustSupport" : [
        "id",
        "extension",
        "status",
        "operationalStatus",
        "name",
        "alias",
        "description",
        "mode",
        "type",
        "telecom",
        "address",
        "physicalType",
        "position",
        "managingOrganization",
        "partOf",
        "hoursOfOperation",
        "availabilityExceptions",
        "endpoint"
      ]
    },
    {
      "type" : "Condition",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Condition"
      ],
      "mustSupport" : [
        "id",
        "extension",
        "clinicalStatus",
        "verificationStatus",
        "category",
        "severity",
        "code",
        "bodySite",
        "subject",
        "encounter",
        "onset",
        "abatement",
        "recordedDate",
        "stage",
        "evidence",
        "note",
        "encounter.id"
      ]
    },
    {
      "type" : "DiagnosticReport",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/DiagnosticReport"
      ],
      "mustSupport" : [
        "id",
        "extension",
        "basedOn",
        "status",
        "category",
        "code",
        "subject",
        "encounter",
        "effective",
        "issued",
        "specimen",
        "result",
        "conclusion",
        "conclusionCode",
        "performer",
        "resultsInterpreter"
      ]
    },
    {
      "type" : "Observation",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Observation"
      ],
      "mustSupport" : [
        "id",
        "extension",
        "partOf",
        "status",
        "category",
        "code",
        "subject",
        "encounter",
        "effective",
        "issued",
        "value",
        "dataAbsentReason",
        "interpretation",
        "bodySite",
        "method",
        "specimen",
        "referenceRange",
        "hasMember",
        "derivedFrom",
        "component",
        "focus",
        "performer",
        "note",
        "device"
      ]
    },
    {
      "type" : "Device",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Device"
      ],
      "mustSupport" : [
        "id",
        "extension",
        "status",
        "expirationDate",
        "lotNumber",
        "serialNumber",
        "modelNumber",
        "partNumber",
        "type",
        "patient",
        "parent"
      ]
    },
    {
      "type" : "MedicationAdministration",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/MedicationAdministration"
      ],
      "mustSupport" : [
        "effective",
        "id",
        "extension",
        "instantiates",
        "partOf",
        "status",
        "statusReason",
        "category",
        "medication",
        "subject",
        "context",
        "supportingInformation",
        "performer",
        "reasonCode",
        "reasonReference",
        "request",
        "device",
        "note",
        "dosage",
        "eventHistory"
      ]
    },
    {
      "type" : "MedicationRequest",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/MedicationRequest"
      ],
      "mustSupport" : [
        "authoredOn",
        "id",
        "extension",
        "status",
        "statusReason",
        "intent",
        "category",
        "priority",
        "doNotPerform",
        "reported",
        "medication",
        "subject",
        "encounter",
        "requester",
        "recorder",
        "reasonCode",
        "reasonReference",
        "instantiatesCanonical",
        "instantiatesUri",
        "courseOfTherapyType",
        "dosageInstruction"
      ]
    },
    {
      "type" : "Medication",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Medication"
      ],
      "mustSupport" : [
        "id",
        "extension",
        "code",
        "status",
        "manufacturer",
        "form",
        "amount",
        "ingredient",
        "batch"
      ]
    },
    {
      "type" : "Coverage",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Coverage"
      ],
      "mustSupport" : [
        "period",
        "id",
        "extension",
        "status",
        "type",
        "policyHolder",
        "subscriber",
        "subscriberId",
        "beneficiary",
        "dependent",
        "relationship",
        "payor",
        "class",
        "order",
        "network",
        "subrogation",
        "contract"
      ]
    },
    {
      "type" : "Procedure",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Procedure"
      ],
      "mustSupport" : [
        "performed",
        "id",
        "extension",
        "basedOn",
        "partOf",
        "status",
        "category",
        "code",
        "subject",
        "encounter",
        "location",
        "reasonCode",
        "reasonReference",
        "bodySite"
      ]
    },
    {
      "type" : "Specimen",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/Specimen"
      ],
      "mustSupport" : [
        "collection",
        "collection.collected",
        "id",
        "extension",
        "identifier",
        "accessionIdentifier",
        "status",
        "type",
        "subject",
        "receivedTime",
        "parent",
        "request",
        "processing",
        "container",
        "condition",
        "note"
      ]
    },
    {
      "type" : "ServiceRequest",
      "profile" : [
        🔗 "http://hl7.org/fhir/StructureDefinition/ServiceRequest"
      ],
      "mustSupport" : [
        "authoredOn",
        "id",
        "extension",
        "basedOn",
        "status",
        "intent",
        "category",
        "priority",
        "doNotPerform",
        "code",
        "quantity",
        "subject",
        "encounter",
        "occurrence",
        "asNeeded",
        "requester",
        "specimen"
      ]
    }
  ],
  "content" : [
    {
      "contentType" : "text/cql",
      "data" : "bGlicmFyeSBOSFNOQWN1dGVDYXJlSG9zcGl0YWxNb250aGx5SW5pdGlhbFBvcHVsYXRpb24gdmVyc2lvbiAnMS4wLjAtZGV2JwoKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjInIGNhbGxlZCBGSElSSGVscGVycwppbmNsdWRlIE5IU05IZWxwZXJzIHZlcnNpb24gJzAuMC4wMDInIGNhbGxlZCBOSFNOSGVscGVycwppbmNsdWRlIFNoYXJlZFJlc291cmNlQ3JlYXRpb24gdmVyc2lvbiAnMC4xLjAxMCcgY2FsbGVkIFNoYXJlZFJlc291cmNlCgpjb2Rlc3lzdGVtICJBY3RDb2RlIjogJ2h0dHA6Ly90ZXJtaW5vbG9neS5obDcub3JnL0NvZGVTeXN0ZW0vdjMtQWN0Q29kZScKY29kZXN5c3RlbSAiT2JzZXJ2YXRpb24gQ2F0ZWdvcnkiOiAnaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS9vYnNlcnZhdGlvbi1jYXRlZ29yeScKY29kZXN5c3RlbSAiTE9JTkMiOiAnaHR0cDovL2xvaW5jLm9yZycgCmNvZGVzeXN0ZW0gIlYyLTAwNzQiOiAnaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS92Mi0wMDc0Jwpjb2Rlc3lzdGVtICJDb25kaXRpb24gQ2F0ZWdvcnkiOiAnaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS9jb25kaXRpb24tY2F0ZWdvcnknCmNvZGVzeXN0ZW0gIlVTIENvcmUgQ29uZGl0aW9uIENhdGVnb3J5IjogJ2h0dHA6Ly9obDcub3JnL2ZoaXIvdXMvY29yZS9Db2RlU3lzdGVtL2NvbmRpdGlvbi1jYXRlZ29yeScKY29kZXN5c3RlbSAiQ29uZGl0aW9uIENsaW5pY2FsIFN0YXR1cyI6ICdodHRwOi8vdGVybWlub2xvZ3kuaGw3Lm9yZy9Db2RlU3lzdGVtL2NvbmRpdGlvbi1jbGluaWNhbCcKY29kZXN5c3RlbSAiU05PTUVEQ1QiOiAnaHR0cDovL3Nub21lZC5pbmZvL3NjdCcKY29kZXN5c3RlbSAiTWVkaWNhdGlvblJlcXVlc3QgQ2F0ZWdvcnkiOiAnaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS9tZWRpY2F0aW9ucmVxdWVzdC1jYXRlZ29yeScKCnZhbHVlc2V0ICJJbnBhdGllbnQsIEVtZXJnZW5jeSwgYW5kIE9ic2VydmF0aW9uIExvY2F0aW9ucyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjEwNDYuMjY1Jwp2YWx1ZXNldCAiRW1lcmdlbmN5IERlcGFydG1lbnQgVmlzaXQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjI5MicKdmFsdWVzZXQgIkVuY291bnRlciBJbnBhdGllbnQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNjY2LjUuMzA3Jwp2YWx1ZXNldCAiT2JzZXJ2YXRpb24gU2VydmljZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTExLjE0MycKdmFsdWVzZXQgIk5IU04gSW5wYXRpZW50IEVuY291bnRlciBDbGFzcyBDb2RlcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjEwNDYuMjc0JwoKLy9jb2RlIGZvciBPYnNlcnZhdGlvbiBDYXRlZ29yeQpjb2RlICJsYWJvcmF0b3J5IjogJ2xhYm9yYXRvcnknIGZyb20gIk9ic2VydmF0aW9uIENhdGVnb3J5IiBkaXNwbGF5ICdMYWJvcmF0b3J5Jwpjb2RlICJzb2NpYWwtaGlzdG9yeSI6ICdzb2NpYWwtaGlzdG9yeScgZnJvbSAiT2JzZXJ2YXRpb24gQ2F0ZWdvcnkiIGRpc3BsYXkgJ1NvY2lhbCBIaXN0b3J5Jwpjb2RlICJ2aXRhbC1zaWducyI6ICd2aXRhbC1zaWducycgZnJvbSAiT2JzZXJ2YXRpb24gQ2F0ZWdvcnkiIGRpc3BsYXkgJ1ZpdGFsIFNpZ25zJwpjb2RlICJpbWFnaW5nIjogJ2ltYWdpbmcnIGZyb20gIk9ic2VydmF0aW9uIENhdGVnb3J5IiBkaXNwbGF5ICdJbWFnaW5nJwpjb2RlICJwcm9jZWR1cmUiOiAncHJvY2VkdXJlJyBmcm9tICJPYnNlcnZhdGlvbiBDYXRlZ29yeSIgZGlzcGxheSAnUHJvY2VkdXJlJwpjb2RlICJzdXJ2ZXkiOiAnc3VydmV5JyBmcm9tICJPYnNlcnZhdGlvbiBDYXRlZ29yeSIgZGlzcGxheSAnU3VydmV5JwoKLy9jb2RlIGZvciBDb25kaXRpb24gY2F0ZWdvcnkKLy9jb2RlICJwcm9ibGVtLWxpc3QtaXRlbSI6ICdwcm9ibGVtLWxpc3QtaXRlbScgZnJvbSAiQ29uZGl0aW9uIENhdGVnb3J5IiBkaXNwbGF5ICdQcm9ibGVtIExpc3QgSXRlbScKY29kZSAiZW5jb3VudGVyLWRpYWdub3NpcyI6ICdlbmNvdW50ZXItZGlhZ25vc2lzJyBmcm9tICJDb25kaXRpb24gQ2F0ZWdvcnkiIGRpc3BsYXkgJ0VuY291bnRlciBEaWFnbm9zaXMnCi8vY29kZSAiaGVhbHRoLWNvbmNlcm4iOiAnaGVhbHRoLWNvbmNlcm4nIGZyb20gIlVTIENvcmUgQ29uZGl0aW9uIENhdGVnb3J5IiBkaXNwbGF5ICdIZWFsdGggQ29uY2VybicKCi8vY29kZSBmb3IgRGlhZ25vc3RpYyBSZXBvcnQgQ2F0ZWdvcnkKY29kZSAiTEFCIjogJ0xBQicgZnJvbSAiVjItMDA3NCIgZGlzcGxheSAnTGFib3JhdG9yeScKY29kZSAiUmFkaW9sb2d5IjogJ0xQMjk2ODQtNScgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ1JhZGlvbG9neScKY29kZSAiUGF0aG9sb2d5IjogJ0xQNzgzOS02JyBmcm9tICJMT0lOQyIgZGlzcGxheSAnUGF0aG9sb2d5Jwpjb2RlICJDYXJkaW9sb2d5IjogJ0xQMjk3MDgtMicgZnJvbSAiTE9JTkMiIGRpc3BsYXkgJ0NhcmRpb2xvZ3knCgovL2NvZGUgZm9yIEVtZXJnZW5jeSBFbmNvdW50ZXIgQ2xhc3MKY29kZSAiZW1lcmdlbmN5IjogJ0VNRVInIGZyb20gIkFjdENvZGUiIGRpc3BsYXkgJ2VtZXJnZW5jeScKY29kZSAib2JzZXJ2YXRpb24gZW5jb3VudGVyIjogJ09CU0VOQycgZnJvbSAiQWN0Q29kZSIgZGlzcGxheSAnb2JzZXJ2YXRpb24gZW5jb3VudGVyJwoKLy9jb2RlIGZvciBDb25kaXRpb24gY2xpbmljYWxTdGF0dXMKY29kZSAiYWN0aXZlIjogJ2FjdGl2ZScgZnJvbSAiQ29uZGl0aW9uIENsaW5pY2FsIFN0YXR1cyIgZGlzcGxheSAnYWN0aXZlJwoKLy9jb2RlIGZvciBQcm9jZWR1cmUgY2F0ZWdvcnkKY29kZSAiU3VyZ2ljYWwgcHJvY2VkdXJlIjogJzM4Nzc3MTMwMDMnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdTdXJnaWNhbCBwcm9jZWR1cmUnCmNvZGUgIkRpYWdub3N0aWMgcHJvY2VkdXJlIjogJzEwMzY5MzAwNycgZnJvbSAiU05PTUVEQ1QiIGRpc3BsYXkgJ0RpYWdub3N0aWMgcHJvY2VkdXJlJwoKLy9jb2RlIGZvciBNZWRpY2F0aW9uUmVxdWVzdCBjYXRlZ29yeQpjb2RlICJpbnBhdGllbnQiOiAnaW5wYXRpZW50JyBmcm9tICJNZWRpY2F0aW9uUmVxdWVzdCBDYXRlZ29yeSIgZGlzcGxheSAnSW5wYXRpZW50Jwpjb2RlICJvdXRwYXRpZW50IjogJ291dHBhdGllbnQnIGZyb20gIk1lZGljYXRpb25SZXF1ZXN0IENhdGVnb3J5IiBkaXNwbGF5ICdPdXRwYXRpZW50JwoKLy9jb2RlIGZvciBTZXJ2aWNlUmVxdWVzdCBjYXRlZ29yeSAoYWxzbyB1c2VzIFN1cmdpY2FsIHByb2NlZHVyZSBmcm9tIFByb2NlZHVyZSBjYXRlZ29yaWVzKQpjb2RlICJMYWJvcmF0b3J5IHByb2NlZHVyZSI6ICcxMDgyNTIwMDcnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdMYWJvcmF0b3J5IHByb2NlZHVyZScKY29kZSAiSW1hZ2luZyI6ICczNjM2NzkwMDUnIGZyb20gIlNOT01FRENUIiBkaXNwbGF5ICdJbWFnaW5nJwoKcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIAogICAgZGVmYXVsdCBJbnRlcnZhbFtAMjAyMi0wMS0wMVQwMDowMDowMC4wLCBAMjAyMi0wMS0zMVQyMzo1OTo1OS4wKQoKY29udGV4dCBQYXRpZW50IAoKZGVmaW5lICJRdWFsaWZ5aW5nIEVuY291bnRlcnMgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCI6CiAoIFtFbmNvdW50ZXI6ICJFbmNvdW50ZXIgSW5wYXRpZW50Il0KICB1bmlvbiBbRW5jb3VudGVyOiAiRW1lcmdlbmN5IERlcGFydG1lbnQgVmlzaXQiXQogIHVuaW9uIFtFbmNvdW50ZXI6ICJPYnNlcnZhdGlvbiBTZXJ2aWNlcyJdCiAgdW5pb24gW0VuY291bnRlcjogY2xhc3MgaW4gIk5IU04gSW5wYXRpZW50IEVuY291bnRlciBDbGFzcyBDb2RlcyJdCiAgdW5pb24gW0VuY291bnRlcjogY2xhc3MgfiAiZW1lcmdlbmN5Il0KICB1bmlvbiBbRW5jb3VudGVyOiBjbGFzcyB+ICJvYnNlcnZhdGlvbiBlbmNvdW50ZXIiXSkgUXVhbGlmeWluZ0VuY291bnRlcnMKICB3aGVyZSBRdWFsaWZ5aW5nRW5jb3VudGVycy5zdGF0dXMgaW4geydpbi1wcm9ncmVzcycsICdmaW5pc2hlZCcsICd0cmlhZ2VkJywgJ29ubGVhdmUnLCAnZW50ZXJlZC1pbi1lcnJvcid9CiAgICBhbmQgUXVhbGlmeWluZ0VuY291bnRlcnMucGVyaW9kIG92ZXJsYXBzICJNZWFzdXJlbWVudCBQZXJpb2QiIAoKZGVmaW5lICJFbmNvdW50ZXJzIHdpdGggUGF0aWVudCBIb3NwaXRhbCBMb2NhdGlvbnMiOgogICJFbmNvdW50ZXJzIiBFbmNvdW50ZXJzCiAgd2hlcmUgZXhpc3RzKAogICAgRW5jb3VudGVycy5sb2NhdGlvbiBFbmNvdW50ZXJMb2NhdGlvbgogICAgd2hlcmUgTkhTTkhlbHBlcnMuR2V0TG9jYXRpb24oRW5jb3VudGVyTG9jYXRpb24ubG9jYXRpb24pLnR5cGUgaW4gIklucGF0aWVudCwgRW1lcmdlbmN5LCBhbmQgT2JzZXJ2YXRpb24gTG9jYXRpb25zIgogICAgICBhbmQgRW5jb3VudGVyTG9jYXRpb24ucGVyaW9kIG92ZXJsYXBzIEVuY291bnRlcnMucGVyaW9kCiAgKQogIGFuZCBFbmNvdW50ZXJzLnN0YXR1cyBpbiB7J2luLXByb2dyZXNzJywgJ2ZpbmlzaGVkJywgJ3RyaWFnZWQnLCAnb25sZWF2ZScsICdlbnRlcmVkLWluLWVycm9yJ30KICBhbmQgRW5jb3VudGVycy5wZXJpb2Qgb3ZlcmxhcHMgIk1lYXN1cmVtZW50IFBlcmlvZCIKCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoKICAiUXVhbGlmeWluZyBFbmNvdW50ZXJzIER1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiCiAgdW5pb24gIkVuY291bnRlcnMgd2l0aCBQYXRpZW50IEhvc3BpdGFsIExvY2F0aW9ucyIKCmRlZmluZSAiRW5jb3VudGVycyI6CiAgW0VuY291bnRlcl0KCmRlZmluZSAiQ29uZGl0aW9ucyI6CiAgW0NvbmRpdGlvbl0KCmRlZmluZSAiRGlhZ25vc3RpY1JlcG9ydHMiOgogIFtEaWFnbm9zdGljUmVwb3J0XQoKZGVmaW5lICJPYnNlcnZhdGlvbnMiOgogIFtPYnNlcnZhdGlvbl0KCmRlZmluZSAiR2V0IExvY2F0aW9ucyBmcm9tIElQIEVuY291bnRlcnMgaW4gTWVhc3VyZW1lbnQgUGVyaW9kIjoKICBmbGF0dGVuKCJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgbGV0IGxvY2F0aW9uRWxlbWVudHM6IElQLmxvY2F0aW9uCiAgcmV0dXJuCiAgICBsb2NhdGlvbkVsZW1lbnRzIExFCiAgICBsZXQgbG9jYXRpb25SZWZlcmVuY2U6IExFLmxvY2F0aW9uCiAgICByZXR1cm4gTkhTTkhlbHBlcnMuR2V0TG9jYXRpb24obG9jYXRpb25SZWZlcmVuY2UpKQoKLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vU3VwcGxlbWVudGFsIERhdGEgRWxlbWVudAovL1doZW4gRkhJUi5jYW5vbmljYWwgdmFsdWUgaXMgcHJlc2VudCwgVVMgQ29yZSAzLjEuMSBwcm9maWxlcyBhcmUgdXNlZAovL1doZW4gRkhJUi5jYW5vbmljYWwgdmFsdWUgaXMgbm90IHByZXNlbnQsIEZISVIgQmFzZSBwcm9maWxlcyBhcmUgdXNlZAovLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGVmaW5lICJTREUgQ29uZGl0aW9uIjoKICAiQ29uZGl0aW9ucyIgQ29uZGl0aW9ucyAKICAgIHdoZXJlIGV4aXN0cygKICAgICJJbml0aWFsIFBvcHVsYXRpb24iIElQCi8vQ2hlY2sgZm9yIFByb2JsZW0gTGlzdCBDb25kaXRpb25zIHRoYXQgd2VyZSByZWNvcmRlZCBiZWZvcmUgb3IgZHVyaW5nIElQIAogICAgIHdoZXJlIAogICAgICAoZXhpc3RzKElQLmRpYWdub3NpcyBEaWFnbm9zZXMKICAgICAgICAgIHdoZXJlIEdldENvbmRpdGlvbihEaWFnbm9zZXMuY29uZGl0aW9uKS5pZCA9IENvbmRpdGlvbnMuaWQKICAgICAgICApCiAgICAgICAgb3IgR2V0RW5jb3VudGVyKENvbmRpdGlvbnMuZW5jb3VudGVyKS5pZCA9IElQLmlkCiAgICAgICkKICAgICAgYW5kIGV4aXN0cyAoQ29uZGl0aW9ucy5jYXRlZ29yeSBjYXRlZ29yaWVzCiAgICAgICAgd2hlcmUgY2F0ZWdvcmllcyB+ICJlbmNvdW50ZXItZGlhZ25vc2lzIgogICAgKQogICkKICByZXR1cm4gQ29uZGl0aW9uUmVzb3VyY2UoQ29uZGl0aW9ucywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LWNvbmRpdGlvbid9fSwKICAgeyJlbmNvdW50ZXItZGlhZ25vc2lzIn0pCgpkZWZpbmUgIlNERSBEZXZpY2UiOgogIFtEZXZpY2VdIERldmljZXMgCiAgd2hlcmUgZXhpc3RzKCJJbml0aWFsIFBvcHVsYXRpb24iKQogIHJldHVybiBEZXZpY2VSZXNvdXJjZShEZXZpY2VzLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1vbnRobHktZGV2aWNlJ319KQoKLy9UaGlzIGJsb2NrIGNvbGxlY3RzIGFsbCBEaWFnbm9zdGljUmVwb3J0IHJlc291cmNlcyB3aGlsZSBhbHNvIG1hcmtpbmcgTGFiIGFuZCBOb3RlIERpYWdub3N0aWNSZXBvcnRzIHdpdGggdGhlIGFwcHJvcHJpYXRlIHByb2ZpbGVzCi8vI1N0YXJ0IERpYWdub3N0aWNSZXBvcnQgYmxvY2sKZGVmaW5lICJTREUgRGlhZ25vc3RpY1JlcG9ydCBMYWIiOgogICJEaWFnbm9zdGljUmVwb3J0cyIgRGlhZ25vc3RpY1JlcG9ydHMKICB3aGVyZSAoZXhpc3RzKERpYWdub3N0aWNSZXBvcnRzLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gIkxBQiIpCiAgICBhbmQgZXhpc3RzKAogICAgICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogICAgICB3aGVyZSBOSFNOSGVscGVycy4iTm9ybWFsaXplIEludGVydmFsIihEaWFnbm9zdGljUmVwb3J0cy5lZmZlY3RpdmUpIG92ZXJsYXBzIElQLnBlcmlvZCkpCiAgcmV0dXJuIERpYWdub3N0aWNSZXBvcnRMYWJSZXNvdXJjZShEaWFnbm9zdGljUmVwb3J0cywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LWRpYWdub3N0aWNyZXBvcnQtbGFiJ319LAogIHsiTEFCIiwgIlJhZGlvbG9neSIsICJQYXRob2xvZ3kiLCAiQ2FyZGlvbG9neSJ9KQogCmRlZmluZSAiU0RFIERpYWdub3N0aWNSZXBvcnQgTm90ZSI6CiAgIkRpYWdub3N0aWNSZXBvcnRzIiBEaWFnbm9zdGljUmVwb3J0cwogIHdoZXJlICgoZXhpc3RzKERpYWdub3N0aWNSZXBvcnRzLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gIlJhZGlvbG9neSIpKQogICAgb3IgZXhpc3RzKChEaWFnbm9zdGljUmVwb3J0cy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJQYXRob2xvZ3kiKSkKICAgIG9yIGV4aXN0cygoRGlhZ25vc3RpY1JlcG9ydHMuY2F0ZWdvcnkgQ2F0ZWdvcnkgd2hlcmUgQ2F0ZWdvcnkgfiAiQ2FyZGlvbG9neSIpKSkKICAgIGFuZCBleGlzdHMoCiAgICAgICJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgICAgIHdoZXJlIE5IU05IZWxwZXJzLiJOb3JtYWxpemUgSW50ZXJ2YWwiKERpYWdub3N0aWNSZXBvcnRzLmVmZmVjdGl2ZSkgb3ZlcmxhcHMgSVAucGVyaW9kKQogIHJldHVybiBEaWFnbm9zdGljUmVwb3J0UmVzb3VyY2UoRGlhZ25vc3RpY1JlcG9ydHMsCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtbW9udGhseS1kaWFnbm9zdGljcmVwb3J0LW5vdGUnfX0pCgpkZWZpbmUgIlNERSBEaWFnbm9zdGljUmVwb3J0IE90aGVycyI6CiAgW0RpYWdub3N0aWNSZXBvcnRdIERpYWdub3N0aWNSZXBvcnRzCiAgd2hlcmUgbm90ICgoZXhpc3RzKERpYWdub3N0aWNSZXBvcnRzLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gIlJhZGlvbG9neSIpKQogICAgb3IgZXhpc3RzKChEaWFnbm9zdGljUmVwb3J0cy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJQYXRob2xvZ3kiKSkKICAgIG9yIGV4aXN0cygoRGlhZ25vc3RpY1JlcG9ydHMuY2F0ZWdvcnkgQ2F0ZWdvcnkgd2hlcmUgQ2F0ZWdvcnkgfiAiQ2FyZGlvbG9neSIpKQogICAgb3IgZXhpc3RzKERpYWdub3N0aWNSZXBvcnRzLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gIkxBQiIpKQogICAgYW5kIGV4aXN0cygiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogICAgICB3aGVyZSBOSFNOSGVscGVycy4iTm9ybWFsaXplIEludGVydmFsIihEaWFnbm9zdGljUmVwb3J0cy5lZmZlY3RpdmUpIG92ZXJsYXBzIElQLnBlcmlvZCkKICByZXR1cm4gRGlhZ25vc3RpY1JlcG9ydFJlc291cmNlKERpYWdub3N0aWNSZXBvcnRzLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1vbnRobHktZGlhZ25vc3RpY3JlcG9ydCd9fSkKLy8jRW5kIERpYWdub3N0aWNSZXBvcnQgYmxvY2sKCmRlZmluZSAiU0RFIEVuY291bnRlciI6IAogICJFbmNvdW50ZXJzIiBFbmNvdW50ZXJzCiAgd2hlcmUgbm90IENoZWNrSVAoRW5jb3VudGVycykKICBhbmQgZXhpc3RzKAogICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVAKICAgIHdoZXJlIEVuY291bnRlcnMucGVyaW9kIG92ZXJsYXBzIElQLnBlcmlvZCkKICByZXR1cm4gU2hhcmVkUmVzb3VyY2UuRW5jb3VudGVyUmVzb3VyY2UoRW5jb3VudGVycywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vaGw3Lm9yZy9maGlyL3VzL2NvcmUvU3RydWN0dXJlRGVmaW5pdGlvbi91cy1jb3JlLWVuY291bnRlcid9fSkKCmRlZmluZSAiU0RFIElQIEVuY291bnRlcnMiOgogICJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgcmV0dXJuIFNoYXJlZFJlc291cmNlLkVuY291bnRlclJlc291cmNlKElQLCAKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LWVuY291bnRlcid9fSkKCmRlZmluZSAiU0RFIExvY2F0aW9uIjoKICAiR2V0IExvY2F0aW9ucyBmcm9tIElQIEVuY291bnRlcnMgaW4gTWVhc3VyZW1lbnQgUGVyaW9kIiBMb2NhdGlvbnMKICB3aGVyZSBleGlzdHMoIkluaXRpYWwgUG9wdWxhdGlvbiIpCiAgYW5kIExvY2F0aW9ucyBpcyBub3QgbnVsbAogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5Mb2NhdGlvblJlc291cmNlKExvY2F0aW9ucywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LWxvY2F0aW9uJ319KQogCmRlZmluZSAiU0RFIE1lZGljYXRpb24gQWRtaW5pc3RyYXRpb24iOgogIFtNZWRpY2F0aW9uQWRtaW5pc3RyYXRpb25dIE1lZGljYXRpb25BZG1pbmlzdHJhdGlvbnMgCiAgd2hlcmUgZXhpc3RzKAogICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVAKICAgIHdoZXJlIE5IU05IZWxwZXJzLiJOb3JtYWxpemUgSW50ZXJ2YWwiKE1lZGljYXRpb25BZG1pbmlzdHJhdGlvbnMuZWZmZWN0aXZlKSBvdmVybGFwcyBJUC5wZXJpb2QpCiAgcmV0dXJuIE1lZGljYXRpb25BZG1pbmlzdHJhdGlvblJlc291cmNlKE1lZGljYXRpb25BZG1pbmlzdHJhdGlvbnMsCiAge0ZISVIuY2Fub25pY2Fse3ZhbHVlOiAnaHR0cDovL3d3dy5jZGMuZ292L25oc24vZmhpcnBvcnRhbC9kcW0vaWcvU3RydWN0dXJlRGVmaW5pdGlvbi9hY2gtbW9udGhseS1tZWRpY2F0aW9uYWRtaW5pc3RyYXRpb24nfX0sCiAgeyJpbnBhdGllbnQiLCAib3V0cGF0aWVudCJ9KQogCmRlZmluZSAiU0RFIE1lZGljYXRpb24gUmVxdWVzdCI6CiAgW01lZGljYXRpb25SZXF1ZXN0XSBNZWRpY2F0aW9uUmVxdWVzdHMgCiAgd2hlcmUgZXhpc3RzKAogICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVAKICAgIHdoZXJlIE1lZGljYXRpb25SZXF1ZXN0cy5hdXRob3JlZE9uIGR1cmluZyBJUC5wZXJpb2QpCiAgcmV0dXJuIE1lZGljYXRpb25SZXF1ZXN0UmVzb3VyY2UoTWVkaWNhdGlvblJlcXVlc3RzLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1vbnRobHktbWVkaWNhdGlvbnJlcXVlc3QnfX0sCiAgeyJpbnBhdGllbnQiLCAib3V0cGF0aWVudCJ9KQoKZGVmaW5lICJTREUgTWVkaWNhdGlvbiI6CiAgKCJTREUgTWVkaWNhdGlvbiBSZXF1ZXN0IgogIHVuaW9uICJTREUgTWVkaWNhdGlvbiBBZG1pbmlzdHJhdGlvbiIpIE1lZFJlcU9yQWRtaW4KICB3aGVyZSBNZWRSZXFPckFkbWluLm1lZGljYXRpb24gaXMgRkhJUi5SZWZlcmVuY2UKICBhbmQgZXhpc3RzKCJJbml0aWFsIFBvcHVsYXRpb24iKSAvL05vIGxvbmdlciBuZWVkIHRvIGNoZWNrIGZvciB0aW1pbmcgaGVyZSBiZWNhdXNlIGl0J3MgY2hlY2tlZCBpbiBTREUgTWVkaWNhdGlvbiBSZXF1ZXN0L0FkbWluaXN0cmlhdGlvbgogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5NZWRpY2F0aW9uUmVzb3VyY2UoR2V0TWVkaWNhdGlvbkZyb20oTWVkUmVxT3JBZG1pbi5tZWRpY2F0aW9uKSwKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LW1lZGljYXRpb24nfX0pCgpkZWZpbmUgIlNERSBPYnNlcnZhdGlvbiBMYWIgQ2F0ZWdvcnkiOgogICJPYnNlcnZhdGlvbnMiIE9ic2VydmF0aW9ucyAKICB3aGVyZSAoZXhpc3RzKE9ic2VydmF0aW9ucy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJsYWJvcmF0b3J5IikpCiAgICBhbmQgZXhpc3RzKAogICAgICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogICAgICB3aGVyZSBOSFNOSGVscGVycy4iTm9ybWFsaXplIEludGVydmFsIihPYnNlcnZhdGlvbnMuZWZmZWN0aXZlKSBvdmVybGFwcyBJUC5wZXJpb2QpCiAgcmV0dXJuIE9ic2VydmF0aW9uTGFiUmVzb3VyY2UoT2JzZXJ2YXRpb25zLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1vbnRobHktb2JzZXJ2YXRpb24tbGFiJ319LAogIHsiaW1hZ2luZyIsICJwcm9jZWR1cmUiLCAidml0YWwtc2lnbnMiLCAibGFib3JhdG9yeSJ9KQoKLy9WaXRhbCBTaWducyBPYnNlcnZhdGlvbiBoYXMgaXRzIG93biBwcm9maWxlIGluIEZISVIgQmFzZQpkZWZpbmUgIlNERSBPYnNlcnZhdGlvbiBWaXRhbCBTaWducyBDYXRlZ29yeSI6CiAgIk9ic2VydmF0aW9ucyIgT2JzZXJ2YXRpb25zIAogIHdoZXJlIChleGlzdHMoT2JzZXJ2YXRpb25zLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gInZpdGFsLXNpZ25zIikpCiAgICBhbmQgZXhpc3RzKAogICAgICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogICAgICB3aGVyZSBOSFNOSGVscGVycy4iTm9ybWFsaXplIEludGVydmFsIihPYnNlcnZhdGlvbnMuZWZmZWN0aXZlKSBvdmVybGFwcyBJUC5wZXJpb2QpCiAgcmV0dXJuIE9ic2VydmF0aW9uVml0YWxTaWduc1Jlc291cmNlKE9ic2VydmF0aW9ucywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LW9ic2VydmF0aW9uLXZpdGFscyd9fSwKICB7ImltYWdpbmciLCAicHJvY2VkdXJlIiwgInZpdGFsLXNpZ25zIiwgImxhYm9yYXRvcnkifSkKCi8vRGVmYXVsdGluZyB0byBiYXNlIEZISVIgcHJvZmlsZSBhcyB0aGVyZSBhcmUgbm8gaW5kaXZpZHVhbCBwcm9maWxlcyBpbiBVUyBDb3JlIDMuMS4xIHRoYXQgY292ZXIgdGhlc2UgT2JzZXJ2YXRpb24gY2F0ZWdvcmllcwpkZWZpbmUgIlNERSBPYnNlcnZhdGlvbiBDYXRlZ29yeSI6CiAgIk9ic2VydmF0aW9ucyIgT2JzZXJ2YXRpb25zIAogIHdoZXJlICgvKihleGlzdHMoT2JzZXJ2YXRpb25zLmNhdGVnb3J5IENhdGVnb3J5IHdoZXJlIENhdGVnb3J5IH4gInNvY2lhbC1oaXN0b3J5IikpCiAgICBvciAoZXhpc3RzKE9ic2VydmF0aW9ucy5jYXRlZ29yeSBDYXRlZ29yeSB3aGVyZSBDYXRlZ29yeSB+ICJzdXJ2ZXkiKSkKICAgIG9yICovKGV4aXN0cyhPYnNlcnZhdGlvbnMuY2F0ZWdvcnkgQ2F0ZWdvcnkgd2hlcmUgQ2F0ZWdvcnkgfiAiaW1hZ2luZyIpKQogICAgb3IgKGV4aXN0cyhPYnNlcnZhdGlvbnMuY2F0ZWdvcnkgQ2F0ZWdvcnkgd2hlcmUgQ2F0ZWdvcnkgfiAicHJvY2VkdXJlIikpKQogICAgYW5kIGV4aXN0cygKICAgICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVAKICAgICAgd2hlcmUgTkhTTkhlbHBlcnMuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoT2JzZXJ2YXRpb25zLmVmZmVjdGl2ZSkgb3ZlcmxhcHMgSVAucGVyaW9kKQogIHJldHVybiBPYnNlcnZhdGlvblJlc291cmNlKE9ic2VydmF0aW9ucywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LW9ic2VydmF0aW9uJ319LAogIHsiaW1hZ2luZyIsICJwcm9jZWR1cmUiLCAidml0YWwtc2lnbnMiLCAibGFib3JhdG9yeSJ9KQoKZGVmaW5lICJTREUgQ292ZXJhZ2UiOiAKCVtDb3ZlcmFnZV0gQ292ZXJhZ2VzCiAgd2hlcmUgZXhpc3RzKAogICAgIkluaXRpYWwgUG9wdWxhdGlvbiIgSVAKICAgIHdoZXJlIENvdmVyYWdlcy5wZXJpb2Qgb3ZlcmxhcHMgSVAucGVyaW9kKQogIHJldHVybiBTaGFyZWRSZXNvdXJjZS5Db3ZlcmFnZVJlc291cmNlKENvdmVyYWdlcywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LWNvdmVyYWdlJ319KQoKZGVmaW5lICJTREUgUHJvY2VkdXJlIjoKICBbUHJvY2VkdXJlXSBQcm9jZWR1cmVzIAogIHdoZXJlIGV4aXN0cygKICAgICJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgICB3aGVyZSBOSFNOSGVscGVycy4iTm9ybWFsaXplIEludGVydmFsIihQcm9jZWR1cmVzLnBlcmZvcm1lZCkgb3ZlcmxhcHMgSVAucGVyaW9kKQogICAgIHJldHVybiBQcm9jZWR1cmVSZXNvdXJjZShQcm9jZWR1cmVzLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1vbnRobHktcHJvY2VkdXJlJ319LAogIHsiU3VyZ2ljYWwgcHJvY2VkdXJlIiwgIkRpYWdub3N0aWMgcHJvY2VkdXJlIn0pCgpkZWZpbmUgIlNERSBTcGVjaW1lbiI6CiAgW1NwZWNpbWVuXSBTcGVjaW1lbnMKICB3aGVyZSBleGlzdHMoCiAgICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogICAgd2hlcmUgTkhTTkhlbHBlcnMuIk5vcm1hbGl6ZSBJbnRlcnZhbCIoU3BlY2ltZW5zLmNvbGxlY3Rpb24uY29sbGVjdGVkKSBvdmVybGFwcyBJUC5wZXJpb2QKICApCiAgcmV0dXJuIFNoYXJlZFJlc291cmNlLlNwZWNpbWVuUmVzb3VyY2UoU3BlY2ltZW5zLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vYWNoLW1vbnRobHktc3BlY2ltZW4nfX0pCgpkZWZpbmUgIlNERSBTZXJ2aWNlIFJlcXVlc3QiOgogIFtTZXJ2aWNlUmVxdWVzdF0gU2VydmljZVJlcXVlc3RzCiAgd2hlcmUgZXhpc3RzKCJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgICB3aGVyZSBTZXJ2aWNlUmVxdWVzdHMuYXV0aG9yZWRPbiBkdXJpbmcgSVAucGVyaW9kKQogIHJldHVybiBTZXJ2aWNlUmVxdWVzdFJlc291cmNlKFNlcnZpY2VSZXF1ZXN0cywKICB7RkhJUi5jYW5vbmljYWx7dmFsdWU6ICdodHRwOi8vd3d3LmNkYy5nb3Yvbmhzbi9maGlycG9ydGFsL2RxbS9pZy9TdHJ1Y3R1cmVEZWZpbml0aW9uL2FjaC1tb250aGx5LXNlcnZpY2VyZXF1ZXN0J319LAogIHsiTGFib3JhdG9yeSBwcm9jZWR1cmUiLCAiU3VyZ2ljYWwgcHJvY2VkdXJlIiwgIkltYWdpbmcifSkKCmRlZmluZSAiU0RFIE1pbmltYWwgUGF0aWVudCI6CiAgUGF0aWVudCBwCiAgcmV0dXJuIFNoYXJlZFJlc291cmNlLlBhdGllbnRSZXNvdXJjZShwLAogIHtGSElSLmNhbm9uaWNhbHt2YWx1ZTogJ2h0dHA6Ly93d3cuY2RjLmdvdi9uaHNuL2ZoaXJwb3J0YWwvZHFtL2lnL1N0cnVjdHVyZURlZmluaXRpb24vY3Jvc3MtbWVhc3VyZS1wYXRpZW50J319KQoKLy8KLy9GdW5jdGlvbnMKLy8KZGVmaW5lIGZ1bmN0aW9uICJDaGVja0lQIihlbmNvdW50ZXIgRW5jb3VudGVyKToKICBleGlzdHMoIkluaXRpYWwgUG9wdWxhdGlvbiIgSVAKICB3aGVyZSBlbmNvdW50ZXIuaWQgPSBJUC5pZCkKCmRlZmluZSBmdW5jdGlvbiAiR2V0TWVkaWNhdGlvbkZyb20iKGNob2ljZSBDaG9pY2U8RkhJUi5Db2RlYWJsZUNvbmNlcHQsIEZISVIuUmVmZXJlbmNlPik6CiAgY2FzZQogICAgd2hlbiBjaG9pY2UgaXMgRkhJUi5SZWZlcmVuY2UgdGhlbgogICAgICBHZXRNZWRpY2F0aW9uKGNob2ljZSBhcyBGSElSLlJlZmVyZW5jZSkKICAgIGVsc2UKICAgICAgbnVsbAogIGVuZAoKZGVmaW5lIGZ1bmN0aW9uICJHZXRNZWRpY2F0aW9uIihyZWZlcmVuY2UgUmVmZXJlbmNlKToKICBzaW5nbGV0b24gZnJvbSAoCiAgICBbTWVkaWNhdGlvbl0gTWVkaWNhdGlvbnMKICAgIHdoZXJlIE1lZGljYXRpb25zLmlkID0gTkhTTkhlbHBlcnMuR2V0SWQocmVmZXJlbmNlLnJlZmVyZW5jZSkKICApCgpkZWZpbmUgZnVuY3Rpb24gIkdldENvbmRpdGlvbiIocmVmZXJlbmNlIFJlZmVyZW5jZSk6CiAgc2luZ2xldG9uIGZyb20gKAogICAgIkNvbmRpdGlvbnMiIENvbmRpdGlvbnMKICAgIHdoZXJlIENvbmRpdGlvbnMuaWQgPSBOSFNOSGVscGVycy5HZXRJZChyZWZlcmVuY2UucmVmZXJlbmNlKQogICkKCmRlZmluZSBmdW5jdGlvbiAiR2V0RW5jb3VudGVyIihyZWZlcmVuY2UgUmVmZXJlbmNlKToKICBzaW5nbGV0b24gZnJvbSAoCiAgICAiRW5jb3VudGVycyIgRW5jb3VudGVycwogICAgd2hlcmUgRW5jb3VudGVycy5pZCA9IE5IU05IZWxwZXJzLkdldElkKHJlZmVyZW5jZS5yZWZlcmVuY2UpCiAgKQoKZGVmaW5lIGZ1bmN0aW9uIFJlbW92ZVVuYWNjZXB0ZWQoY29kZXMgTGlzdDxGSElSLkNvZGVhYmxlQ29uY2VwdD4sIGFjY2VwdGVkIExpc3Q8U3lzdGVtLkNvZGU+KToKICBjb2RlcyBjCiAgd2hlcmUgZXhpc3RzKAogICAgYWNjZXB0ZWQgYQogICAgd2hlcmUgYyB+IGEKICApCgpkZWZpbmUgZnVuY3Rpb24gRmlsdGVyQ29kZWFibGVDb25jZXB0cyhjb2RlcyBMaXN0PEZISVIuQ29kZWFibGVDb25jZXB0PiwgYWNjZXB0ZWQgTGlzdDxTeXN0ZW0uQ29kZT4pOgogIGlmIENvdW50KGFjY2VwdGVkKSA+IDAKICAgIHRoZW4gUmVtb3ZlVW5hY2NlcHRlZChjb2RlcywgYWNjZXB0ZWQpCiAgZWxzZSBjb2RlcyAgICAKCi8vCi8vTWVhc3VyZSBTcGVjaWZpYyBSZXNvdXJjZSBDcmVhdGlvbiBGdW5jdGlvbnMKLy8KCmRlZmluZSBmdW5jdGlvbiBDb25kaXRpb25SZXNvdXJjZShjb25kaXRpb24gQ29uZGl0aW9uLCBwcm9maWxlVVJMcyBMaXN0PEZISVIuY2Fub25pY2FsPiwgYWNjZXB0ZWRDYXRlZ29yaWVzIExpc3Q8U3lzdGVtLkNvZGU+KToKICBjb25kaXRpb24gYwogIHJldHVybiBDb25kaXRpb257CiAgICBpZDogRkhJUi5pZCB7dmFsdWU6ICdMQ1ItJyArIGMuaWR9LAogICAgbWV0YTogU2hhcmVkUmVzb3VyY2UuTWV0YUVsZW1lbnQoYywgcHJvZmlsZVVSTHMpLAogICAgZXh0ZW5zaW9uOiBjLmV4dGVuc2lvbiwKICAgIGNsaW5pY2FsU3RhdHVzOiBjLmNsaW5pY2FsU3RhdHVzLAogICAgdmVyaWZpY2F0aW9uU3RhdHVzOiBjLnZlcmlmaWNhdGlvblN0YXR1cywKICAgIGNhdGVnb3J5OiBGaWx0ZXJDb2RlYWJsZUNvbmNlcHRzKGMuY2F0ZWdvcnksIGFjY2VwdGVkQ2F0ZWdvcmllcyksCiAgICBjb2RlOiBjLmNvZGUsCiAgICBzdWJqZWN0OiBjLnN1YmplY3QsCiAgICBlbmNvdW50ZXI6IGMuZW5jb3VudGVyLAogICAgb25zZXQ6IGMub25zZXQsCiAgICBhYmF0ZW1lbnQ6IGMuYWJhdGVtZW50LAogICAgcmVjb3JkZWREYXRlOiBjLnJlY29yZGVkRGF0ZQogIH0KCmRlZmluZSBmdW5jdGlvbiBEZXZpY2VSZXNvdXJjZShkZXZpY2UgRGV2aWNlLCBwcm9maWxlVVJMcyBMaXN0PEZISVIuY2Fub25pY2FsPik6CiAgZGV2aWNlIGQKICByZXR1cm4gRGV2aWNlewogICAgaWQ6IEZISVIuaWR7dmFsdWU6ICdMQ1ItJyArIGQuaWR9LAogICAgbWV0YTogU2hhcmVkUmVzb3VyY2UuTWV0YUVsZW1lbnQoZCwgcHJvZmlsZVVSTHMpLAogICAgZXh0ZW5zaW9uOiBkLmV4dGVuc2lvbiwKICAgIHN0YXR1czogZC5zdGF0dXMsCiAgICBleHBpcmF0aW9uRGF0ZTogZC5leHBpcmF0aW9uRGF0ZSwKICAgIGxvdE51bWJlcjogZC5sb3ROdW1iZXIsCiAgICBzZXJpYWxOdW1iZXI6IGQuc2VyaWFsTnVtYmVyLAogICAgbW9kZWxOdW1iZXI6IGQubW9kZWxOdW1iZXIsCiAgICBwYXJ0TnVtYmVyOiBkLnBhcnROdW1iZXIsCiAgICB0eXBlOiBkLnR5cGUsCiAgICBwYXRpZW50OiBkLnBhdGllbnQsCiAgICBwYXJlbnQ6IGQucGFyZW50CiAgfQoKZGVmaW5lIGZ1bmN0aW9uIERpYWdub3N0aWNSZXBvcnRDb2RpbmcoY29kaW5nIExpc3Q8Q29kaW5nPik6CiAgY29kaW5nIGMKICByZXR1cm4gQ29kaW5newogICAgc3lzdGVtOiBjLnN5c3RlbSwKICAgIHZlcnNpb246IGMudmVyc2lvbiwKICAgIGNvZGU6IGMuY29kZSwKICAgIGRpc3BsYXk6IGMuZGlzcGxheQogIH0KCmRlZmluZSBmdW5jdGlvbiBEaWFnbm9zdGljUmVwb3J0Q2F0ZWdvcnkoY2F0ZWdvcnkgTGlzdDxDb2RlYWJsZUNvbmNlcHQ+KToKICBjYXRlZ29yeSBjCiAgcmV0dXJuIENvZGVhYmxlQ29uY2VwdHsKICAgIGNvZGluZzogRGlhZ25vc3RpY1JlcG9ydENvZGluZyhjLmNvZGluZykKICB9CgpkZWZpbmUgZnVuY3Rpb24gRGlhZ25vc3RpY1JlcG9ydExhYlJlc291cmNlKGRpYWdub3N0aWNSZXBvcnQgRGlhZ25vc3RpY1JlcG9ydCwgcHJvZmlsZVVSTHMgTGlzdDxGSElSLmNhbm9uaWNhbD4sIGFjY2VwdGVkQ2F0ZWdvcmllcyBMaXN0PFN5c3RlbS5Db2RlPik6CiAgZGlhZ25vc3RpY1JlcG9ydCBkCiAgcmV0dXJuIERpYWdub3N0aWNSZXBvcnR7CiAgICBpZDogRkhJUi5pZHt2YWx1ZTogJ0xDUi0nICsgZC5pZH0sCiAgICBtZXRhOiBTaGFyZWRSZXNvdXJjZS5NZXRhRWxlbWVudChkLCBwcm9maWxlVVJMcyksCiAgICBleHRlbnNpb246IGQuZXh0ZW5zaW9uLAogICAgYmFzZWRPbjogZC5iYXNlZE9uLAogICAgc3RhdHVzOiBkLnN0YXR1cywKICAgIGNhdGVnb3J5OiBGaWx0ZXJDb2RlYWJsZUNvbmNlcHRzKERpYWdub3N0aWNSZXBvcnRDYXRlZ29yeShkLmNhdGVnb3J5KSwgYWNjZXB0ZWRDYXRlZ29yaWVzKSwKICAgIGNvZGU6IGQuY29kZSwKICAgIHN1YmplY3Q6IGQuc3ViamVjdCwKICAgIGVuY291bnRlcjogZC5lbmNvdW50ZXIsCiAgICBlZmZlY3RpdmU6IGQuZWZmZWN0aXZlLAogICAgaXNzdWVkOiBkLmlzc3VlZCwKICAgIHNwZWNpbWVuOiBkLnNwZWNpbWVuLAogICAgcmVzdWx0OiBkLnJlc3VsdCwKICAgIGNvbmNsdXNpb246IGQuY29uY2x1c2lvbiwKICAgIGNvbmNsdXNpb25Db2RlOiBkLmNvbmNsdXNpb25Db2RlCiAgfQoKZGVmaW5lIGZ1bmN0aW9uIERpYWdub3N0aWNSZXBvcnRSZXNvdXJjZShkaWFnbm9zdGljUmVwb3J0IERpYWdub3N0aWNSZXBvcnQsIHByb2ZpbGVVUkxzIExpc3Q8RkhJUi5jYW5vbmljYWw+KToKICBkaWFnbm9zdGljUmVwb3J0IGQKICByZXR1cm4gRGlhZ25vc3RpY1JlcG9ydHsKICAgIGlkOiBGSElSLmlke3ZhbHVlOiAnTENSLScgKyBkLmlkfSwKICAgIG1ldGE6IFNoYXJlZFJlc291cmNlLk1ldGFFbGVtZW50KGQsIHByb2ZpbGVVUkxzKSwKICAgIGV4dGVuc2lvbjogZC5leHRlbnNpb24sCiAgICBiYXNlZE9uOiBkLmJhc2VkT24sCiAgICBzdGF0dXM6IGQuc3RhdHVzLAogICAgY2F0ZWdvcnk6IGQuY2F0ZWdvcnksCiAgICBjb2RlOiBkLmNvZGUsCiAgICBzdWJqZWN0OiBkLnN1YmplY3QsCiAgICBlbmNvdW50ZXI6IGQuZW5jb3VudGVyLAogICAgZWZmZWN0aXZlOiBkLmVmZmVjdGl2ZSwKICAgIGlzc3VlZDogZC5pc3N1ZWQsCiAgICBwZXJmb3JtZXI6IGQucGVyZm9ybWVyLAogICAgcmVzdWx0c0ludGVycHJldGVyOiBkLnJlc3VsdHNJbnRlcnByZXRlciwKICAgIHNwZWNpbWVuOiBkLnNwZWNpbWVuLAogICAgcmVzdWx0OiBkLnJlc3VsdCwKICAgIGNvbmNsdXNpb246IGQuY29uY2x1c2lvbiwKICAgIGNvbmNsdXNpb25Db2RlOiBkLmNvbmNsdXNpb25Db2RlCiAgfQoKZGVmaW5lIGZ1bmN0aW9uIEVuY291bnRlckhvc3BpdGFsaXphdGlvbihob3NwaXRhbGl6YXRpb24gRkhJUi5FbmNvdW50ZXIuSG9zcGl0YWxpemF0aW9uKToKICBob3NwaXRhbGl6YXRpb24gaAogIHJldHVybiBGSElSLkVuY291bnRlci5Ib3NwaXRhbGl6YXRpb257CiAgICBvcmlnaW46IGgub3JpZ2luLAogICAgYWRtaXRTb3VyY2U6IGguYWRtaXRTb3VyY2UsCiAgICByZUFkbWlzc2lvbjogaC5yZUFkbWlzc2lvbiwKICAgIGRpZXRQcmVmZXJlbmNlOiBoLmRpZXRQcmVmZXJlbmNlLAogICAgZGlzY2hhcmdlRGlzcG9zaXRpb246IGguZGlzY2hhcmdlRGlzcG9zaXRpb24KICB9CgpkZWZpbmUgZnVuY3Rpb24gRW5jb3VudGVyUmVzb3VyY2UoZW5jb3VudGVyIEVuY291bnRlciwgcHJvZmlsZVVSTHMgTGlzdDxGSElSLmNhbm9uaWNhbD4pOgogIGVuY291bnRlciBlCiAgcmV0dXJuIEVuY291bnRlcnsKICAgIGlkOiBGSElSLmlke3ZhbHVlOiAnTENSLScgKyBlLmlkfSwKICAgIG1ldGE6IFNoYXJlZFJlc291cmNlLk1ldGFFbGVtZW50KGUsIHByb2ZpbGVVUkxzKSwKICAgIGV4dGVuc2lvbjogZS5leHRlbnNpb24sCiAgICBpZGVudGlmaWVyOiBTaGFyZWRSZXNvdXJjZS5FbmNvdW50ZXJJZGVudGlmaWVyKGUuaWRlbnRpZmllciksCiAgICBzdGF0dXM6IGUuc3RhdHVzLAogICAgc3RhdHVzSGlzdG9yeTogU2hhcmVkUmVzb3VyY2UuRW5jb3VudGVyU3RhdHVzSGlzdG9yeShlLnN0YXR1c0hpc3RvcnkpLAogICAgY2xhc3M6IGUuY2xhc3MsCiAgICBjbGFzc0hpc3Rvcnk6IFNoYXJlZFJlc291cmNlLkVuY291bnRlckNsYXNzSGlzdG9yeShlLmNsYXNzSGlzdG9yeSksCiAgICB0eXBlOiBlLnR5cGUsCiAgICBzdWJqZWN0OiBlLnN1YmplY3QsCiAgICBwZXJpb2Q6IGUucGVyaW9kLAogICAgcmVhc29uQ29kZTogZS5yZWFzb25Db2RlLAogICAgZGlhZ25vc2lzOiBTaGFyZWRSZXNvdXJjZS5FbmNvdW50ZXJEaWFnbm9zaXMoZS5kaWFnbm9zaXMpLAogICAgaG9zcGl0YWxpemF0aW9uOiBFbmNvdW50ZXJIb3NwaXRhbGl6YXRpb24oZS5ob3NwaXRhbGl6YXRpb24pLAogICAgbG9jYXRpb246IFNoYXJlZFJlc291cmNlLkVuY291bnRlckxvY2F0aW9uKGUubG9jYXRpb24pLAogICAgcGFydE9mOiBlLnBhcnRPZgogIH0KCmRlZmluZSBmdW5jdGlvbiBMb2NhdGlvblJlc291cmNlKGxvY2F0aW9uIExvY2F0aW9uLCBwcm9maWxlVVJMcyBMaXN0PEZISVIuY2Fub25pY2FsPik6CiAgbG9jYXRpb24gbAogIHJldHVybiBMb2NhdGlvbnsKICAgIGlkOiBGSElSLmlkIHt2YWx1ZTogJ0xDUi0nICsgbC5pZH0sCiAgICBtZXRhOiBTaGFyZWRSZXNvdXJjZS5NZXRhRWxlbWVudChsLCBwcm9maWxlVVJMcyksCiAgICBleHRlbnNpb246IGwuZXh0ZW5zaW9uLAogICAgc3RhdHVzOiBsLnN0YXR1cywKICAgIG5hbWU6IGwubmFtZSwKICAgIGFsaWFzOiBsLmFsaWFzLAogICAgdHlwZTogbC50eXBlLAogICAgcGh5c2ljYWxUeXBlOiBsLnBoeXNpY2FsVHlwZSwKICAgIG1hbmFnaW5nT3JnYW5pemF0aW9uOiBsLm1hbmFnaW5nT3JnYW5pemF0aW9uLAogICAgcGFydE9mOiBsLnBhcnRPZgogIH0KCmRlZmluZSBmdW5jdGlvbiBNZWRpY2F0aW9uUmVxdWVzdFJlc291cmNlKG1lZGljYXRpb25SZXF1ZXN0IE1lZGljYXRpb25SZXF1ZXN0LCBwcm9maWxlVVJMcyBMaXN0PEZISVIuY2Fub25pY2FsPiwgYWNjZXB0ZWRDYXRlZ29yaWVzIExpc3Q8U3lzdGVtLkNvZGU+KToKICBtZWRpY2F0aW9uUmVxdWVzdCBtCiAgcmV0dXJuIE1lZGljYXRpb25SZXF1ZXN0ewogICAgaWQ6IEZISVIuaWQge3ZhbHVlOiAnTENSLScgKyBtLmlkfSwKICAgIG1ldGE6IFNoYXJlZFJlc291cmNlLk1ldGFFbGVtZW50KG1lZGljYXRpb25SZXF1ZXN0LCBwcm9maWxlVVJMcyksCiAgICBleHRlbnNpb246IG0uZXh0ZW5zaW9uLAogICAgc3RhdHVzOiBtLnN0YXR1cywKICAgIHN0YXR1c1JlYXNvbjogbS5zdGF0dXNSZWFzb24sCiAgICBpbnRlbnQ6IG0uaW50ZW50LAogICAgY2F0ZWdvcnk6IEZpbHRlckNvZGVhYmxlQ29uY2VwdHMobS5jYXRlZ29yeSwgYWNjZXB0ZWRDYXRlZ29yaWVzKSwKICAgIHByaW9yaXR5OiBtLnByaW9yaXR5LAogICAgZG9Ob3RQZXJmb3JtOiBtLmRvTm90UGVyZm9ybSwKICAgIHJlcG9ydGVkOiBtLnJlcG9ydGVkLAogICAgbWVkaWNhdGlvbjogbS5tZWRpY2F0aW9uLAogICAgc3ViamVjdDogbS5zdWJqZWN0LAogICAgZW5jb3VudGVyOiBtLmVuY291bnRlciwKICAgIGF1dGhvcmVkT246IG0uYXV0aG9yZWRPbiwKICAgIHJlcXVlc3RlcjogbS5yZXF1ZXN0ZXIsCiAgICByZWNvcmRlcjogbS5yZWNvcmRlciwKICAgIHJlYXNvbkNvZGU6IG0ucmVhc29uQ29kZSwKICAgIHJlYXNvblJlZmVyZW5jZTogbS5yZWFzb25SZWZlcmVuY2UsCiAgICBpbnN0YW50aWF0ZXNDYW5vbmljYWw6IG0uaW5zdGFudGlhdGVzQ2Fub25pY2FsLAogICAgaW5zdGFudGlhdGVzVXJpOiBtLmluc3RhbnRpYXRlc1VyaSwKICAgIGNvdXJzZU9mVGhlcmFweVR5cGU6IG0uY291cnNlT2ZUaGVyYXB5VHlwZSwKICAgIGRvc2FnZUluc3RydWN0aW9uOiBTaGFyZWRSZXNvdXJjZS5NZWRpY2F0aW9uUmVxdWVzdERvc2FnZUluc3RydWN0aW9uKG0uZG9zYWdlSW5zdHJ1Y3Rpb24pCiAgfQoKICBkZWZpbmUgZnVuY3Rpb24gTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uUmVzb3VyY2UobWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uIE1lZGljYXRpb25BZG1pbmlzdHJhdGlvbiwgcHJvZmlsZVVSTHMgTGlzdDxGSElSLmNhbm9uaWNhbD4sIGFjY2VwdGVkQ2F0ZWdvcmllcyBMaXN0PFN5c3RlbS5Db2RlPik6CiAgbWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uIG0KICByZXR1cm4gTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uewogICAgaWQ6IEZISVIuaWQge3ZhbHVlOiAnTENSLScgKyBtLmlkfSwKICAgIG1ldGE6IFNoYXJlZFJlc291cmNlLk1ldGFFbGVtZW50KG0sIHByb2ZpbGVVUkxzKSwKICAgIGV4dGVuc2lvbjogbS5leHRlbnNpb24sCiAgICBpbnN0YW50aWF0ZXM6IG0uaW5zdGFudGlhdGVzLAogICAgcGFydE9mOiBtLnBhcnRPZiwKICAgIHN0YXR1czogbS5zdGF0dXMsCiAgICBzdGF0dXNSZWFzb246IG0uc3RhdHVzUmVhc29uLAogICAgY2F0ZWdvcnk6IEZpbHRlckNvZGVhYmxlQ29uY2VwdHMoe20uY2F0ZWdvcnl9LCBhY2NlcHRlZENhdGVnb3JpZXMpWzBdLAogICAgbWVkaWNhdGlvbjogbS5tZWRpY2F0aW9uLAogICAgc3ViamVjdDogbS5zdWJqZWN0LAogICAgY29udGV4dDogbS5jb250ZXh0LAogICAgc3VwcG9ydGluZ0luZm9ybWF0aW9uOiBtLnN1cHBvcnRpbmdJbmZvcm1hdGlvbiwKICAgIGVmZmVjdGl2ZTogbS5lZmZlY3RpdmUsCiAgICBwZXJmb3JtZXI6IFNoYXJlZFJlc291cmNlLk1lZGljYXRpb25BZG1pbmlzdHJhdGlvblBlcmZvcm1lcihtLnBlcmZvcm1lciksCiAgICByZWFzb25Db2RlOiBtLnJlYXNvbkNvZGUsCiAgICByZWFzb25SZWZlcmVuY2U6IG0ucmVhc29uUmVmZXJlbmNlLAogICAgcmVxdWVzdDogbS5yZXF1ZXN0LAogICAgZGV2aWNlOiBtLmRldmljZSwKICAgIG5vdGU6IG0ubm90ZSwKICAgIGRvc2FnZTogU2hhcmVkUmVzb3VyY2UuTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9uRG9zYWdlKG0uZG9zYWdlKSwKICAgIGV2ZW50SGlzdG9yeTogbS5ldmVudEhpc3RvcnkKICB9CgpkZWZpbmUgZnVuY3Rpb24gT2JzZXJ2YXRpb25MYWJSZWZlcmVuY2VSYW5nZShyZWZlcmVuY2VSYW5nZSBMaXN0PEZISVIuT2JzZXJ2YXRpb24uUmVmZXJlbmNlUmFuZ2U+KToKICByZWZlcmVuY2VSYW5nZSByUgogIHJldHVybiBGSElSLk9ic2VydmF0aW9uLlJlZmVyZW5jZVJhbmdlewogICAgbG93OiByUi5sb3csCiAgICBoaWdoOiByUi5oaWdoLAogICAgdHlwZTogclIudHlwZSwKICAgIGFwcGxpZXNUbzogclIuYXBwbGllc1RvLAogICAgYWdlOiByUi5hZ2UKICB9CgpkZWZpbmUgZnVuY3Rpb24gT2JzZXJ2YXRpb25MYWJSZXNvdXJjZShvYnNlcnZhdGlvbiBPYnNlcnZhdGlvbiwgcHJvZmlsZVVSTHMgTGlzdDxGSElSLmNhbm9uaWNhbD4sIGFjY2VwdGVkQ2F0ZWdvcmllcyBMaXN0PFN5c3RlbS5Db2RlPik6CiAgb2JzZXJ2YXRpb24gbwogIHJldHVybiBPYnNlcnZhdGlvbnsKICAgIGlkOiBGSElSLmlkIHt2YWx1ZTogJ0xDUi0nICsgby5pZH0sCiAgICBtZXRhOiBTaGFyZWRSZXNvdXJjZS5NZXRhRWxlbWVudChvLCBwcm9maWxlVVJMcyksCiAgICBleHRlbnNpb246IG8uZXh0ZW5zaW9uLAogICAgcGFydE9mOiBvLnBhcnRPZiwKICAgIHN0YXR1czogby5zdGF0dXMsCiAgICBjYXRlZ29yeTogRmlsdGVyQ29kZWFibGVDb25jZXB0cyhTaGFyZWRSZXNvdXJjZS5PYnNlcnZhdGlvbkxhYkNhdGVnb3J5KG8uY2F0ZWdvcnkpLCBhY2NlcHRlZENhdGVnb3JpZXMpLAogICAgY29kZTogby5jb2RlLAogICAgc3ViamVjdDogby5zdWJqZWN0LAogICAgZW5jb3VudGVyOiBvLmVuY291bnRlciwKICAgIGVmZmVjdGl2ZTogby5lZmZlY3RpdmUsCiAgICBpc3N1ZWQ6IG8uaXNzdWVkLAogICAgdmFsdWU6IG8udmFsdWUsCiAgICBkYXRhQWJzZW50UmVhc29uOiBvLmRhdGFBYnNlbnRSZWFzb24sCiAgICBpbnRlcnByZXRhdGlvbjogby5pbnRlcnByZXRhdGlvbiwKICAgIGJvZHlTaXRlOiBvLmJvZHlTaXRlLAogICAgbWV0aG9kOiBvLm1ldGhvZCwKICAgIHNwZWNpbWVuOiBvLnNwZWNpbWVuLAogICAgcmVmZXJlbmNlUmFuZ2U6IE9ic2VydmF0aW9uTGFiUmVmZXJlbmNlUmFuZ2Uoby5yZWZlcmVuY2VSYW5nZSksCiAgICBoYXNNZW1iZXI6IG8uaGFzTWVtYmVyLAogICAgZGVyaXZlZEZyb206IG8uZGVyaXZlZEZyb20sCiAgICBjb21wb25lbnQ6IFNoYXJlZFJlc291cmNlLk9ic2VydmF0aW9uQ29tcG9uZW50KG8uY29tcG9uZW50KQogIH0KCmRlZmluZSBmdW5jdGlvbiBPYnNlcnZhdGlvblJlZmVyZW5jZVJhbmdlKHJlZmVyZW5jZVJhbmdlIExpc3Q8RkhJUi5PYnNlcnZhdGlvbi5SZWZlcmVuY2VSYW5nZT4pOgogIHJlZmVyZW5jZVJhbmdlIHJSCiAgcmV0dXJuIEZISVIuT2JzZXJ2YXRpb24uUmVmZXJlbmNlUmFuZ2V7CiAgICBsb3c6IHJSLmxvdywKICAgIGhpZ2g6IHJSLmhpZ2gsCiAgICB0eXBlOiByUi50eXBlLAogICAgYXBwbGllc1RvOiByUi5hcHBsaWVzVG8sCiAgICBhZ2U6IHJSLmFnZQogIH0KCmRlZmluZSBmdW5jdGlvbiBPYnNlcnZhdGlvblJlc291cmNlKG9ic2VydmF0aW9uIE9ic2VydmF0aW9uLCBwcm9maWxlVVJMcyBMaXN0PEZISVIuY2Fub25pY2FsPiwgYWNjZXB0ZWRDYXRlZ29yaWVzIExpc3Q8U3lzdGVtLkNvZGU+KToKICBvYnNlcnZhdGlvbiBvCiAgcmV0dXJuIE9ic2VydmF0aW9uewogICAgaWQ6IEZISVIuaWQge3ZhbHVlOiAnTENSLScgKyBvLmlkfSwKICAgIG1ldGE6IFNoYXJlZFJlc291cmNlLk1ldGFFbGVtZW50KG8sIHByb2ZpbGVVUkxzKSwKICAgIGV4dGVuc2lvbjogby5leHRlbnNpb24sCiAgICBwYXJ0T2Y6IG8ucGFydE9mLAogICAgc3RhdHVzOiBvLnN0YXR1cywKICAgIGNhdGVnb3J5OiBGaWx0ZXJDb2RlYWJsZUNvbmNlcHRzKG8uY2F0ZWdvcnksIGFjY2VwdGVkQ2F0ZWdvcmllcyksCiAgICBjb2RlOiBvLmNvZGUsCiAgICBzdWJqZWN0OiBvLnN1YmplY3QsCiAgICBlbmNvdW50ZXI6IG8uZW5jb3VudGVyLAogICAgZWZmZWN0aXZlOiBvLmVmZmVjdGl2ZSwKICAgIGlzc3VlZDogby5pc3N1ZWQsCiAgICB2YWx1ZTogby52YWx1ZSwKICAgIGRhdGFBYnNlbnRSZWFzb246IG8uZGF0YUFic2VudFJlYXNvbiwKICAgIGludGVycHJldGF0aW9uOiBvLmludGVycHJldGF0aW9uLAogICAgYm9keVNpdGU6IG8uYm9keVNpdGUsCiAgICBtZXRob2Q6IG8ubWV0aG9kLAogICAgc3BlY2ltZW46IG8uc3BlY2ltZW4sCiAgICByZWZlcmVuY2VSYW5nZTogT2JzZXJ2YXRpb25SZWZlcmVuY2VSYW5nZShvLnJlZmVyZW5jZVJhbmdlKSwKICAgIGhhc01lbWJlcjogby5oYXNNZW1iZXIsCiAgICBkZXJpdmVkRnJvbTogby5kZXJpdmVkRnJvbSwKICAgIGNvbXBvbmVudDogU2hhcmVkUmVzb3VyY2UuT2JzZXJ2YXRpb25Db21wb25lbnQoby5jb21wb25lbnQpCiAgfQoKZGVmaW5lIGZ1bmN0aW9uIE9ic2VydmF0aW9uVml0YWxTaWduc0NvZGluZyhjb2RpbmcgTGlzdDxDb2Rpbmc+KToKICBjb2RpbmcgYwogIHJldHVybiBDb2Rpbmd7CiAgICBzeXN0ZW06IGMuc3lzdGVtLAogICAgdmVyc2lvbjogYy52ZXJzaW9uLAogICAgY29kZTogYy5jb2RlLAogICAgZGlzcGxheTogYy5kaXNwbGF5LAogICAgdXNlclNlbGVjdGVkOiBjLnVzZXJTZWxlY3RlZAogIH0KCmRlZmluZSBmdW5jdGlvbiBPYnNlcnZhdGlvblZpdGFsU2lnbnNDYXRlZ29yeShjYXRlZ29yeSBMaXN0PENvZGVhYmxlQ29uY2VwdD4pOgogIGNhdGVnb3J5IGMKICByZXR1cm4gQ29kZWFibGVDb25jZXB0ewogICAgY29kaW5nOiBPYnNlcnZhdGlvblZpdGFsU2lnbnNDb2RpbmcoYy5jb2RpbmcpLAogICAgdGV4dDogYy50ZXh0CiAgfQoKZGVmaW5lIGZ1bmN0aW9uIE9ic2VydmF0aW9uVml0YWxTaWduc0NvbXBvbmVudChjb21wb25lbnQgTGlzdDxGSElSLk9ic2VydmF0aW9uLkNvbXBvbmVudD4pOgogIGNvbXBvbmVudCBjCiAgcmV0dXJuIEZISVIuT2JzZXJ2YXRpb24uQ29tcG9uZW50ewogICAgY29kZTogYy5jb2RlLAogICAgdmFsdWU6IGMudmFsdWUsCiAgICBkYXRhQWJzZW50UmVhc29uOiBjLmRhdGFBYnNlbnRSZWFzb24sCiAgICBpbnRlcnByZXRhdGlvbjogYy5pbnRlcnByZXRhdGlvbiwKICAgIHJlZmVyZW5jZVJhbmdlOiBTaGFyZWRSZXNvdXJjZS5PYnNlcnZhdGlvblJlZmVyZW5jZVJhbmdlKGMucmVmZXJlbmNlUmFuZ2UpCiAgfQoKZGVmaW5lIGZ1bmN0aW9uIE9ic2VydmF0aW9uVml0YWxTaWduc1Jlc291cmNlKG9ic2VydmF0aW9uIE9ic2VydmF0aW9uLCBwcm9maWxlVVJMcyBMaXN0PEZISVIuY2Fub25pY2FsPiwgYWNjZXB0ZWRDYXRlZ29yaWVzIExpc3Q8U3lzdGVtLkNvZGU+KToKICBvYnNlcnZhdGlvbiBvCiAgcmV0dXJuIE9ic2VydmF0aW9uewogICAgaWQ6IEZISVIuaWQge3ZhbHVlOiAnTENSLScgKyBvLmlkfSwKICAgIG1ldGE6IFNoYXJlZFJlc291cmNlLk1ldGFFbGVtZW50KG8sIHByb2ZpbGVVUkxzKSwKICAgIGV4dGVuc2lvbjogby5leHRlbnNpb24sCiAgICBwYXJ0T2Y6IG8ucGFydE9mLAogICAgc3RhdHVzOiBvLnN0YXR1cywKICAgIGNhdGVnb3J5OiBGaWx0ZXJDb2RlYWJsZUNvbmNlcHRzKE9ic2VydmF0aW9uVml0YWxTaWduc0NhdGVnb3J5KG8uY2F0ZWdvcnkpLCBhY2NlcHRlZENhdGVnb3JpZXMpLAogICAgY29kZTogby5jb2RlLAogICAgc3ViamVjdDogby5zdWJqZWN0LAogICAgZm9jdXM6IG8uZm9jdXMsCiAgICBlbmNvdW50ZXI6IG8uZW5jb3VudGVyLAogICAgZWZmZWN0aXZlOiBvLmVmZmVjdGl2ZSwKICAgIGlzc3VlZDogby5pc3N1ZWQsCiAgICBwZXJmb3JtZXI6IG8ucGVyZm9ybWVyLAogICAgdmFsdWU6IG8udmFsdWUsCiAgICBkYXRhQWJzZW50UmVhc29uOiBvLmRhdGFBYnNlbnRSZWFzb24sCiAgICBpbnRlcnByZXRhdGlvbjogby5pbnRlcnByZXRhdGlvbiwKICAgIG5vdGU6IG8ubm90ZSwKICAgIGJvZHlTaXRlOiBvLmJvZHlTaXRlLAogICAgbWV0aG9kOiBvLm1ldGhvZCwKICAgIHNwZWNpbWVuOiBvLnNwZWNpbWVuLAogICAgZGV2aWNlOiBvLmRldmljZSwKICAgIHJlZmVyZW5jZVJhbmdlOiBTaGFyZWRSZXNvdXJjZS5PYnNlcnZhdGlvblJlZmVyZW5jZVJhbmdlKG8ucmVmZXJlbmNlUmFuZ2UpLAogICAgaGFzTWVtYmVyOiBvLmhhc01lbWJlciwKICAgIGRlcml2ZWRGcm9tOiBvLmRlcml2ZWRGcm9tLAogICAgY29tcG9uZW50OiBPYnNlcnZhdGlvblZpdGFsU2lnbnNDb21wb25lbnQoby5jb21wb25lbnQpCiAgfQoKCmRlZmluZSBmdW5jdGlvbiBQcm9jZWR1cmVSZXNvdXJjZShwcm9jZWR1cmUgUHJvY2VkdXJlLCBwcm9maWxlVVJMcyBMaXN0PEZISVIuY2Fub25pY2FsPiwgYWNjZXB0ZWRDYXRlZ29yaWVzIExpc3Q8U3lzdGVtLkNvZGU+KToKICBwcm9jZWR1cmUgcAogIHJldHVybiBQcm9jZWR1cmV7CiAgICBpZDogRkhJUi5pZCB7dmFsdWU6ICdMQ1ItJyArIHAuaWR9LAogICAgbWV0YTogU2hhcmVkUmVzb3VyY2UuTWV0YUVsZW1lbnQocCwgcHJvZmlsZVVSTHMpLAogICAgZXh0ZW5zaW9uOiBwLmV4dGVuc2lvbiwKICAgIGJhc2VkT246IHAuYmFzZWRPbiwKICAgIHBhcnRPZjogcC5wYXJ0T2YsCiAgICBzdGF0dXM6IHAuc3RhdHVzLAogICAgY2F0ZWdvcnk6IEZpbHRlckNvZGVhYmxlQ29uY2VwdHMoe3AuY2F0ZWdvcnl9LCBhY2NlcHRlZENhdGVnb3JpZXMpWzBdLAogICAgY29kZTogcC5jb2RlLAogICAgc3ViamVjdDogcC5zdWJqZWN0LAogICAgZW5jb3VudGVyOiBwLmVuY291bnRlciwKICAgIHBlcmZvcm1lZDogcC5wZXJmb3JtZWQsCiAgICBsb2NhdGlvbjogcC5sb2NhdGlvbiwKICAgIHJlYXNvbkNvZGU6IHAucmVhc29uQ29kZSwKICAgIHJlYXNvblJlZmVyZW5jZTogcC5yZWFzb25SZWZlcmVuY2UsCiAgICBib2R5U2l0ZTogcC5ib2R5U2l0ZQogIH0KCiAgZGVmaW5lIGZ1bmN0aW9uIFNlcnZpY2VSZXF1ZXN0UmVzb3VyY2Uoc2VydmljZVJlcXVlc3QgU2VydmljZVJlcXVlc3QsIHByb2ZpbGVVUkxzIExpc3Q8RkhJUi5jYW5vbmljYWw+LCBhY2NlcHRlZENhdGVnb3JpZXMgTGlzdDxTeXN0ZW0uQ29kZT4pOgogIHNlcnZpY2VSZXF1ZXN0IHNSCiAgcmV0dXJuIFNlcnZpY2VSZXF1ZXN0ewogICAgaWQ6IEZISVIuaWQge3ZhbHVlOiAnTENSLScgKyBzUi5pZH0sCiAgICBtZXRhOiBTaGFyZWRSZXNvdXJjZS5NZXRhRWxlbWVudChzUiwgcHJvZmlsZVVSTHMpLAogICAgZXh0ZW5zaW9uOiBzUi5leHRlbnNpb24sCiAgICBiYXNlZE9uOiBzUi5iYXNlZE9uLAogICAgc3RhdHVzOiBzUi5zdGF0dXMsCiAgICBpbnRlbnQ6IHNSLmludGVudCwKICAgIGNhdGVnb3J5OiBGaWx0ZXJDb2RlYWJsZUNvbmNlcHRzKHNSLmNhdGVnb3J5LCBhY2NlcHRlZENhdGVnb3JpZXMpLAogICAgcHJpb3JpdHk6IHNSLnByaW9yaXR5LAogICAgZG9Ob3RQZXJmb3JtOiBzUi5kb05vdFBlcmZvcm0sCiAgICBjb2RlOiBzUi5jb2RlLAogICAgcXVhbnRpdHk6IHNSLnF1YW50aXR5LAogICAgc3ViamVjdDogc1Iuc3ViamVjdCwKICAgIGVuY291bnRlcjogc1IuZW5jb3VudGVyLAogICAgb2NjdXJyZW5jZTogc1Iub2NjdXJyZW5jZSwKICAgIGFzTmVlZGVkOiBzUi5hc05lZWRlZCwKICAgIGF1dGhvcmVkT246IHNSLmF1dGhvcmVkT24sCiAgICByZXF1ZXN0ZXI6IHNSLnJlcXVlc3RlciwKICAgIHNwZWNpbWVuOiBzUi5zcGVjaW1lbgogIH0KCiAgZGVmaW5lIGZ1bmN0aW9uIFNwZWNpbWVuQ29sbGVjdGlvbihjb2xsZWN0aW9uIEZISVIuU3BlY2ltZW4uQ29sbGVjdGlvbik6CiAgY29sbGVjdGlvbiBjCiAgcmV0dXJuIEZISVIuU3BlY2ltZW4uQ29sbGVjdGlvbnsKICAgIGNvbGxlY3RvcjogYy5jb2xsZWN0b3IsCiAgICBjb2xsZWN0ZWQ6IGMuY29sbGVjdGVkLAogICAgcXVhbnRpdHk6IGMucXVhbnRpdHksCiAgICBib2R5U2l0ZTogYy5ib2R5U2l0ZQogIH0KCiAgZGVmaW5lIGZ1bmN0aW9uIFNwZWNpbWVuUmVzb3VyY2Uoc3BlY2ltZW4gU3BlY2ltZW4sIHByb2ZpbGVVUkxzIExpc3Q8RkhJUi5jYW5vbmljYWw+KToKICBzcGVjaW1lbiBzCiAgcmV0dXJuIFNwZWNpbWVuewogICAgaWQ6IEZISVIuaWQge3ZhbHVlOiAnTENSLScgKyBzLmlkfSwKICAgIG1ldGE6IFNoYXJlZFJlc291cmNlLk1ldGFFbGVtZW50KHMsIHByb2ZpbGVVUkxzKSwKICAgIGV4dGVuc2lvbjogcy5leHRlbnNpb24sCiAgICBpZGVudGlmaWVyOiBzLmlkZW50aWZpZXIsCiAgICBhY2Nlc3Npb25JZGVudGlmaWVyOiBzLmFjY2Vzc2lvbklkZW50aWZpZXIsCiAgICBzdGF0dXM6IHMuc3RhdHVzLAogICAgdHlwZTogcy50eXBlLAogICAgc3ViamVjdDogcy5zdWJqZWN0LAogICAgcGFyZW50OiBzLnBhcmVudCwKICAgIHJlcXVlc3Q6IHMucmVxdWVzdCwKICAgIGNvbGxlY3Rpb246IFNwZWNpbWVuQ29sbGVjdGlvbihzLmNvbGxlY3Rpb24pLAogICAgbm90ZTogcy5ub3RlCiAgfQ==",
      "url" : "http://www.cdc.gov/nhsn/fhirportal/dqm/ig/Library-NHSNAcuteCareHospitalMonthlyInitialPopulation.cql"
    }
  ]
}