Common CQL Artifacts for FHIR (US-Based)
1.0.0-ballot - STU 1 Ballot
Common CQL Artifacts for FHIR (US-Based), published by HL7 International / Clinical Decision Support. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/us-cql-ig/ and changes regularly. See the Directory of published versions
Page standards status: Informative | Maturity Level: 3 |
{
"resourceType" : "Library",
"id" : "MBODAInitialExpressions",
"text" : {
"status" : "extensions",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n<div>\n <table class=\"grid dict\">\n \n \n <tr>\n <th scope=\"row\"><b>Title: </b></th>\n <td style=\"padding-left: 4px;\">Expression Library for the Medical Benefit Outpatient Drug Authorization Example</td>\n </tr>\n \n\n \n \n <tr>\n <th scope=\"row\"><b>Id: </b></th>\n <td style=\"padding-left: 4px;\">MBODAInitialExpressions</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-ballot</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-MBODAInitialExpressions.html\">Expression Library for the Medical Benefit Outpatient Drug Authorization Example</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 <tr>\n <th scope=\"row\"><b>Experimental: </b></th>\n <td style=\"padding-left: 4px;\">true</td>\n </tr>\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-10 20:00:05+0000</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Publisher: </b></th>\n <td style=\"padding-left: 4px;\">HL7 International / Clinical Decision Support</td>\n </tr>\n \n\n \n <tr>\n <th scope=\"row\"><b>Description: </b></th>\n <td style=\"padding-left: 4px;\"><div><p>Initial expressions for use in populating answers to questions in the Medical Benefit Outpatient Drug Authorization example questionnaire.</p>\n</div></td>\n </tr>\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\n \n\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 MBODAInitialExpressions\n\nusing USCore version '7.0.0'\nusing FHIR version '4.0.1'\n\ninclude hl7.fhir.uv.cql.FHIRHelpers version '4.0.1'\ninclude USCoreCommon called UC\ninclude USCoreElements called UCE\n\n//CumulativeMedicationDuration was created as part of the US ECQM and CDC Opioid Guideline development \n//http://fhir.org/guides/cdc/opioid-mme-r4\ninclude CumulativeMedicationDuration called CMD\n\ncodesystem "LOINC": 'http://loinc.org'\ncodesystem "Identifier Type": 'http://terminology.hl7.org/CodeSystem/v2-0203'\ncode "Body surface area": '8277-6' from "LOINC" display 'Intensive care unit'\ncode "Member Number": 'MB' from "Identifier Type"\n\nparameter "MedicationRequest" USCore.MedicationRequestProfile\n\ncontext Patient\n\ndefine "Last Name":\n UCE."Last Name"\n\ndefine "First Name":\n UCE."First Name"\n\ndefine "Allergies":\n UCE."Active Confirmed Allergies and Intolerances".code.codes.display \n\ndefine "Height":\n convert (((UCE."All Body Height Measurements").mostRecent() as "observation-bodyheight").value) to '[in_i]'\n\ndefine "Height in [in_i]":\n "Height".value\n\ndefine "Height in cm":\n convert("Height") to 'cm'\n\ndefine "Weight Most Recent":\n (UCE."All Body Weight Measurements").mostRecent() as "observation-bodyweight"\n\ndefine "Weight":\n convert (((UCE."All Body Weight Measurements").mostRecent() as "observation-bodyweight").value) to '[lb_av]'\n\ndefine "Weight in [lb_av]":\n "Weight".value\n\ndefine "Weight in kg":\n convert("Weight") to 'kg'\n\ndefine "BMI":\n (UCE."All Body Mass Index Measurements").value\n\ndefine "Most Recent BSA":\n UCE."Most Recent BSA"\n\ndefine "BSA":\n Coalesce("Most Recent BSA", "Calculated BSA - Mosteller")\n\ndefine "BSA in m2":\n "BSA".value\n\n// Mosteller formula using lbs and inches\ndefine "Calculated BSA - Mosteller":\n UCE.CalculateBSA('Mosteller', "Height", "Weight")\n //((("Weight"*"Height")/3131).value)^0.5\n\ndefine "Calculated BSA - DuBois and DuBois":\n UCE.CalculateBSA('DuBois and DuBois', "Height", "Weight")\n\ndefine "Diagnosis Codes":\n UCE."All Conditions" C\n return C.code\n\ndefine "Diagnosis Descriptions":\n "Diagnosis Codes" ConceptItem\n return Combine(((ConceptItem.codes) C return C.display), '|')\n\ndefine "Medication Requested":\n UCE."All Medications" M\n where EndsWith(("Most Recent Medication Request".medication as USCore.Reference).reference, M.id)\n\ndefine "Medication Name":\n "Medication Requested" M\n return M.code.display\n\ndefine "Code of Requested Drug":\n "Medication Requested" M\n return M.code\n\ndefine "Retrieve Medication Request test parameter":\n // The VSCode extension doesn't support parameters\n // When executing CQL with the VSCode extension retrieve the resource specific for the test case\n // the list of resource ids match the resources from the test case folders\n singleton from ([USCore.MedicationRequestProfile] MR where MR.id in { \n 'example',\n 'example-continued-therapy',\n 'example-new-therapy',\n 'uscore-patient-1-med-request-example',\n 'uscore-patient-2-med-request-example',\n 'uscore-patient-3-med-request-example',\n 'uscore-patient-4-med-request-example'})\n\ndefine "Most Recent Medication Request":\n Coalesce(\n MedicationRequest,\n "Retrieve Medication Request test parameter"\n )\n\ndefine "Medication Request References":\n ("Most Recent Medication Request".medication as USCore.Reference).reference\n\ndefine "Most Recent Medication Request dosageInstruction":\n // TODO: should this really be a singleton?\n singleton from "Most Recent Medication Request".dosageInstruction\n\ndefine "Most Recent Medication Request dosageInstruction.doseAndRate":\n // TODO: should this really be a singleton?\n singleton from "Most Recent Medication Request dosageInstruction".doseAndRate\n\ndefine "Medication Dose":\n "Most Recent Medication Request dosageInstruction.doseAndRate".dose\n\ndefine "Medication Route":\n "Most Recent Medication Request dosageInstruction".route\n\ndefine "Medication Frequency value":\n "Most Recent Medication Request dosageInstruction".timing.repeat.frequency\n\ndefine "Medication Frequency Period":\n if (IsNull("Most Recent Medication Request dosageInstruction".timing.repeat.period)) then \n null\n else\n System.Quantity {\n value: "Most Recent Medication Request dosageInstruction".timing.repeat.period,\n unit: "Most Recent Medication Request dosageInstruction".timing.repeat.periodUnit\n }\n\ndefine "Medication Frequency": // '1x per 1d', '3x per 2wk', '1x per 1mo'\n ToString("Medication Frequency value") + 'x' +\n ' per ' + ToString("Medication Frequency Period".value) + \n ' ' + "Medication Frequency Period".unit\n\ndefine "Quantity or Number of requested Visits":\n "Most Recent Medication Request".dispenseRequest.quantity\n\ndefine "Prior Prescription":\n "Most Recent Medication Request".priorPrescription\n\ndefine "New therapy":\n IsNull("Prior Prescription")\n\ndefine "New therapy code":\n if ("New therapy") then\n System.Code { code: 'NewMedication', display: 'New Medication' }\n else\n System.Code { code: 'ContinuedTherapy', display: 'Continuation of therapy' }\n\n// MISSING: needs test data to validate\n//Initial date of therapy does not return correct result if there have been more than 1 prior Prescriptions - logic needs to be adapted to that case\ndefine "Initial date of therapy":\n if not "New therapy" then\n UCE."All Medication Requests" M\n where EndsWith(("Most Recent Medication Request".priorPrescription as USCore.Reference).reference, M.id)\n return M.authoredOn\n else \n null\n\ndefine "Medication Request Period":\n CMD."MedicationRequestPeriod"("Most Recent Medication Request")\n\ndefine "Expected Therapy Length":\n convert(\n CMD.Quantity(days between start of "Medication Request Period" and end of "Medication Request Period", 'd')\n ) to 'd'\n\ndefine "Anticipated/actual date of service":\n start of "Medication Request Period"\n\n/*\n//related Procedures - Procedure is not linked to medication request - not possible to find the related procedures\n*/</code></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n \n \n \n <tr>\n <td colspan=\"2\">\n <table>\n <tr><th><b>Content: </b> application/elm+xml</th></tr>\n <tr><td><pre><code/></pre></td></tr>\n </table>\n </td>\n </tr>\n \n \n </table>\n</div>\n</div>"
},
"extension" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
"valueInteger" : 3
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
"valueCode" : "cds"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status",
"valueCode" : "informative"
}
],
"url" : "http://hl7.org/fhir/us/cql/Library/MBODAInitialExpressions",
"version" : "1.0.0-ballot",
"name" : "MBODAInitialExpressions",
"title" : "Expression Library for the Medical Benefit Outpatient Drug Authorization Example",
"status" : "draft",
"experimental" : true,
"type" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
"code" : "logic-library"
}
]
},
"date" : "2025-09-10T20:00:05+00:00",
"publisher" : "HL7 International / Clinical Decision Support",
"contact" : [
{
"telecom" : [
{
"system" : "url",
"value" : "http://www.hl7.org/Special/committees/dss"
}
]
}
],
"description" : "Initial expressions for use in populating answers to questions in the Medical Benefit Outpatient Drug Authorization example questionnaire.",
"jurisdiction" : [
{
"coding" : [
{
"system" : "urn:iso:std:iso:3166",
"code" : "US",
"display" : "United States of America"
}
]
}
],
"content" : [
{
"contentType" : "text/cql",
"data" : "bGlicmFyeSBNQk9EQUluaXRpYWxFeHByZXNzaW9ucwoKdXNpbmcgVVNDb3JlIHZlcnNpb24gJzcuMC4wJwp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCmluY2x1ZGUgVVNDb3JlQ29tbW9uIGNhbGxlZCBVQwppbmNsdWRlIFVTQ29yZUVsZW1lbnRzIGNhbGxlZCBVQ0UKCi8vQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbiB3YXMgY3JlYXRlZCBhcyBwYXJ0IG9mIHRoZSBVUyBFQ1FNIGFuZCBDREMgT3Bpb2lkIEd1aWRlbGluZSBkZXZlbG9wbWVudCAKLy9odHRwOi8vZmhpci5vcmcvZ3VpZGVzL2NkYy9vcGlvaWQtbW1lLXI0CmluY2x1ZGUgQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbiBjYWxsZWQgQ01ECgpjb2Rlc3lzdGVtICJMT0lOQyI6ICdodHRwOi8vbG9pbmMub3JnJwpjb2Rlc3lzdGVtICJJZGVudGlmaWVyIFR5cGUiOiAnaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS92Mi0wMjAzJwpjb2RlICJCb2R5IHN1cmZhY2UgYXJlYSI6ICc4Mjc3LTYnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdJbnRlbnNpdmUgY2FyZSB1bml0Jwpjb2RlICJNZW1iZXIgTnVtYmVyIjogJ01CJyBmcm9tICJJZGVudGlmaWVyIFR5cGUiCgpwYXJhbWV0ZXIgIk1lZGljYXRpb25SZXF1ZXN0IiBVU0NvcmUuTWVkaWNhdGlvblJlcXVlc3RQcm9maWxlCgpjb250ZXh0IFBhdGllbnQKCmRlZmluZSAiTGFzdCBOYW1lIjoKICBVQ0UuIkxhc3QgTmFtZSIKCmRlZmluZSAiRmlyc3QgTmFtZSI6CiAgVUNFLiJGaXJzdCBOYW1lIgoKZGVmaW5lICJBbGxlcmdpZXMiOgogIFVDRS4iQWN0aXZlIENvbmZpcm1lZCBBbGxlcmdpZXMgYW5kIEludG9sZXJhbmNlcyIuY29kZS5jb2Rlcy5kaXNwbGF5IAoKZGVmaW5lICJIZWlnaHQiOgogIGNvbnZlcnQgKCgoVUNFLiJBbGwgQm9keSBIZWlnaHQgTWVhc3VyZW1lbnRzIikubW9zdFJlY2VudCgpIGFzICJvYnNlcnZhdGlvbi1ib2R5aGVpZ2h0IikudmFsdWUpIHRvICdbaW5faV0nCgpkZWZpbmUgIkhlaWdodCBpbiBbaW5faV0iOgogICJIZWlnaHQiLnZhbHVlCgpkZWZpbmUgIkhlaWdodCBpbiBjbSI6CiAgY29udmVydCgiSGVpZ2h0IikgdG8gJ2NtJwoKZGVmaW5lICJXZWlnaHQgTW9zdCBSZWNlbnQiOgogIChVQ0UuIkFsbCBCb2R5IFdlaWdodCBNZWFzdXJlbWVudHMiKS5tb3N0UmVjZW50KCkgYXMgIm9ic2VydmF0aW9uLWJvZHl3ZWlnaHQiCgpkZWZpbmUgIldlaWdodCI6CiAgY29udmVydCAoKChVQ0UuIkFsbCBCb2R5IFdlaWdodCBNZWFzdXJlbWVudHMiKS5tb3N0UmVjZW50KCkgYXMgIm9ic2VydmF0aW9uLWJvZHl3ZWlnaHQiKS52YWx1ZSkgdG8gJ1tsYl9hdl0nCgpkZWZpbmUgIldlaWdodCBpbiBbbGJfYXZdIjoKICAiV2VpZ2h0Ii52YWx1ZQoKZGVmaW5lICJXZWlnaHQgaW4ga2ciOgogIGNvbnZlcnQoIldlaWdodCIpIHRvICdrZycKCmRlZmluZSAiQk1JIjoKICAoVUNFLiJBbGwgQm9keSBNYXNzIEluZGV4IE1lYXN1cmVtZW50cyIpLnZhbHVlCgpkZWZpbmUgIk1vc3QgUmVjZW50IEJTQSI6CiAgVUNFLiJNb3N0IFJlY2VudCBCU0EiCgpkZWZpbmUgIkJTQSI6CiAgQ29hbGVzY2UoIk1vc3QgUmVjZW50IEJTQSIsICJDYWxjdWxhdGVkIEJTQSAtIE1vc3RlbGxlciIpCgpkZWZpbmUgIkJTQSBpbiBtMiI6CiAgIkJTQSIudmFsdWUKCi8vIE1vc3RlbGxlciBmb3JtdWxhIHVzaW5nIGxicyBhbmQgaW5jaGVzCmRlZmluZSAiQ2FsY3VsYXRlZCBCU0EgLSBNb3N0ZWxsZXIiOgogIFVDRS5DYWxjdWxhdGVCU0EoJ01vc3RlbGxlcicsICJIZWlnaHQiLCAiV2VpZ2h0IikKICAvLygoKCJXZWlnaHQiKiJIZWlnaHQiKS8zMTMxKS52YWx1ZSleMC41CgpkZWZpbmUgIkNhbGN1bGF0ZWQgQlNBIC0gRHVCb2lzIGFuZCBEdUJvaXMiOgogIFVDRS5DYWxjdWxhdGVCU0EoJ0R1Qm9pcyBhbmQgRHVCb2lzJywgIkhlaWdodCIsICJXZWlnaHQiKQoKZGVmaW5lICJEaWFnbm9zaXMgQ29kZXMiOgogIFVDRS4iQWxsIENvbmRpdGlvbnMiIEMKICAgIHJldHVybiBDLmNvZGUKCmRlZmluZSAiRGlhZ25vc2lzIERlc2NyaXB0aW9ucyI6CiAgIkRpYWdub3NpcyBDb2RlcyIgQ29uY2VwdEl0ZW0KICAgIHJldHVybiBDb21iaW5lKCgoQ29uY2VwdEl0ZW0uY29kZXMpIEMgcmV0dXJuIEMuZGlzcGxheSksICd8JykKCmRlZmluZSAiTWVkaWNhdGlvbiBSZXF1ZXN0ZWQiOgogIFVDRS4iQWxsIE1lZGljYXRpb25zIiBNCiAgICB3aGVyZSBFbmRzV2l0aCgoIk1vc3QgUmVjZW50IE1lZGljYXRpb24gUmVxdWVzdCIubWVkaWNhdGlvbiBhcyBVU0NvcmUuUmVmZXJlbmNlKS5yZWZlcmVuY2UsIE0uaWQpCgpkZWZpbmUgIk1lZGljYXRpb24gTmFtZSI6CiAgIk1lZGljYXRpb24gUmVxdWVzdGVkIiBNCiAgICByZXR1cm4gTS5jb2RlLmRpc3BsYXkKCmRlZmluZSAiQ29kZSBvZiBSZXF1ZXN0ZWQgRHJ1ZyI6CiAgIk1lZGljYXRpb24gUmVxdWVzdGVkIiBNCiAgICByZXR1cm4gTS5jb2RlCgpkZWZpbmUgIlJldHJpZXZlIE1lZGljYXRpb24gUmVxdWVzdCB0ZXN0IHBhcmFtZXRlciI6CiAgLy8gVGhlIFZTQ29kZSBleHRlbnNpb24gZG9lc24ndCBzdXBwb3J0IHBhcmFtZXRlcnMKICAvLyBXaGVuIGV4ZWN1dGluZyBDUUwgd2l0aCB0aGUgVlNDb2RlIGV4dGVuc2lvbiByZXRyaWV2ZSB0aGUgcmVzb3VyY2Ugc3BlY2lmaWMgZm9yIHRoZSB0ZXN0IGNhc2UKICAvLyAgIHRoZSBsaXN0IG9mIHJlc291cmNlIGlkcyBtYXRjaCB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIHRlc3QgY2FzZSBmb2xkZXJzCiAgc2luZ2xldG9uIGZyb20gKFtVU0NvcmUuTWVkaWNhdGlvblJlcXVlc3RQcm9maWxlXSBNUiB3aGVyZSBNUi5pZCBpbiB7IAogICAgJ2V4YW1wbGUnLAogICAgJ2V4YW1wbGUtY29udGludWVkLXRoZXJhcHknLAogICAgJ2V4YW1wbGUtbmV3LXRoZXJhcHknLAogICAgJ3VzY29yZS1wYXRpZW50LTEtbWVkLXJlcXVlc3QtZXhhbXBsZScsCiAgICAndXNjb3JlLXBhdGllbnQtMi1tZWQtcmVxdWVzdC1leGFtcGxlJywKICAgICd1c2NvcmUtcGF0aWVudC0zLW1lZC1yZXF1ZXN0LWV4YW1wbGUnLAogICAgJ3VzY29yZS1wYXRpZW50LTQtbWVkLXJlcXVlc3QtZXhhbXBsZSd9KQoKZGVmaW5lICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QiOgogIENvYWxlc2NlKAogICAgTWVkaWNhdGlvblJlcXVlc3QsCiAgICAiUmV0cmlldmUgTWVkaWNhdGlvbiBSZXF1ZXN0IHRlc3QgcGFyYW1ldGVyIgogICkKCmRlZmluZSAiTWVkaWNhdGlvbiBSZXF1ZXN0IFJlZmVyZW5jZXMiOgogICgiTW9zdCBSZWNlbnQgTWVkaWNhdGlvbiBSZXF1ZXN0Ii5tZWRpY2F0aW9uIGFzIFVTQ29yZS5SZWZlcmVuY2UpLnJlZmVyZW5jZQoKZGVmaW5lICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QgZG9zYWdlSW5zdHJ1Y3Rpb24iOgogIC8vIFRPRE86IHNob3VsZCB0aGlzIHJlYWxseSBiZSBhIHNpbmdsZXRvbj8KICBzaW5nbGV0b24gZnJvbSAiTW9zdCBSZWNlbnQgTWVkaWNhdGlvbiBSZXF1ZXN0Ii5kb3NhZ2VJbnN0cnVjdGlvbgoKZGVmaW5lICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QgZG9zYWdlSW5zdHJ1Y3Rpb24uZG9zZUFuZFJhdGUiOgogIC8vIFRPRE86IHNob3VsZCB0aGlzIHJlYWxseSBiZSBhIHNpbmdsZXRvbj8KICBzaW5nbGV0b24gZnJvbSAiTW9zdCBSZWNlbnQgTWVkaWNhdGlvbiBSZXF1ZXN0IGRvc2FnZUluc3RydWN0aW9uIi5kb3NlQW5kUmF0ZQoKZGVmaW5lICJNZWRpY2F0aW9uIERvc2UiOgogICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QgZG9zYWdlSW5zdHJ1Y3Rpb24uZG9zZUFuZFJhdGUiLmRvc2UKCmRlZmluZSAiTWVkaWNhdGlvbiBSb3V0ZSI6CiAgIk1vc3QgUmVjZW50IE1lZGljYXRpb24gUmVxdWVzdCBkb3NhZ2VJbnN0cnVjdGlvbiIucm91dGUKCmRlZmluZSAiTWVkaWNhdGlvbiBGcmVxdWVuY3kgdmFsdWUiOgogICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QgZG9zYWdlSW5zdHJ1Y3Rpb24iLnRpbWluZy5yZXBlYXQuZnJlcXVlbmN5CgpkZWZpbmUgIk1lZGljYXRpb24gRnJlcXVlbmN5IFBlcmlvZCI6CiAgaWYgKElzTnVsbCgiTW9zdCBSZWNlbnQgTWVkaWNhdGlvbiBSZXF1ZXN0IGRvc2FnZUluc3RydWN0aW9uIi50aW1pbmcucmVwZWF0LnBlcmlvZCkpIHRoZW4gCiAgICBudWxsCiAgZWxzZQogICAgU3lzdGVtLlF1YW50aXR5IHsKICAgICAgdmFsdWU6ICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QgZG9zYWdlSW5zdHJ1Y3Rpb24iLnRpbWluZy5yZXBlYXQucGVyaW9kLAogICAgICB1bml0OiAiTW9zdCBSZWNlbnQgTWVkaWNhdGlvbiBSZXF1ZXN0IGRvc2FnZUluc3RydWN0aW9uIi50aW1pbmcucmVwZWF0LnBlcmlvZFVuaXQKICAgIH0KCmRlZmluZSAiTWVkaWNhdGlvbiBGcmVxdWVuY3kiOiAvLyAnMXggcGVyIDFkJywgJzN4IHBlciAyd2snLCAnMXggcGVyIDFtbycKICBUb1N0cmluZygiTWVkaWNhdGlvbiBGcmVxdWVuY3kgdmFsdWUiKSArICd4JyArCiAgJyBwZXIgJyArIFRvU3RyaW5nKCJNZWRpY2F0aW9uIEZyZXF1ZW5jeSBQZXJpb2QiLnZhbHVlKSArIAogICcgJyArICJNZWRpY2F0aW9uIEZyZXF1ZW5jeSBQZXJpb2QiLnVuaXQKCmRlZmluZSAiUXVhbnRpdHkgb3IgTnVtYmVyIG9mIHJlcXVlc3RlZCBWaXNpdHMiOgogICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QiLmRpc3BlbnNlUmVxdWVzdC5xdWFudGl0eQoKZGVmaW5lICJQcmlvciBQcmVzY3JpcHRpb24iOgogICJNb3N0IFJlY2VudCBNZWRpY2F0aW9uIFJlcXVlc3QiLnByaW9yUHJlc2NyaXB0aW9uCgpkZWZpbmUgIk5ldyB0aGVyYXB5IjoKICBJc051bGwoIlByaW9yIFByZXNjcmlwdGlvbiIpCgpkZWZpbmUgIk5ldyB0aGVyYXB5IGNvZGUiOgogIGlmICgiTmV3IHRoZXJhcHkiKSB0aGVuCiAgICBTeXN0ZW0uQ29kZSB7IGNvZGU6ICdOZXdNZWRpY2F0aW9uJywgZGlzcGxheTogJ05ldyBNZWRpY2F0aW9uJyB9CiAgZWxzZQogICAgU3lzdGVtLkNvZGUgeyBjb2RlOiAnQ29udGludWVkVGhlcmFweScsIGRpc3BsYXk6ICdDb250aW51YXRpb24gb2YgdGhlcmFweScgfQoKLy8gTUlTU0lORzogbmVlZHMgdGVzdCBkYXRhIHRvIHZhbGlkYXRlCi8vSW5pdGlhbCBkYXRlIG9mIHRoZXJhcHkgZG9lcyBub3QgcmV0dXJuIGNvcnJlY3QgcmVzdWx0IGlmIHRoZXJlIGhhdmUgYmVlbiBtb3JlIHRoYW4gMSBwcmlvciBQcmVzY3JpcHRpb25zIC0gbG9naWMgbmVlZHMgdG8gYmUgYWRhcHRlZCB0byB0aGF0IGNhc2UKZGVmaW5lICJJbml0aWFsIGRhdGUgb2YgdGhlcmFweSI6CiAgaWYgbm90ICJOZXcgdGhlcmFweSIgdGhlbgogICAgVUNFLiJBbGwgTWVkaWNhdGlvbiBSZXF1ZXN0cyIgTQogICAgICB3aGVyZSBFbmRzV2l0aCgoIk1vc3QgUmVjZW50IE1lZGljYXRpb24gUmVxdWVzdCIucHJpb3JQcmVzY3JpcHRpb24gYXMgVVNDb3JlLlJlZmVyZW5jZSkucmVmZXJlbmNlLCBNLmlkKQogICAgICByZXR1cm4gTS5hdXRob3JlZE9uCiAgZWxzZSAKICAgIG51bGwKCmRlZmluZSAiTWVkaWNhdGlvbiBSZXF1ZXN0IFBlcmlvZCI6CiAgQ01ELiJNZWRpY2F0aW9uUmVxdWVzdFBlcmlvZCIoIk1vc3QgUmVjZW50IE1lZGljYXRpb24gUmVxdWVzdCIpCgpkZWZpbmUgIkV4cGVjdGVkIFRoZXJhcHkgTGVuZ3RoIjoKICBjb252ZXJ0KAogICAgQ01ELlF1YW50aXR5KGRheXMgYmV0d2VlbiBzdGFydCBvZiAiTWVkaWNhdGlvbiBSZXF1ZXN0IFBlcmlvZCIgYW5kIGVuZCBvZiAiTWVkaWNhdGlvbiBSZXF1ZXN0IFBlcmlvZCIsICdkJykKICApIHRvICdkJwoKZGVmaW5lICJBbnRpY2lwYXRlZC9hY3R1YWwgZGF0ZSBvZiBzZXJ2aWNlIjoKICBzdGFydCBvZiAiTWVkaWNhdGlvbiBSZXF1ZXN0IFBlcmlvZCIKCi8qCi8vcmVsYXRlZCBQcm9jZWR1cmVzIC0gUHJvY2VkdXJlIGlzIG5vdCBsaW5rZWQgdG8gbWVkaWNhdGlvbiByZXF1ZXN0IC0gbm90IHBvc3NpYmxlIHRvIGZpbmQgdGhlIHJlbGF0ZWQgcHJvY2VkdXJlcwoqLw=="
},
{
"contentType" : "application/elm+xml"
}
]
}