{
  "resourceType" : "Library",
  "id" : "CMS137FHIRSUDTxInitEngagement",
  "text" : {
    "status" : "extensions",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n  <table class=\"narrative-table\">\n    <tbody>\n<tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\"><a name=\"metadata\"> </a>Metadata</th>\n\n\n</tr>\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Version</th>\n\n\n\n<td class=\"content-container\">1.1.000</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Status</th>\n\n\n\n<td class=\"content-container\">Draft</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Type</th>\n\n\n\n<td class=\"content-container\">\n    <a href=\"http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html\">http://terminology.hl7.org/CodeSystem/library-type</a>#logic-library\n\n\n</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\"><a name=\"parameters\"> </a>Parameters</th>\n\n\n</tr>\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Parameter</th>\n\n\n\n<td class=\"content-container\">None</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n  <tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\">Library Content</th>\n\n\n</tr>\n  \n    \n    <tr>\n      <th scope=\"row\" class=\"row-header\">CQL Content</th>\n      <td>\n        <a name=\"cql-content\"> </a>\n        <pre style=\"border: none;\" class=\"content-container highlight language-cql\"><code class=\"language-cql\">/*\nNOTE: For use by March 2026 US Realm Connectathon participants for internal use only. Not for use or distribution in commercial products.\n*/\nlibrary CMS137FHIRSUDTxInitEngagement version '1.1.000'\n\nusing USQualityCore version '0.1.0-cibuild'\nusing USCore version '6.1.0-derived'\nusing FHIR version '4.0.1'\n\ninclude hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers\ninclude hl7.fhir.uv.cql.FHIRCommon version '2.0.0' called FHIRCommon\ninclude hl7.fhir.us.cql.CumulativeMedicationDuration version '2.0.0-ballot' called CMD\ninclude hl7.fhir.us.cql.USCoreCommon version '2.0.0-ballot' called USCoreCommon\ninclude hl7.fhir.us.cql.USCoreElements version '2.0.0-ballot' called USCoreElements\n\ninclude Hospice version '7.1.000' called Hospice\ninclude CQMCommon version '5.1.000' called CQMCommon\ninclude USQualityCoreCommon version '0.1.0-cibuild' called USQualityCoreCommon\ninclude SupplementalDataElements version '6.1.000' called SDE\ninclude Status version '2.1.000' called Status\n\nvalueset &quot;Detoxification Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1059'\nvalueset &quot;Discharge Services Hospital Inpatient&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1007'\nvalueset &quot;Discharge Services Hospital Inpatient Same Day Discharge&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1006'\nvalueset &quot;Emergency Department Evaluation and Management Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1010'\nvalueset &quot;Initial Hospital Inpatient Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1004'\nvalueset &quot;Office Visit&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001'\nvalueset &quot;Psych Visit Psychotherapy&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1496'\nvalueset &quot;Substance Use Disorder&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.106.12.1001'\nvalueset &quot;Substance Use Disorder Long Acting Medication&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1149'\nvalueset &quot;Substance Use Disorder Long Acting Medication Administration&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1156'\nvalueset &quot;Substance Use Disorder Short Acting Medication&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1150'\nvalueset &quot;Substance Use Disorder Short Acting Medication Administration&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.1157'\nvalueset &quot;Substance Use Disorder Treatment&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.106.12.1005'\nvalueset &quot;Telephone Visits&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1080'\nvalueset &quot;Virtual Encounter&quot;: 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1089'\n\nparameter &quot;Measurement Period&quot; Interval&lt;DateTime&gt;\n  default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)\n\ncontext Patient\n\ndefine &quot;Initial Population&quot;:\n  AgeInYearsAt(date from start of &quot;Measurement Period&quot;) &gt;= 13\n    and &quot;First SUD Episode During Measurement Period&quot; is not null\n    and not exists &quot;History of SUD Diagnosis or Treatment&quot;\n\ndefine &quot;First SUD Episode During Measurement Period&quot;:\n  First((&quot;Qualifying Encounters&quot;) ValidEncounters\n      with(([ConditionEncounterDiagnosis: &quot;Substance Use Disorder&quot;]).verified()) SUDDiagnosis\n        such that ValidEncounters.period during &quot;Measurement Period&quot;\n          and SUDDiagnosis.prevalenceInterval ( ) starts during ValidEncounters.period\n          and SUDDiagnosis.prevalenceInterval ( ) starts 47 days or more before day of \n          end of &quot;Measurement Period&quot;\n      return {\n        ValidEncounterDate: date from start of ValidEncounters.period,\n        ValidEncounter: ValidEncounters\n      }\n      sort by ValidEncounterDate\n  ).ValidEncounter\n\ndefine &quot;Qualifying Encounters&quot;:\n  ( [Encounter: &quot;Office Visit&quot;]\n      union [Encounter: &quot;Emergency Department Evaluation and Management Visit&quot;]\n      union [Encounter: &quot;Detoxification Visit&quot;]\n      union [Encounter: &quot;Initial Hospital Inpatient Visit&quot;]\n      union [Encounter: &quot;Discharge Services Hospital Inpatient Same Day Discharge&quot;]\n      union [Encounter: &quot;Discharge Services Hospital Inpatient&quot;]\n      union [Encounter: &quot;Telephone Visits&quot;]\n      union [Encounter: &quot;Virtual Encounter&quot;]\n  ).isEncounterPerformed ( )\n\ndefine &quot;History of SUD Diagnosis or Treatment&quot;:\n  ( ( ( [Procedure: &quot;Substance Use Disorder Treatment&quot;]\n        union [Procedure: &quot;Psych Visit Psychotherapy&quot;]\n        union [Procedure: &quot;Substance Use Disorder Long Acting Medication Administration&quot;]\n        union [Procedure: &quot;Substance Use Disorder Short Acting Medication Administration&quot;]\n    ).isInterventionPerformed ( ) ) Interventions\n      with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode\n        such that Interventions.performed.toInterval ( ) starts 60 days or less before day of date from start of FirstSUDEpisode.period\n  )\n    union ( ( ( &quot;Qualifying Encounters&quot;\n        except &quot;Emergency Department or Detoxification Visit&quot; ) QualifyingEncounter\n        where QualifyingEncounter.encounterDiagnosis ( ).code in &quot;Substance Use Disorder&quot; ) SUDEncounterDx\n        with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode\n          such that SUDEncounterDx.period starts 60 days or less before day of date from start of FirstSUDEpisode.period\n    )\n    union ( ( ( [MedicationRequest: &quot;Substance Use Disorder Long Acting Medication&quot;]\n          union [MedicationRequest: &quot;Substance Use Disorder Short Acting Medication&quot;]\n      ).isMedicationOrder ( ) ) SUDMedication\n        with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode\n          such that SUDMedication.authoredOn 60 days or less before day of date from start of FirstSUDEpisode.period\n    )\n\ndefine &quot;Emergency Department or Detoxification Visit&quot;:\n  ( [Encounter: &quot;Emergency Department Evaluation and Management Visit&quot;]\n      union [Encounter: &quot;Detoxification Visit&quot;]\n  ).isEncounterPerformed ( )\n\ndefine &quot;Denominator&quot;:\n  &quot;Initial Population&quot;\n\ndefine &quot;Denominator Exclusions&quot;:\n  Hospice.&quot;Has Hospice Services&quot;\n\ndefine &quot;Numerator 1&quot;:\n  exists &quot;Treatment Initiation With Non Medication Intervention Dates&quot;\n    or exists &quot;Treatment Initiation With Medication Order Dates&quot;\n\ndefine &quot;Treatment Initiation With Non Medication Intervention Dates&quot;:\n  ( &quot;Psychosocial Visit&quot; PsychosocialVisitProcedure\n      let treatmentDate: date from start of PsychosocialVisitProcedure.performed.toInterval ( )\n      with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode\n        such that treatmentDate during Interval[date from start of FirstSUDEpisode.period, date from start of FirstSUDEpisode.period + 14 days )\n          and PsychosocialVisitProcedure.id !~ FirstSUDEpisode.id\n      return all treatmentDate\n  )\n    union ( &quot;Psychosocial Visit&quot; PsychosocialVisitEncounter\n        let treatmentDate: date from start of PsychosocialVisitEncounter.period\n        with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode\n          such that treatmentDate during Interval[date from start of FirstSUDEpisode.period, date from start of FirstSUDEpisode.period + 14 days )\n            and PsychosocialVisitEncounter.id !~ FirstSUDEpisode.id\n        return all treatmentDate\n    )\n\ndefine &quot;Psychosocial Visit&quot;:\n  ( ( [Procedure: &quot;Substance Use Disorder Treatment&quot;]\n        union [Procedure: &quot;Psych Visit Psychotherapy&quot;]\n    ).isInterventionPerformed ( )\n  )\n    union ( ( [Encounter: &quot;Telephone Visits&quot;]\n        union [Encounter: &quot;Virtual Encounter&quot;]\n    ).isEncounterPerformed ( ) ) TelehealthEncounter\n      where TelehealthEncounter.encounterDiagnosis ( ).code in &quot;Substance Use Disorder&quot;\n\ndefine &quot;Treatment Initiation With Medication Order Dates&quot;:\n  ( ( ( [MedicationRequest: &quot;Substance Use Disorder Short Acting Medication&quot;]\n        union [MedicationRequest: &quot;Substance Use Disorder Long Acting Medication&quot;]\n    ).isMedicationOrder ( ) ) SUDMedication\n      let treatmentDate: date from start of SUDMedication.authoredOn.toInterval ( )\n      with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode\n        such that treatmentDate during Interval[date from start of FirstSUDEpisode.period, date from start of FirstSUDEpisode.period + 14 days )\n      return all treatmentDate\n  )\n    union ( ( ( [Procedure: &quot;Substance Use Disorder Short Acting Medication Administration&quot;]\n          union [Procedure: &quot;Substance Use Disorder Long Acting Medication Administration&quot;]\n      ).isProcedurePerformed ( ) ) SUDMedAdministration\n        let treatmentDate: date from start of SUDMedAdministration.performed.toInterval ( )\n        with &quot;First SUD Episode During Measurement Period&quot; FirstSUDEpisode\n          such that treatmentDate during Interval[date from start of FirstSUDEpisode.period, date from start of FirstSUDEpisode.period + 14 days )\n        return all treatmentDate\n    )\n\ndefine &quot;Has Two or More Treatment Engagements With Short Acting Medication or Non Medication Intervention&quot;:\n  Count(((&quot;Psychosocial Visit&quot;\n        union(([Procedure: &quot;Substance Use Disorder Short Acting Medication Administration&quot;]).isProcedurePerformed())) ShortActingTreatment\n        with(Min(&quot;Treatment Initiation With Non Medication Intervention Dates&quot;\n            union &quot;Treatment Initiation With Medication Order Dates&quot;\n        )) InitiationTreatmentDate\n          such that date from start of ShortActingTreatment.performed.toInterval() 34 days or less after InitiationTreatmentDate\n            or date from start of ShortActingTreatment.period 34 days or less after InitiationTreatmentDate\n        return all ShortActingTreatment\n    )\n      union((([MedicationRequest: &quot;Substance Use Disorder Short Acting Medication&quot;]).isMedicationOrder()) ShortActingMedOrder\n          with(Min(&quot;Treatment Initiation With Non Medication Intervention Dates&quot;\n              union &quot;Treatment Initiation With Medication Order Dates&quot;\n          )) InitiationTreatmentDate\n            such that date from start of ShortActingMedOrder.authoredOn.toInterval() 34 days or less after InitiationTreatmentDate\n          return all ShortActingMedOrder\n      )\n  ) &gt;= 2\n\ndefine &quot;Numerator 2&quot;:\n  &quot;Has Treatment Engagement With Long Acting Medication&quot;\n    or &quot;Has Two or More Treatment Engagements With Short Acting Medication or Non Medication Intervention&quot;\n\ndefine &quot;Has Treatment Engagement With Long Acting Medication&quot;:\n  exists ( ( ( ( [MedicationRequest: &quot;Substance Use Disorder Long Acting Medication&quot;] ).isMedicationOrder ( ) ) LongActingMedOrder\n        with ( Min(&quot;Treatment Initiation With Non Medication Intervention Dates&quot;\n            union &quot;Treatment Initiation With Medication Order Dates&quot;\n        ) ) InitiationTreatmentDate\n          such that date from start of LongActingMedOrder.authoredOn.toInterval ( ) 34 days or less after InitiationTreatmentDate\n    )\n      union ( ( ( [Procedure: &quot;Substance Use Disorder Long Acting Medication Administration&quot;] ).isProcedurePerformed ( ) ) LongActingTreatment\n          with ( Min(&quot;Treatment Initiation With Non Medication Intervention Dates&quot;\n              union &quot;Treatment Initiation With Medication Order Dates&quot;\n          ) ) InitiationTreatmentDate\n            such that date from start of LongActingTreatment.performed.toInterval ( ) 34 days or less after InitiationTreatmentDate\n      )\n  )\n\ndefine &quot;SDE Ethnicity&quot;:\n  SDE.&quot;SDE Ethnicity&quot;\n\ndefine &quot;SDE Payer&quot;:\n  SDE.&quot;SDE Payer&quot;\n\ndefine &quot;SDE Race&quot;:\n  SDE.&quot;SDE Race&quot;\n\ndefine &quot;SDE Sex&quot;:\n  SDE.&quot;SDE Sex&quot;\n\ndefine &quot;Stratification 1&quot;:\n  AgeInYearsAt(date from start of &quot;Measurement Period&quot;) in Interval[13, 17]\n\ndefine &quot;Stratification 2&quot;:\n  AgeInYearsAt(date from start of &quot;Measurement Period&quot;) in Interval[18, 64]\n\ndefine &quot;Stratification 3&quot;:\n  AgeInYearsAt(date from start of &quot;Measurement Period&quot;) &gt;= 65</code></pre>\n      </td>\n    </tr>\n    \n  \n\n\n\n<tr>\n  <th colspan=\"2\" scope=\"row\" class=\"row-header\">Generated using version 0.5.6 of the sample-content-ig Liquid templates</th>\n</tr>\n\n    </tbody>\n  </table>\n</div>"
  },
  "extension" : [{
    "url" : "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem",
    "valueReference" : {
      "reference" : "Device/cqf-tooling"
    }
  }],
  "url" : "https://madie.cms.gov/Library/CMS137FHIRSUDTxInitEngagement",
  "version" : "1.1.000",
  "name" : "CMS137FHIRSUDTxInitEngagement",
  "status" : "draft",
  "type" : {
    "coding" : [{
      "system" : "http://terminology.hl7.org/CodeSystem/library-type",
      "code" : "logic-library"
    }]
  },
  "date" : "2026-09-19T16:31:14+00:00",
  "content" : [{
    "contentType" : "text/cql",
    "data" : "LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVMxMzdGSElSU1VEVHhJbml0RW5nYWdlbWVudCB2ZXJzaW9uICcxLjEuMDAwJwoKdXNpbmcgVVNRdWFsaXR5Q29yZSB2ZXJzaW9uICcwLjEuMC1jaWJ1aWxkJwp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNi4xLjAtZGVyaXZlZCcKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkNvbW1vbiB2ZXJzaW9uICcyLjAuMCcgY2FsbGVkIEZISVJDb21tb24KaW5jbHVkZSBobDcuZmhpci51cy5jcWwuQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbiB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBDTUQKaW5jbHVkZSBobDcuZmhpci51cy5jcWwuVVNDb3JlQ29tbW9uIHZlcnNpb24gJzIuMC4wLWJhbGxvdCcgY2FsbGVkIFVTQ29yZUNvbW1vbgppbmNsdWRlIGhsNy5maGlyLnVzLmNxbC5VU0NvcmVFbGVtZW50cyB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBVU0NvcmVFbGVtZW50cwoKaW5jbHVkZSBIb3NwaWNlIHZlcnNpb24gJzcuMS4wMDAnIGNhbGxlZCBIb3NwaWNlCmluY2x1ZGUgQ1FNQ29tbW9uIHZlcnNpb24gJzUuMS4wMDAnIGNhbGxlZCBDUU1Db21tb24KaW5jbHVkZSBVU1F1YWxpdHlDb3JlQ29tbW9uIHZlcnNpb24gJzAuMS4wLWNpYnVpbGQnIGNhbGxlZCBVU1F1YWxpdHlDb3JlQ29tbW9uCmluY2x1ZGUgU3VwcGxlbWVudGFsRGF0YUVsZW1lbnRzIHZlcnNpb24gJzYuMS4wMDAnIGNhbGxlZCBTREUKaW5jbHVkZSBTdGF0dXMgdmVyc2lvbiAnMi4xLjAwMCcgY2FsbGVkIFN0YXR1cwoKdmFsdWVzZXQgIkRldG94aWZpY2F0aW9uIFZpc2l0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDU5Jwp2YWx1ZXNldCAiRGlzY2hhcmdlIFNlcnZpY2VzIEhvc3BpdGFsIElucGF0aWVudCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAwNycKdmFsdWVzZXQgIkRpc2NoYXJnZSBTZXJ2aWNlcyBIb3NwaXRhbCBJbnBhdGllbnQgU2FtZSBEYXkgRGlzY2hhcmdlIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDA2Jwp2YWx1ZXNldCAiRW1lcmdlbmN5IERlcGFydG1lbnQgRXZhbHVhdGlvbiBhbmQgTWFuYWdlbWVudCBWaXNpdCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAxMCcKdmFsdWVzZXQgIkluaXRpYWwgSG9zcGl0YWwgSW5wYXRpZW50IFZpc2l0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDA0Jwp2YWx1ZXNldCAiT2ZmaWNlIFZpc2l0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDAxJwp2YWx1ZXNldCAiUHN5Y2ggVmlzaXQgUHN5Y2hvdGhlcmFweSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4xNDk2Jwp2YWx1ZXNldCAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDYuMTIuMTAwMScKdmFsdWVzZXQgIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgTG9uZyBBY3RpbmcgTWVkaWNhdGlvbiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMTQ5Jwp2YWx1ZXNldCAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciBMb25nIEFjdGluZyBNZWRpY2F0aW9uIEFkbWluaXN0cmF0aW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExNTYnCnZhbHVlc2V0ICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIFNob3J0IEFjdGluZyBNZWRpY2F0aW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExNTAnCnZhbHVlc2V0ICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIFNob3J0IEFjdGluZyBNZWRpY2F0aW9uIEFkbWluaXN0cmF0aW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjExNTcnCnZhbHVlc2V0ICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIFRyZWF0bWVudCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDYuMTIuMTAwNScKdmFsdWVzZXQgIlRlbGVwaG9uZSBWaXNpdHMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwODAnCnZhbHVlc2V0ICJWaXJ0dWFsIEVuY291bnRlciI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTA4OScKCnBhcmFtZXRlciAiTWVhc3VyZW1lbnQgUGVyaW9kIiBJbnRlcnZhbDxEYXRlVGltZT4KICBkZWZhdWx0IEludGVydmFsW0AyMDI2LTAxLTAxVDAwOjAwOjAwLjAwMFosIEAyMDI3LTAxLTAxVDAwOjAwOjAwLjAwMFopCgpjb250ZXh0IFBhdGllbnQKCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIjoKICBBZ2VJblllYXJzQXQoZGF0ZSBmcm9tIHN0YXJ0IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiKSA+PSAxMwogICAgYW5kICJGaXJzdCBTVUQgRXBpc29kZSBEdXJpbmcgTWVhc3VyZW1lbnQgUGVyaW9kIiBpcyBub3QgbnVsbAogICAgYW5kIG5vdCBleGlzdHMgIkhpc3Rvcnkgb2YgU1VEIERpYWdub3NpcyBvciBUcmVhdG1lbnQiCgpkZWZpbmUgIkZpcnN0IFNVRCBFcGlzb2RlIER1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiOgogIEZpcnN0KCgiUXVhbGlmeWluZyBFbmNvdW50ZXJzIikgVmFsaWRFbmNvdW50ZXJzCiAgICAgIHdpdGgoKFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIl0pLnZlcmlmaWVkKCkpIFNVRERpYWdub3NpcwogICAgICAgIHN1Y2ggdGhhdCBWYWxpZEVuY291bnRlcnMucGVyaW9kIGR1cmluZyAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICAgICAgYW5kIFNVRERpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIHN0YXJ0cyBkdXJpbmcgVmFsaWRFbmNvdW50ZXJzLnBlcmlvZAogICAgICAgICAgYW5kIFNVRERpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIHN0YXJ0cyA0NyBkYXlzIG9yIG1vcmUgYmVmb3JlIGRheSBvZiAKICAgICAgICAgIGVuZCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICByZXR1cm4gewogICAgICAgIFZhbGlkRW5jb3VudGVyRGF0ZTogZGF0ZSBmcm9tIHN0YXJ0IG9mIFZhbGlkRW5jb3VudGVycy5wZXJpb2QsCiAgICAgICAgVmFsaWRFbmNvdW50ZXI6IFZhbGlkRW5jb3VudGVycwogICAgICB9CiAgICAgIHNvcnQgYnkgVmFsaWRFbmNvdW50ZXJEYXRlCiAgKS5WYWxpZEVuY291bnRlcgoKZGVmaW5lICJRdWFsaWZ5aW5nIEVuY291bnRlcnMiOgogICggW0VuY291bnRlcjogIk9mZmljZSBWaXNpdCJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJFbWVyZ2VuY3kgRGVwYXJ0bWVudCBFdmFsdWF0aW9uIGFuZCBNYW5hZ2VtZW50IFZpc2l0Il0KICAgICAgdW5pb24gW0VuY291bnRlcjogIkRldG94aWZpY2F0aW9uIFZpc2l0Il0KICAgICAgdW5pb24gW0VuY291bnRlcjogIkluaXRpYWwgSG9zcGl0YWwgSW5wYXRpZW50IFZpc2l0Il0KICAgICAgdW5pb24gW0VuY291bnRlcjogIkRpc2NoYXJnZSBTZXJ2aWNlcyBIb3NwaXRhbCBJbnBhdGllbnQgU2FtZSBEYXkgRGlzY2hhcmdlIl0KICAgICAgdW5pb24gW0VuY291bnRlcjogIkRpc2NoYXJnZSBTZXJ2aWNlcyBIb3NwaXRhbCBJbnBhdGllbnQiXQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiVGVsZXBob25lIFZpc2l0cyJdCiAgICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJWaXJ0dWFsIEVuY291bnRlciJdCiAgKS5pc0VuY291bnRlclBlcmZvcm1lZCAoICkKCmRlZmluZSAiSGlzdG9yeSBvZiBTVUQgRGlhZ25vc2lzIG9yIFRyZWF0bWVudCI6CiAgKCAoICggW1Byb2NlZHVyZTogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgVHJlYXRtZW50Il0KICAgICAgICB1bmlvbiBbUHJvY2VkdXJlOiAiUHN5Y2ggVmlzaXQgUHN5Y2hvdGhlcmFweSJdCiAgICAgICAgdW5pb24gW1Byb2NlZHVyZTogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgTG9uZyBBY3RpbmcgTWVkaWNhdGlvbiBBZG1pbmlzdHJhdGlvbiJdCiAgICAgICAgdW5pb24gW1Byb2NlZHVyZTogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgU2hvcnQgQWN0aW5nIE1lZGljYXRpb24gQWRtaW5pc3RyYXRpb24iXQogICAgKS5pc0ludGVydmVudGlvblBlcmZvcm1lZCAoICkgKSBJbnRlcnZlbnRpb25zCiAgICAgIHdpdGggIkZpcnN0IFNVRCBFcGlzb2RlIER1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiIEZpcnN0U1VERXBpc29kZQogICAgICAgIHN1Y2ggdGhhdCBJbnRlcnZlbnRpb25zLnBlcmZvcm1lZC50b0ludGVydmFsICggKSBzdGFydHMgNjAgZGF5cyBvciBsZXNzIGJlZm9yZSBkYXkgb2YgZGF0ZSBmcm9tIHN0YXJ0IG9mIEZpcnN0U1VERXBpc29kZS5wZXJpb2QKICApCiAgICB1bmlvbiAoICggKCAiUXVhbGlmeWluZyBFbmNvdW50ZXJzIgogICAgICAgIGV4Y2VwdCAiRW1lcmdlbmN5IERlcGFydG1lbnQgb3IgRGV0b3hpZmljYXRpb24gVmlzaXQiICkgUXVhbGlmeWluZ0VuY291bnRlcgogICAgICAgIHdoZXJlIFF1YWxpZnlpbmdFbmNvdW50ZXIuZW5jb3VudGVyRGlhZ25vc2lzICggKS5jb2RlIGluICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIiApIFNVREVuY291bnRlckR4CiAgICAgICAgd2l0aCAiRmlyc3QgU1VEIEVwaXNvZGUgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCIgRmlyc3RTVURFcGlzb2RlCiAgICAgICAgICBzdWNoIHRoYXQgU1VERW5jb3VudGVyRHgucGVyaW9kIHN0YXJ0cyA2MCBkYXlzIG9yIGxlc3MgYmVmb3JlIGRheSBvZiBkYXRlIGZyb20gc3RhcnQgb2YgRmlyc3RTVURFcGlzb2RlLnBlcmlvZAogICAgKQogICAgdW5pb24gKCAoICggW01lZGljYXRpb25SZXF1ZXN0OiAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciBMb25nIEFjdGluZyBNZWRpY2F0aW9uIl0KICAgICAgICAgIHVuaW9uIFtNZWRpY2F0aW9uUmVxdWVzdDogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgU2hvcnQgQWN0aW5nIE1lZGljYXRpb24iXQogICAgICApLmlzTWVkaWNhdGlvbk9yZGVyICggKSApIFNVRE1lZGljYXRpb24KICAgICAgICB3aXRoICJGaXJzdCBTVUQgRXBpc29kZSBEdXJpbmcgTWVhc3VyZW1lbnQgUGVyaW9kIiBGaXJzdFNVREVwaXNvZGUKICAgICAgICAgIHN1Y2ggdGhhdCBTVURNZWRpY2F0aW9uLmF1dGhvcmVkT24gNjAgZGF5cyBvciBsZXNzIGJlZm9yZSBkYXkgb2YgZGF0ZSBmcm9tIHN0YXJ0IG9mIEZpcnN0U1VERXBpc29kZS5wZXJpb2QKICAgICkKCmRlZmluZSAiRW1lcmdlbmN5IERlcGFydG1lbnQgb3IgRGV0b3hpZmljYXRpb24gVmlzaXQiOgogICggW0VuY291bnRlcjogIkVtZXJnZW5jeSBEZXBhcnRtZW50IEV2YWx1YXRpb24gYW5kIE1hbmFnZW1lbnQgVmlzaXQiXQogICAgICB1bmlvbiBbRW5jb3VudGVyOiAiRGV0b3hpZmljYXRpb24gVmlzaXQiXQogICkuaXNFbmNvdW50ZXJQZXJmb3JtZWQgKCApCgpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIgoKZGVmaW5lICJEZW5vbWluYXRvciBFeGNsdXNpb25zIjoKICBIb3NwaWNlLiJIYXMgSG9zcGljZSBTZXJ2aWNlcyIKCmRlZmluZSAiTnVtZXJhdG9yIDEiOgogIGV4aXN0cyAiVHJlYXRtZW50IEluaXRpYXRpb24gV2l0aCBOb24gTWVkaWNhdGlvbiBJbnRlcnZlbnRpb24gRGF0ZXMiCiAgICBvciBleGlzdHMgIlRyZWF0bWVudCBJbml0aWF0aW9uIFdpdGggTWVkaWNhdGlvbiBPcmRlciBEYXRlcyIKCmRlZmluZSAiVHJlYXRtZW50IEluaXRpYXRpb24gV2l0aCBOb24gTWVkaWNhdGlvbiBJbnRlcnZlbnRpb24gRGF0ZXMiOgogICggIlBzeWNob3NvY2lhbCBWaXNpdCIgUHN5Y2hvc29jaWFsVmlzaXRQcm9jZWR1cmUKICAgICAgbGV0IHRyZWF0bWVudERhdGU6IGRhdGUgZnJvbSBzdGFydCBvZiBQc3ljaG9zb2NpYWxWaXNpdFByb2NlZHVyZS5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkKICAgICAgd2l0aCAiRmlyc3QgU1VEIEVwaXNvZGUgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCIgRmlyc3RTVURFcGlzb2RlCiAgICAgICAgc3VjaCB0aGF0IHRyZWF0bWVudERhdGUgZHVyaW5nIEludGVydmFsW2RhdGUgZnJvbSBzdGFydCBvZiBGaXJzdFNVREVwaXNvZGUucGVyaW9kLCBkYXRlIGZyb20gc3RhcnQgb2YgRmlyc3RTVURFcGlzb2RlLnBlcmlvZCArIDE0IGRheXMgKQogICAgICAgICAgYW5kIFBzeWNob3NvY2lhbFZpc2l0UHJvY2VkdXJlLmlkICF+IEZpcnN0U1VERXBpc29kZS5pZAogICAgICByZXR1cm4gYWxsIHRyZWF0bWVudERhdGUKICApCiAgICB1bmlvbiAoICJQc3ljaG9zb2NpYWwgVmlzaXQiIFBzeWNob3NvY2lhbFZpc2l0RW5jb3VudGVyCiAgICAgICAgbGV0IHRyZWF0bWVudERhdGU6IGRhdGUgZnJvbSBzdGFydCBvZiBQc3ljaG9zb2NpYWxWaXNpdEVuY291bnRlci5wZXJpb2QKICAgICAgICB3aXRoICJGaXJzdCBTVUQgRXBpc29kZSBEdXJpbmcgTWVhc3VyZW1lbnQgUGVyaW9kIiBGaXJzdFNVREVwaXNvZGUKICAgICAgICAgIHN1Y2ggdGhhdCB0cmVhdG1lbnREYXRlIGR1cmluZyBJbnRlcnZhbFtkYXRlIGZyb20gc3RhcnQgb2YgRmlyc3RTVURFcGlzb2RlLnBlcmlvZCwgZGF0ZSBmcm9tIHN0YXJ0IG9mIEZpcnN0U1VERXBpc29kZS5wZXJpb2QgKyAxNCBkYXlzICkKICAgICAgICAgICAgYW5kIFBzeWNob3NvY2lhbFZpc2l0RW5jb3VudGVyLmlkICF+IEZpcnN0U1VERXBpc29kZS5pZAogICAgICAgIHJldHVybiBhbGwgdHJlYXRtZW50RGF0ZQogICAgKQoKZGVmaW5lICJQc3ljaG9zb2NpYWwgVmlzaXQiOgogICggKCBbUHJvY2VkdXJlOiAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciBUcmVhdG1lbnQiXQogICAgICAgIHVuaW9uIFtQcm9jZWR1cmU6ICJQc3ljaCBWaXNpdCBQc3ljaG90aGVyYXB5Il0KICAgICkuaXNJbnRlcnZlbnRpb25QZXJmb3JtZWQgKCApCiAgKQogICAgdW5pb24gKCAoIFtFbmNvdW50ZXI6ICJUZWxlcGhvbmUgVmlzaXRzIl0KICAgICAgICB1bmlvbiBbRW5jb3VudGVyOiAiVmlydHVhbCBFbmNvdW50ZXIiXQogICAgKS5pc0VuY291bnRlclBlcmZvcm1lZCAoICkgKSBUZWxlaGVhbHRoRW5jb3VudGVyCiAgICAgIHdoZXJlIFRlbGVoZWFsdGhFbmNvdW50ZXIuZW5jb3VudGVyRGlhZ25vc2lzICggKS5jb2RlIGluICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIgoKZGVmaW5lICJUcmVhdG1lbnQgSW5pdGlhdGlvbiBXaXRoIE1lZGljYXRpb24gT3JkZXIgRGF0ZXMiOgogICggKCAoIFtNZWRpY2F0aW9uUmVxdWVzdDogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgU2hvcnQgQWN0aW5nIE1lZGljYXRpb24iXQogICAgICAgIHVuaW9uIFtNZWRpY2F0aW9uUmVxdWVzdDogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgTG9uZyBBY3RpbmcgTWVkaWNhdGlvbiJdCiAgICApLmlzTWVkaWNhdGlvbk9yZGVyICggKSApIFNVRE1lZGljYXRpb24KICAgICAgbGV0IHRyZWF0bWVudERhdGU6IGRhdGUgZnJvbSBzdGFydCBvZiBTVURNZWRpY2F0aW9uLmF1dGhvcmVkT24udG9JbnRlcnZhbCAoICkKICAgICAgd2l0aCAiRmlyc3QgU1VEIEVwaXNvZGUgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCIgRmlyc3RTVURFcGlzb2RlCiAgICAgICAgc3VjaCB0aGF0IHRyZWF0bWVudERhdGUgZHVyaW5nIEludGVydmFsW2RhdGUgZnJvbSBzdGFydCBvZiBGaXJzdFNVREVwaXNvZGUucGVyaW9kLCBkYXRlIGZyb20gc3RhcnQgb2YgRmlyc3RTVURFcGlzb2RlLnBlcmlvZCArIDE0IGRheXMgKQogICAgICByZXR1cm4gYWxsIHRyZWF0bWVudERhdGUKICApCiAgICB1bmlvbiAoICggKCBbUHJvY2VkdXJlOiAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciBTaG9ydCBBY3RpbmcgTWVkaWNhdGlvbiBBZG1pbmlzdHJhdGlvbiJdCiAgICAgICAgICB1bmlvbiBbUHJvY2VkdXJlOiAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciBMb25nIEFjdGluZyBNZWRpY2F0aW9uIEFkbWluaXN0cmF0aW9uIl0KICAgICAgKS5pc1Byb2NlZHVyZVBlcmZvcm1lZCAoICkgKSBTVURNZWRBZG1pbmlzdHJhdGlvbgogICAgICAgIGxldCB0cmVhdG1lbnREYXRlOiBkYXRlIGZyb20gc3RhcnQgb2YgU1VETWVkQWRtaW5pc3RyYXRpb24ucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApCiAgICAgICAgd2l0aCAiRmlyc3QgU1VEIEVwaXNvZGUgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCIgRmlyc3RTVURFcGlzb2RlCiAgICAgICAgICBzdWNoIHRoYXQgdHJlYXRtZW50RGF0ZSBkdXJpbmcgSW50ZXJ2YWxbZGF0ZSBmcm9tIHN0YXJ0IG9mIEZpcnN0U1VERXBpc29kZS5wZXJpb2QsIGRhdGUgZnJvbSBzdGFydCBvZiBGaXJzdFNVREVwaXNvZGUucGVyaW9kICsgMTQgZGF5cyApCiAgICAgICAgcmV0dXJuIGFsbCB0cmVhdG1lbnREYXRlCiAgICApCgpkZWZpbmUgIkhhcyBUd28gb3IgTW9yZSBUcmVhdG1lbnQgRW5nYWdlbWVudHMgV2l0aCBTaG9ydCBBY3RpbmcgTWVkaWNhdGlvbiBvciBOb24gTWVkaWNhdGlvbiBJbnRlcnZlbnRpb24iOgogIENvdW50KCgoIlBzeWNob3NvY2lhbCBWaXNpdCIKICAgICAgICB1bmlvbigoW1Byb2NlZHVyZTogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgU2hvcnQgQWN0aW5nIE1lZGljYXRpb24gQWRtaW5pc3RyYXRpb24iXSkuaXNQcm9jZWR1cmVQZXJmb3JtZWQoKSkpIFNob3J0QWN0aW5nVHJlYXRtZW50CiAgICAgICAgd2l0aChNaW4oIlRyZWF0bWVudCBJbml0aWF0aW9uIFdpdGggTm9uIE1lZGljYXRpb24gSW50ZXJ2ZW50aW9uIERhdGVzIgogICAgICAgICAgICB1bmlvbiAiVHJlYXRtZW50IEluaXRpYXRpb24gV2l0aCBNZWRpY2F0aW9uIE9yZGVyIERhdGVzIgogICAgICAgICkpIEluaXRpYXRpb25UcmVhdG1lbnREYXRlCiAgICAgICAgICBzdWNoIHRoYXQgZGF0ZSBmcm9tIHN0YXJ0IG9mIFNob3J0QWN0aW5nVHJlYXRtZW50LnBlcmZvcm1lZC50b0ludGVydmFsKCkgMzQgZGF5cyBvciBsZXNzIGFmdGVyIEluaXRpYXRpb25UcmVhdG1lbnREYXRlCiAgICAgICAgICAgIG9yIGRhdGUgZnJvbSBzdGFydCBvZiBTaG9ydEFjdGluZ1RyZWF0bWVudC5wZXJpb2QgMzQgZGF5cyBvciBsZXNzIGFmdGVyIEluaXRpYXRpb25UcmVhdG1lbnREYXRlCiAgICAgICAgcmV0dXJuIGFsbCBTaG9ydEFjdGluZ1RyZWF0bWVudAogICAgKQogICAgICB1bmlvbigoKFtNZWRpY2F0aW9uUmVxdWVzdDogIlN1YnN0YW5jZSBVc2UgRGlzb3JkZXIgU2hvcnQgQWN0aW5nIE1lZGljYXRpb24iXSkuaXNNZWRpY2F0aW9uT3JkZXIoKSkgU2hvcnRBY3RpbmdNZWRPcmRlcgogICAgICAgICAgd2l0aChNaW4oIlRyZWF0bWVudCBJbml0aWF0aW9uIFdpdGggTm9uIE1lZGljYXRpb24gSW50ZXJ2ZW50aW9uIERhdGVzIgogICAgICAgICAgICAgIHVuaW9uICJUcmVhdG1lbnQgSW5pdGlhdGlvbiBXaXRoIE1lZGljYXRpb24gT3JkZXIgRGF0ZXMiCiAgICAgICAgICApKSBJbml0aWF0aW9uVHJlYXRtZW50RGF0ZQogICAgICAgICAgICBzdWNoIHRoYXQgZGF0ZSBmcm9tIHN0YXJ0IG9mIFNob3J0QWN0aW5nTWVkT3JkZXIuYXV0aG9yZWRPbi50b0ludGVydmFsKCkgMzQgZGF5cyBvciBsZXNzIGFmdGVyIEluaXRpYXRpb25UcmVhdG1lbnREYXRlCiAgICAgICAgICByZXR1cm4gYWxsIFNob3J0QWN0aW5nTWVkT3JkZXIKICAgICAgKQogICkgPj0gMgoKZGVmaW5lICJOdW1lcmF0b3IgMiI6CiAgIkhhcyBUcmVhdG1lbnQgRW5nYWdlbWVudCBXaXRoIExvbmcgQWN0aW5nIE1lZGljYXRpb24iCiAgICBvciAiSGFzIFR3byBvciBNb3JlIFRyZWF0bWVudCBFbmdhZ2VtZW50cyBXaXRoIFNob3J0IEFjdGluZyBNZWRpY2F0aW9uIG9yIE5vbiBNZWRpY2F0aW9uIEludGVydmVudGlvbiIKCmRlZmluZSAiSGFzIFRyZWF0bWVudCBFbmdhZ2VtZW50IFdpdGggTG9uZyBBY3RpbmcgTWVkaWNhdGlvbiI6CiAgZXhpc3RzICggKCAoICggW01lZGljYXRpb25SZXF1ZXN0OiAiU3Vic3RhbmNlIFVzZSBEaXNvcmRlciBMb25nIEFjdGluZyBNZWRpY2F0aW9uIl0gKS5pc01lZGljYXRpb25PcmRlciAoICkgKSBMb25nQWN0aW5nTWVkT3JkZXIKICAgICAgICB3aXRoICggTWluKCJUcmVhdG1lbnQgSW5pdGlhdGlvbiBXaXRoIE5vbiBNZWRpY2F0aW9uIEludGVydmVudGlvbiBEYXRlcyIKICAgICAgICAgICAgdW5pb24gIlRyZWF0bWVudCBJbml0aWF0aW9uIFdpdGggTWVkaWNhdGlvbiBPcmRlciBEYXRlcyIKICAgICAgICApICkgSW5pdGlhdGlvblRyZWF0bWVudERhdGUKICAgICAgICAgIHN1Y2ggdGhhdCBkYXRlIGZyb20gc3RhcnQgb2YgTG9uZ0FjdGluZ01lZE9yZGVyLmF1dGhvcmVkT24udG9JbnRlcnZhbCAoICkgMzQgZGF5cyBvciBsZXNzIGFmdGVyIEluaXRpYXRpb25UcmVhdG1lbnREYXRlCiAgICApCiAgICAgIHVuaW9uICggKCAoIFtQcm9jZWR1cmU6ICJTdWJzdGFuY2UgVXNlIERpc29yZGVyIExvbmcgQWN0aW5nIE1lZGljYXRpb24gQWRtaW5pc3RyYXRpb24iXSApLmlzUHJvY2VkdXJlUGVyZm9ybWVkICggKSApIExvbmdBY3RpbmdUcmVhdG1lbnQKICAgICAgICAgIHdpdGggKCBNaW4oIlRyZWF0bWVudCBJbml0aWF0aW9uIFdpdGggTm9uIE1lZGljYXRpb24gSW50ZXJ2ZW50aW9uIERhdGVzIgogICAgICAgICAgICAgIHVuaW9uICJUcmVhdG1lbnQgSW5pdGlhdGlvbiBXaXRoIE1lZGljYXRpb24gT3JkZXIgRGF0ZXMiCiAgICAgICAgICApICkgSW5pdGlhdGlvblRyZWF0bWVudERhdGUKICAgICAgICAgICAgc3VjaCB0aGF0IGRhdGUgZnJvbSBzdGFydCBvZiBMb25nQWN0aW5nVHJlYXRtZW50LnBlcmZvcm1lZC50b0ludGVydmFsICggKSAzNCBkYXlzIG9yIGxlc3MgYWZ0ZXIgSW5pdGlhdGlvblRyZWF0bWVudERhdGUKICAgICAgKQogICkKCmRlZmluZSAiU0RFIEV0aG5pY2l0eSI6CiAgU0RFLiJTREUgRXRobmljaXR5IgoKZGVmaW5lICJTREUgUGF5ZXIiOgogIFNERS4iU0RFIFBheWVyIgoKZGVmaW5lICJTREUgUmFjZSI6CiAgU0RFLiJTREUgUmFjZSIKCmRlZmluZSAiU0RFIFNleCI6CiAgU0RFLiJTREUgU2V4IgoKZGVmaW5lICJTdHJhdGlmaWNhdGlvbiAxIjoKICBBZ2VJblllYXJzQXQoZGF0ZSBmcm9tIHN0YXJ0IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiKSBpbiBJbnRlcnZhbFsxMywgMTddCgpkZWZpbmUgIlN0cmF0aWZpY2F0aW9uIDIiOgogIEFnZUluWWVhcnNBdChkYXRlIGZyb20gc3RhcnQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIpIGluIEludGVydmFsWzE4LCA2NF0KCmRlZmluZSAiU3RyYXRpZmljYXRpb24gMyI6CiAgQWdlSW5ZZWFyc0F0KGRhdGUgZnJvbSBzdGFydCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIikgPj0gNjU=",
    "url" : "https://madie.cms.gov/Library-CMS137FHIRSUDTxInitEngagement.cql"
  }]
}