dQM CMS Content Implementation Guide
2026.1.0 - CI Build

dQM CMS Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2026.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/dqm-content-cms-2026/ and changes regularly. See the Directory of published versions

: HOB Elements - XML Representation

Page standards status: Informative Maturity Level: 1

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="HOB"/>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><p><b style="color: maroon">Exception generating Narrative: Unable to Parse HTML - node 'DateTime' has unexpected content ' ' (last text = ' 
  default Interval[@2026-01-01T00:00:00.0, @2026-01-31T23:59:59.999]

context Patient

/*
ED/OBS encounter: Any patient visit to an emergency department (ED) or observation (OBS) location. One patient visit equals one encounter. ED/OBS are considered outpatient locations.
Hospital Stay: NHSN defines a hospital stay to be inclusive of any: (a) ED/OBS encounters, (b) inpatient admissions, or (c) ED/OBS encounters that lead to inpatient admissions (within 1 hour of ED/OBS encounters).
Inpatient admission: For NHSN reporting purposes, the ‘date admitted to the facility’ is hospital day (HD) 1. NHSN defines an inpatient as any patient cared for or housed on an inpatient location. Local status may differ from NHSN definition; all days spent in an inpatient unit, regardless of local admission status and/or billing status are included in the counts of admissions and inpatient days. For NHSN reporting purposes, the date admitted to the facility is the calendar date that the patient physically locates to an inpatient location.
Measurement Period: Time period selected for report generation/metric calculation
Adult: Patients who are ≥18 years old on the calendar day of the start of the Hospital Stay
Pediatric: Patients who are ' at line 205 column 30</b></p></div>
  </text>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
    <valueInteger value="1"/>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
    <valueCode value="cds"/>
  </extension>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
    <valueCode value="informative"/>
  </extension>
  <url value="https://madie.cms.gov/Library/HOB"/>
  <version value="2026.1.0"/>
  <name value="HOB"/>
  <title value="HOB Elements"/>
  <status value="draft"/>
  <experimental value="true"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2026-06-16T17:19:32+00:00"/>
  <description
               value="DRAFT Data elements used in the calculation of Hospital-onset Bacteremia and Fungemia measures."/>
  <topic>
    <text value="FHIR"/>
  </topic>
  <topic>
    <text value="CQL"/>
  </topic>
  <content>
    <contentType value="text/cql"/>
    <data
          value="LyoKRHJhZnQgQ1FMIHJlcHJlc2VudGF0aW9uIG9mIEhvc3BpdGFsIE9uc2V0IEJhY3RlcmVtaWEgYW5kIEZ1bmdlbWlhIFN1cnZlaWxsYW5jZSBNZWFzdXJlCiovCmxpYnJhcnkgSE9CCgp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnIGNhbGxlZCBGSElSSGVscGVycwppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSQ29tbW9uIHZlcnNpb24gJzIuMC4wJyBjYWxsZWQgRkhJUkNvbW1vbgoKaW5jbHVkZSBDUU1Db21tb24gdmVyc2lvbiAnNS4xLjAwMCcgY2FsbGVkIENRTUNvbW1vbgppbmNsdWRlIEhPQk9yZ2FuaXNtVGF4b25vbXkKCnZhbHVlc2V0ICJCYWN0ZXJpYSBhbmQgRnVuZ2kgLSBIT0IgU3BlY2lmaWMiOiAnVEJEJwp2YWx1ZXNldCAiQmFjdGVyaWFsIFNraW4gQ29tbWVuc2FscyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTQyMjIuMjQuNy4yODEnIHZlcnNpb24gJzIwMjQxMDAzJwp2YWx1ZXNldCAiQ29tbXVuaXR5LWFzc29jaWF0ZWQgT3JnYW5pc21zIC0gSE9CIFNwZWNpZmljIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExNDIyMi4yNC43LjExNzAnIHZlcnNpb24gJzIwMjUwOTMwJwp2YWx1ZXNldCAiQmFjdGVyaWFsIGFuZCBGdW5nYWwgQmxvb2QgQ3VsdHVyZSBUZXN0cyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExOTAuNjMnIHZlcnNpb24gJzIwMjIwNzIxJwp2YWx1ZXNldCAiRW50ZXJhbCBNZWRpY2F0aW9uIFJvdXRlIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTE5MC43NCcgdmVyc2lvbiAnMjAyNDA2MTgnCnZhbHVlc2V0ICJJbnRyYXZlbm91cyBNZWRpY2F0aW9uIFJvdXRlIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTE5MC43NScgdmVyc2lvbiAnMjAyNDA2MTgnCnZhbHVlc2V0ICJTcGVjaW1lbiBUeXBlIC0gQmxvb2QiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTE0MjIyLjI0LjcuMzE1JyB2ZXJzaW9uICcyMDI1MDkyOScKdmFsdWVzZXQgIkFic29sdXRlIE5ldXRyb3BoaWxzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExNDIyMi4yNC43LjExNzMnIHZlcnNpb24gJzIwMjUwOTEzJwp2YWx1ZXNldCAiQW50aW1pY3JvYmlhbCBNZWRpY2F0aW9ucyAtIEkuViBBbnRpYmFjdGVyaWFscyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTQyMjIuMjQuNy4xMjIwJyB2ZXJzaW9uICcyMDI2MDEyMicKdmFsdWVzZXQgIkFudGltaWNyb2JpYWwgTWVkaWNhdGlvbnMgLSBPcmFsIEFudGliYWN0ZXJpYWxzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExNDIyMi4yNC43LjEyMjAnIHZlcnNpb24gJzIwMjUwODEzJwp2YWx1ZXNldCAiQW50aW1pY3JvYmlhbHMgZm9yIEJhY3RlcmVtaWEgYW5kIEZ1bmdlbWlhIFN1cnZlaWxsYW5jZSBNb2R1bGUiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTE0MjIyLjI0LjcuMTIyMCcgdmVyc2lvbiAnMjAyNjAyMDUnCgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZVRpbWU+IAogIGRlZmF1bHQgSW50ZXJ2YWxbQDIwMjYtMDEtMDFUMDA6MDA6MDAuMCwgQDIwMjYtMDEtMzFUMjM6NTk6NTkuOTk5XQoKY29udGV4dCBQYXRpZW50CgovKgpFRC9PQlMgZW5jb3VudGVyOiBBbnkgcGF0aWVudCB2aXNpdCB0byBhbiBlbWVyZ2VuY3kgZGVwYXJ0bWVudCAoRUQpIG9yIG9ic2VydmF0aW9uIChPQlMpIGxvY2F0aW9uLiBPbmUgcGF0aWVudCB2aXNpdCBlcXVhbHMgb25lIGVuY291bnRlci4gRUQvT0JTIGFyZSBjb25zaWRlcmVkIG91dHBhdGllbnQgbG9jYXRpb25zLgpIb3NwaXRhbCBTdGF5OiBOSFNOIGRlZmluZXMgYSBob3NwaXRhbCBzdGF5IHRvIGJlIGluY2x1c2l2ZSBvZiBhbnk6IChhKSBFRC9PQlMgZW5jb3VudGVycywgKGIpIGlucGF0aWVudCBhZG1pc3Npb25zLCBvciAoYykgRUQvT0JTIGVuY291bnRlcnMgdGhhdCBsZWFkIHRvIGlucGF0aWVudCBhZG1pc3Npb25zICh3aXRoaW4gMSBob3VyIG9mIEVEL09CUyBlbmNvdW50ZXJzKS4KSW5wYXRpZW50IGFkbWlzc2lvbjogRm9yIE5IU04gcmVwb3J0aW5nIHB1cnBvc2VzLCB0aGUg4oCYZGF0ZSBhZG1pdHRlZCB0byB0aGUgZmFjaWxpdHnigJkgaXMgaG9zcGl0YWwgZGF5IChIRCkgMS4gTkhTTiBkZWZpbmVzIGFuIGlucGF0aWVudCBhcyBhbnkgcGF0aWVudCBjYXJlZCBmb3Igb3IgaG91c2VkIG9uIGFuIGlucGF0aWVudCBsb2NhdGlvbi4gTG9jYWwgc3RhdHVzIG1heSBkaWZmZXIgZnJvbSBOSFNOIGRlZmluaXRpb247IGFsbCBkYXlzIHNwZW50IGluIGFuIGlucGF0aWVudCB1bml0LCByZWdhcmRsZXNzIG9mIGxvY2FsIGFkbWlzc2lvbiBzdGF0dXMgYW5kL29yIGJpbGxpbmcgc3RhdHVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgY291bnRzIG9mIGFkbWlzc2lvbnMgYW5kIGlucGF0aWVudCBkYXlzLiBGb3IgTkhTTiByZXBvcnRpbmcgcHVycG9zZXMsIHRoZSBkYXRlIGFkbWl0dGVkIHRvIHRoZSBmYWNpbGl0eSBpcyB0aGUgY2FsZW5kYXIgZGF0ZSB0aGF0IHRoZSBwYXRpZW50IHBoeXNpY2FsbHkgbG9jYXRlcyB0byBhbiBpbnBhdGllbnQgbG9jYXRpb24uCk1lYXN1cmVtZW50IFBlcmlvZDogVGltZSBwZXJpb2Qgc2VsZWN0ZWQgZm9yIHJlcG9ydCBnZW5lcmF0aW9uL21ldHJpYyBjYWxjdWxhdGlvbgpBZHVsdDogUGF0aWVudHMgd2hvIGFyZSDiiaUxOCB5ZWFycyBvbGQgb24gdGhlIGNhbGVuZGFyIGRheSBvZiB0aGUgc3RhcnQgb2YgdGhlIEhvc3BpdGFsIFN0YXkKUGVkaWF0cmljOiBQYXRpZW50cyB3aG8gYXJlIDwgMTggeWVhcnMgb2xkIG9uIHRoZSBjYWxlbmRhciBkYXkgb2YgdGhlIHN0YXJ0IG9mIHRoZSBIb3NwaXRhbCBTdGF5Ck5JQ1U6IFBhdGllbnRzIHdobyBhcmUgaG91c2VkIGluIGEgTklDVSBsb2NhdGlvbiBhdCB0aGUgdGltZSBvZiBpbmRleCBibG9vZCBjdWx0dXJlIGNvbGxlY3Rpb24KT25jb2xvZ3kvTmV1dHJvcGVuaWE6IFBhdGllbnQgZWl0aGVyIDEpIGxvY2F0ZWQgaW4gYW4gT25jb2xvZ3kgd2FyZCwgb3IgMikgd2l0aCBuZXV0cm9wZW5pYSBkZWZpbmUgYW4gYWJzb2x1dGUgbmV1dHJvcGhpbCBjb3VudCAoQU5DKSA8MTAwMCBjZWxsL21pY3JvTCBvYnNlcnZlZCBmb3Ig4omlMiBkYXlzIGluIGEgKy8tIDctZGF5IHdpbmRvdyBwZXJpb2QgYXJvdW5kIHRoZSBpbmRleCBibG9vZCBjdWx0dXJlCk8tQ09COiBPdXRwYXRpZW50IENvbW11bml0eS1vbnNldCBCYWN0ZXJlbWlhICYgRnVuZ2VtaWEgRXZlbnQKQ09COiBDb21tdW5pdHktb25zZXQgQmFjdGVyZW1pYSAmIEZ1bmdlbWlhIEV2ZW50CkhPQjogSG9zcGl0YWwtb25zZXQgQmFjdGVyZW1pYSAmIEZ1bmdlbWlhIEV2ZW50CiovCgovKgp8T25zZXQgfE1ldHJpYyB8TnVtZXJhdG9yIHxEZW5vbWluYXRvciB8TXVsdGlwbGllciB8Tm90ZXMgCnxPdXRwYXRpZW50IENvbW11bml0eSBPbnNldCB8Ty1DT0IgUHJldmFsZW5jZSBSYXRlIHxOdW1iZXIgb2Ygb3V0cGF0aWVudCBPLUNPQiBldmVudHMgb2NjdXJyaW5nIHdpdGhpbiB0aGUgbWVhc3VyZW1lbnQgcGVyaW9kIHxOdW1iZXIgb2Ygb3V0cGF0aWVudCAoRUQvT0JTKSBlbmNvdW50ZXJzIG9jY3VycmluZyB3aXRoaW4gdGhlIG1lYXN1cmVtZW50IHBlcmlvZCB8eCAxMDAgfCB8CnxJbnBhdGllbnQgQ29tbXVuaXR5IE9uc2V0IHxJbnBhdGllbnQgQ09CIFByZXZhbGVuY2UgUmF0ZSB8TnVtYmVyIG9mIGlucGF0aWVudCBDT0IgZXZlbnRzIG9jY3VycmluZyB3aXRoaW4gdGhlIG1lYXN1cmVtZW50IHBlcmlvZCB8TnVtYmVyIG9mIGlucGF0aWVudCBzdGF5cyB3aGVyZSBhdCBsZWFzdCBvbmUgb2YgdGhlIGZpcnN0IHRocmVlIGlucGF0aWVudCBjYWxlbmRhciBkYXlzIGZhbGxzIHdpdGhpbiB0aGUgbWVhc3VyZW1lbnQgcGVyaW9kIHx4IDEwMCB8IHwKfEhvc3BpdGFsIE9uc2V0IHxIT0IgQ3J1ZGUgUmlzayB8TnVtYmVyIG9mIGlucGF0aWVudCBzdGF5cyB3aXRoIGF0IGxlYXN0IG9uZSBIT0IgZXZlbnQgb2NjdXJyaW5nIHdpdGhpbiB0aGUgbWVhc3VyZW1lbnQgcGVyaW9kIHxOdW1iZXIgb2YgaW5wYXRpZW50IHN0YXlzIHdoZXJlIHRoZXJlIGFyZSBhbnkgaW5wYXRpZW50IGRheXMgZWxpZ2libGUgZm9yIGEgaG9zcGl0YWwtb25zZXQgZXZlbnQgZHVyaW5nIHRoZSBtZWFzdXJlbWVudCBwZXJpb2QgfHggMTAwIHxUaGUgZGVub21pbmF0b3IgZm9yIEhPQiBhZG1pc3Npb24gcmlzayB3aWxsIGluY2x1ZGUgb25seSB0aG9zZSBpbnBhdGllbnQgc3RheXMgd2hvIHdlcmUgZWxpZ2libGUgZm9yIGFuIEhPQiBldmVudCBpbiB0aGUgbWVhc3VyZW1lbnQgcGVyaW9kOiAxLiBTdGF5cyB3aGVyZSBkYXkgNCAob3IgbGF0ZXIpIG9mIHRoZWlyIGFkbWlzc2lvbiBvY2N1cnJlZCBkdXJpbmcgdGhlIG1lYXN1cmVtZW50IHBlcmlvZC4gMi4gSWYgYW4gZXZlbnQgb2NjdXJzLCB0aGVuIGEgc3RheSB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgZGVub21pbmF0b3Igb2Ygc3Vic2VxdWVudCBtZWFzdXJlbWVudCBwZXJpb2RzLiB8CnxeIHxIT0IgSW5jaWRlbmNlIERlbnNpdHkgfE51bWJlciBvZiBIT0IgZXZlbnRzIHxOdW1iZXIgb2YgaW5wYXRpZW50IGRheXMgZWxpZ2libGUgZm9yIGEgaG9zcGl0YWwtb25zZXQgZXZlbnQgZHVyaW5nIHRoZSBtZWFzdXJlbWVudCBwZXJpb2QgfHggMTAsMDAwIHxFbGlnaWJsZSBwYXRpZW50IGRheXMgYXJlIGRlZmluZWQgYXM6IDEuIElucGF0aWVudCBkYXkgNCB1bnRpbCBkaXNjaGFyZ2Ugb3IgaW5kZXggSE9CIGV2ZW50IGRhdGUuIHwKKi8KCi8qCk1ldHJpYzogTy1DT0IgUHJldmFsZW5jZSBSYXRlCk51bWVyYXRvcjogTnVtYmVyIG9mIG91dHBhdGllbnQgTy1DT0IgZXZlbnRzIG9jY3VycmluZyB3aXRoaW4gdGhlIG1lYXN1cmVtZW50IHBlcmlvZApEZW5vbWluYXRvcjogTnVtYmVyIG9mIG91dHBhdGllbnQgKEVEL09CUykgZW5jb3VudGVycyBvY2N1cnJpbmcgd2l0aGluIHRoZSBtZWFzdXJlbWVudCBwZXJpb2QKKi8KCi8vZGVmaW5lIGZ1bmN0aW9uICJEZW5vbWluYXRvciBPYnNlcnZhdGlvbiIoKToKLy8gIENvdW50KCJPdXRwYXRpZW50IEVuY291bnRlciBEdXJpbmcgTWVhc3VyZW1lbnQgUGVyaW9kIikKCi8vZGVmaW5lIGZ1bmN0aW9uICJOdW1lcmF0b3IgT2JzZXJ2YXRpb24iKCk6Ci8vICBDb3VudCgiTy1DT0IgRXZlbnQgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCIpCgpkZWZpbmUgIkJhY3RlcmlhbCBhbmQgRnVuZ2FsIEJsb29kIEN1bHR1cmUgVGVzdCBSZXN1bHRzIjoKICBbT2JzZXJ2YXRpb246ICJCYWN0ZXJpYWwgYW5kIEZ1bmdhbCBCbG9vZCBDdWx0dXJlIFRlc3RzIl0gTwogICAgd2hlcmUgTy5pc0xhYm9yYXRvcnkoKQogICAgICBhbmQgTy5pc1Jlc3VsdGVkKCkKCmRlZmluZSAiQmFjdGVyZW1pYSBvciBGdW5nZW1pYSBSZXN1bHQiOgogICJCYWN0ZXJpYWwgYW5kIEZ1bmdhbCBCbG9vZCBDdWx0dXJlIFRlc3QgUmVzdWx0cyIgUgogICAgd2hlcmUgKFIudmFsdWUgaW4gIkJhY3RlcmlhIGFuZCBGdW5naSAtIEhPQiBTcGVjaWZpYyIpCiAgICAgIGFuZCBub3QgKFIudmFsdWUgaW4gIkJhY3RlcmlhbCBTa2luIENvbW1lbnNhbHMiKQoKZGVmaW5lICJCYWN0ZXJlbWlhIG9yIEZ1bmdlbWlhIFJlc3VsdCBXaXRoIFNwZWNpbWVuIjoKICBmcm9tCiAgICAiQmFjdGVyZW1pYSBvciBGdW5nZW1pYSBSZXN1bHQiIFIsCiAgICBbU3BlY2ltZW46ICJTcGVjaW1lbiBUeXBlIC0gQmxvb2QiXSBTCiAgICB3aGVyZSBSLnNwZWNpbWVuLnJlZmVyZW5jZXMoUykKICAgIHJldHVybiB7CiAgICAgIHJlc3VsdDogUiwKICAgICAgc3BlY2ltZW46IFMKICAgIH0KCi8vIEFzc2VydGlvbiBpcyB0aGF0IHRoZXJlIGlzIG5ldmVyIG1vcmUgdGhhbiBvbmUgRUQvT2JzZXJ2YXRpb24gcHJlY2VkaW5nIGFuIGlucGF0aWVudCBzdGF5Ci8vIGkuZS4gRUQgLT4gRUQgLT4gSW5wYXRpZW50LCBFRCAtPiBPYnNlcnZhdGlvbiAtPiBFRCAtPiBJbnBhdGllbnQsIE9ic2VydmF0aW9uIC0+IElucGF0aWVudCBhcmUgYWxsIGNvbWJpbmF0aW9ucyB0aGF0IHdpbGwgbmV2ZXIgYXBwZWFyCi8vIEJ1aWxkIGVuY291bnRlciBub3JtYWxpemF0aW9uIGxvZ2ljCi8vIEVuY291bnRlci5jbGFzc0hpc3RvcnkgaXMgbm90IHBvcHVsYXRlZAovLyBFbmNvdW50ZXIgbm9ybWFsaXphdGlvbgpkZWZpbmUgIk91dHBhdGllbnQgRW5jb3VudGVyIjoKICBbRW5jb3VudGVyOiBDUU1Db21tb24uIkVtZXJnZW5jeSBEZXBhcnRtZW50IFZpc2l0Il0gRUQKICAgIGxldCBvYnNlcnZhdGlvbkVuY291bnRlcjogRmlyc3QoCiAgICAgIFtFbmNvdW50ZXI6IENRTUNvbW1vbi4iT2JzZXJ2YXRpb24gU2VydmljZXMiXSBPCiAgICAgICAgd2hlcmUgTy5wZXJpb2Qgc3RhcnRzIDEgaG91ciBvciBsZXNzIG9uIG9yIGJlZm9yZSBlbmQgb2YgRUQucGVyaW9kCiAgICAgICAgc29ydCBieSBzdGFydCBvZiBwZXJpb2QKICAgICksCiAgICBlbmRPZlN0YXk6IENvYWxlc2NlKGVuZCBvZiBvYnNlcnZhdGlvbkVuY291bnRlci5wZXJpb2QsIGVuZCBvZiBFRC5wZXJpb2QpLAogICAgaW5wYXRpZW50RW5jb3VudGVyOiBGaXJzdCgKICAgICAgW0VuY291bnRlcjogQ1FNQ29tbW9uLiJFbmNvdW50ZXIgSW5wYXRpZW50Il0gRQogICAgICAgIHdoZXJlIEUucGVyaW9kIHN0YXJ0cyAxIGhvdXIgb3IgbGVzcyBvbiBvciBiZWZvcmUgZW5kT2ZTdGF5CiAgICApCiAgcmV0dXJuIHsKICAgIGVkRW5jb3VudGVyOiBFRCwKICAgIG9ic2VydmF0aW9uRW5jb3VudGVyOiBvYnNlcnZhdGlvbkVuY291bnRlciwKICAgIGlucGF0aWVudEVuY291bnRlcjogaW5wYXRpZW50RW5jb3VudGVyLAogICAgb3V0cGF0aWVudFN0YXk6IEludGVydmFsW3N0YXJ0IG9mIEVELnBlcmlvZCwgQ29hbGVzY2Uoc3RhcnQgb2YgaW5wYXRpZW50RW5jb3VudGVyLnBlcmlvZCwgZW5kT2ZTdGF5KV0sCiAgICBpbnBhdGllbnRTdGF5OiBpbnBhdGllbnRFbmNvdW50ZXIucGVyaW9kCiAgfQoKZGVmaW5lICJJbnBhdGllbnQgRW5jb3VudGVyIjoKICBbRW5jb3VudGVyOiBDUU1Db21tb24uIkVuY291bnRlciBJbnBhdGllbnQiXSBFCiAgICBsZXQgb2JzZXJ2YXRpb25FbmNvdW50ZXI6IExhc3QoCiAgICAgIFtFbmNvdW50ZXI6IENRTUNvbW1vbi4iT2JzZXJ2YXRpb24gU2VydmljZXMiXSBPCiAgICAgICAgd2hlcmUgTy5wZXJpb2QgZW5kcyAxIGhvdXIgb3IgbGVzcyBvbiBvciBiZWZvcmUgc3RhcnQgb2YgRS5wZXJpb2QKICAgICAgICBzb3J0IGJ5IGVuZCBvZiBwZXJpb2QKICAgICksCiAgICB2aXNpdFN0YXJ0OiBDb2FsZXNjZShzdGFydCBvZiBvYnNlcnZhdGlvbkVuY291bnRlci5wZXJpb2QsIHN0YXJ0IG9mIEUucGVyaW9kKSwKICAgIGVkRW5jb3VudGVyOiBMYXN0KAogICAgICBbRW5jb3VudGVyOiBDUU1Db21tb24uIkVtZXJnZW5jeSBEZXBhcnRtZW50IFZpc2l0Il0gRUQKICAgICAgICB3aGVyZSBFRC5wZXJpb2QgZW5kcyAxIGhvdXIgb3IgbGVzcyBvbiBvciBiZWZvcmUgdmlzaXRTdGFydAogICAgICAgIHNvcnQgYnkgZW5kIG9mIHBlcmlvZAogICAgKSwKICAgIG91dHBhdGllbnRTdGF5OgogICAgICBpZiBvYnNlcnZhdGlvbkVuY291bnRlciBpcyBudWxsIGFuZCBlZEVuY291bnRlciBpcyBudWxsIHRoZW4KICAgICAgICBudWxsCiAgICAgIGVsc2UKICAgICAgICBJbnRlcnZhbFtDb2FsZXNjZShzdGFydCBvZiBlZEVuY291bnRlci5wZXJpb2QsIHN0YXJ0IG9mIG9ic2VydmF0aW9uRW5jb3VudGVyLnBlcmlvZCksIHN0YXJ0IG9mIEUucGVyaW9kXQogICAgcmV0dXJuIHsKICAgICAgZWRFbmNvdW50ZXI6IGVkRW5jb3VudGVyLAogICAgICBvYnNlcnZhdGlvbkVuY291bnRlcjogb2JzZXJ2YXRpb25FbmNvdW50ZXIsCiAgICAgIGlucGF0aWVudEVuY291bnRlcjogRSwKICAgICAgb3V0cGF0aWVudFN0YXk6IG91dHBhdGllbnRTdGF5LAogICAgICBpbnBhdGllbnRTdGF5OiBFLnBlcmlvZAogICAgfQoKLy8gVE9ETzogVVNDREkrIFF1YWxpdHkvVVNDREkgR2FwIChTcGVjaW1lbiBDb2xsZWN0aW9uIFRpbWUpCmRlZmluZSAiRW5jb3VudGVyIFdpdGggTy1DT0IgUmVzdWx0IjoKICAiT3V0cGF0aWVudCBFbmNvdW50ZXIiIEUKICAgIGxldCByZXN1bHRzOiAoCiAgICAgICJCYWN0ZXJlbWlhIG9yIEZ1bmdlbWlhIFJlc3VsdCBXaXRoIFNwZWNpbWVuIiBSUyAKICAgICAgICB3aGVyZSBSUy5zcGVjaW1lbi5jb2xsZWN0aW9uLmNvbGxlY3RlZC50b0ludGVydmFsKCkKICAgICAgICAgIGR1cmluZyBFLm91dHBhdGllbnRTdGF5CiAgICApCiAgICB3aGVyZSBleGlzdHMgKHJlc3VsdHMpCiAgICByZXR1cm4gewogICAgICBlZEVuY291bnRlcjogRS5lZEVuY291bnRlciwKICAgICAgb2JzZXJ2YXRpb25FbmNvdW50ZXI6IEUub2JzZXJ2YXRpb25FbmNvdW50ZXIsCiAgICAgIGlucGF0aWVudEVuY291bnRlcjogRS5pbnBhdGllbnRFbmNvdW50ZXIsCiAgICAgIG91dHBhdGllbnRTdGF5OiBFLm91dHBhdGllbnRTdGF5LAogICAgICBpbnBhdGllbnRTdGF5OiBFLmlucGF0aWVudFN0YXksCiAgICAgIGluZGV4RGF0ZTogTWluKHJlc3VsdHMgUiByZXR1cm4gc3RhcnQgb2YgUi5zcGVjaW1lbi5jb2xsZWN0aW9uLmNvbGxlY3RlZC50b0ludGVydmFsKCkpLAogICAgICBvcmdhbmlzbXM6IHJlc3VsdHMgUiByZXR1cm4gUi5yZXN1bHQudmFsdWUgYXMgQ29kZWFibGVDb25jZXB0CiAgICB9CgpkZWZpbmUgIkVuY291bnRlciBXaXRoIENPQiBSZXN1bHQiOgogICJJbnBhdGllbnQgRW5jb3VudGVyIiBFCiAgICBsZXQgCiAgICAgIG9DT0I6ICJFbmNvdW50ZXIgV2l0aCBPLUNPQiBSZXN1bHQiIG9DT0JFbmNvdW50ZXIgd2hlcmUgRS5pbnBhdGllbnRFbmNvdW50ZXIuaWQgPSBvQ09CRW5jb3VudGVyLmlucGF0aWVudEVuY291bnRlci5pZCwKICAgICAgcmVzdWx0czogKAogICAgICAgICJCYWN0ZXJlbWlhIG9yIEZ1bmdlbWlhIFJlc3VsdCBXaXRoIFNwZWNpbWVuIiBSUwogICAgICAgICAgd2hlcmUgUlMuc3BlY2ltZW4uY29sbGVjdGlvbi5jb2xsZWN0ZWQudG9JbnRlcnZhbCgpCiAgICAgICAgICAgIGR1cmluZyBkYXkgb2YgSW50ZXJ2YWxbc3RhcnQgb2YgRS5pbnBhdGllbnRTdGF5LCBzdGFydCBvZiBFLmlucGF0aWVudFN0YXkgKyAzIGRheXNdCiAgICAgICAgICAgIGFuZCBub3QgZXhpc3RzICgKICAgICAgICAgICAgICBvQ09CLm9yZ2FuaXNtcyBPCiAgICAgICAgICAgICAgICB3aGVyZSBPLm9yZ2FuaXNtTWF0Y2hlcyhSUy5yZXN1bHQudmFsdWUgYXMgQ29kZWFibGVDb25jZXB0KQogICAgICAgICAgICApCiAgICApCiAgICB3aGVyZSBleGlzdHMgKHJlc3VsdHMpCiAgICByZXR1cm4gewogICAgICBlZEVuY291bnRlcjogRS5lZEVuY291bnRlciwKICAgICAgb2JzZXJ2YXRpb25FbmNvdW50ZXI6IEUub2JzZXJ2YXRpb25FbmNvdW50ZXIsCiAgICAgIGlucGF0aWVudEVuY291bnRlcjogRS5pbnBhdGllbnRFbmNvdW50ZXIsCiAgICAgIG91dHBhdGllbnRTdGF5OiBFLm91dHBhdGllbnRTdGF5LAogICAgICBpbnBhdGllbnRTdGF5OiBFLmlucGF0aWVudFN0YXksCiAgICAgIGluZGV4RGF0ZTogTWluKHJlc3VsdHMgUiByZXR1cm4gc3RhcnQgb2YgUi5zcGVjaW1lbi5jb2xsZWN0aW9uLmNvbGxlY3RlZC50b0ludGVydmFsKCkpLAogICAgICBvcmdhbmlzbXM6IHJlc3VsdHMgUiByZXR1cm4gUi5yZXN1bHQudmFsdWUgYXMgQ29kZWFibGVDb25jZXB0CiAgICB9CgpkZWZpbmUgIkVuY291bnRlciB3aXRoIEhPQiBSZXN1bHQiOgogICJJbnBhdGllbnQgRW5jb3VudGVyIiBFCiAgICBsZXQgCiAgICAgIG9DT0I6ICJFbmNvdW50ZXIgV2l0aCBPLUNPQiBSZXN1bHQiIG9DT0JFbmNvdW50ZXIgd2hlcmUgRS5pbnBhdGllbnRFbmNvdW50ZXIuaWQgPSBvQ09CRW5jb3VudGVyLmlucGF0aWVudEVuY291bnRlci5pZCwKICAgICAgQ09COiAiRW5jb3VudGVyIFdpdGggQ09CIFJlc3VsdCIgQ09CRW5jb3VudGVyIHdoZXJlIEUuaW5wYXRpZW50RW5jb3VudGVyLmlkID0gQ09CRW5jb3VudGVyLmlucGF0aWVudEVuY291bnRlci5pZCwKICAgICAgcmVzdWx0czogKAogICAgICAgICJCYWN0ZXJlbWlhIG9yIEZ1bmdlbWlhIFJlc3VsdCBXaXRoIFNwZWNpbWVuIiBSUwogICAgICAgICAgd2hlcmUgUlMuc3BlY2ltZW4uY29sbGVjdGlvbi5jb2xsZWN0ZWQudG9JbnRlcnZhbCgpCiAgICAgICAgICAgIGR1cmluZyBkYXkgb2YgSW50ZXJ2YWxbc3RhcnQgb2YgRS5pbnBhdGllbnRTdGF5ICsgNCBkYXlzLCBlbmQgb2YgRS5pbnBhdGllbnRTdGF5XQogICAgICAgICAgICBhbmQgbm90IGV4aXN0cyAoCiAgICAgICAgICAgICAgb0NPQi5vcmdhbmlzbXMgTwogICAgICAgICAgICAgICAgd2hlcmUgTy5vcmdhbmlzbU1hdGNoZXMoUlMucmVzdWx0LnZhbHVlIGFzIENvZGVhYmxlQ29uY2VwdCkKICAgICAgICAgICAgKQogICAgICAgICAgICBhbmQgbm90IGV4aXN0cyAoCiAgICAgICAgICAgICAgQ09CLm9yZ2FuaXNtcyBPCiAgICAgICAgICAgICAgICB3aGVyZSBPLm9yZ2FuaXNtTWF0Y2hlcyhSUy5yZXN1bHQudmFsdWUgYXMgQ29kZWFibGVDb25jZXB0KQogICAgICAgICAgICApCiAgICApCiAgICB3aGVyZSBkdXJhdGlvbiBpbiBkYXlzIG9mIEUuaW5wYXRpZW50U3RheSA+IDMKICAgICAgYW5kIGV4aXN0cyAocmVzdWx0cykKICAgIHJldHVybiB7CiAgICAgIGVkRW5jb3VudGVyOiBFLmVkRW5jb3VudGVyLAogICAgICBvYnNlcnZhdGlvbkVuY291bnRlcjogRS5vYnNlcnZhdGlvbkVuY291bnRlciwKICAgICAgaW5wYXRpZW50RW5jb3VudGVyOiBFLmlucGF0aWVudEVuY291bnRlciwKICAgICAgb3V0cGF0aWVudFN0YXk6IEUub3V0cGF0aWVudFN0YXksCiAgICAgIGlucGF0aWVudFN0YXk6IEUuaW5wYXRpZW50U3RheSwKICAgICAgaW5kZXhEYXRlOiBNaW4ocmVzdWx0cyBSIHJldHVybiBzdGFydCBvZiBSLnNwZWNpbWVuLmNvbGxlY3Rpb24uY29sbGVjdGVkLnRvSW50ZXJ2YWwoKSksCiAgICAgIG9yZ2FuaXNtczogcmVzdWx0cyBSIHJldHVybiBSLnJlc3VsdC52YWx1ZSBhcyBDb2RlYWJsZUNvbmNlcHQKICAgIH0KCgo="/>
  </content>
</Library>