WHO Clinical Care in Crisis Implementation Guide for Children
0.1.0 - ci-build

WHO Clinical Care in Crisis Implementation Guide for Children - Local Development build (v0.1.0). See the Directory of published versions

: ArmCircumferenceForAge - XML Representation

Active as of 2023-10-04

Raw xml | Download



<Library xmlns="http://hl7.org/fhir">
  <id value="ArmCircumferenceForAge"/>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><h2>Related Artifacts</h2><table class="grid"><tr><td>depends-on</td><td><a href="Library-anthrobase.html">anthrobase</a></td></tr><tr><td>depends-on</td><td><code>http://fhir.org/guides/who/anc-cds/Library/FHIRHelpers</code></td></tr></table><h2>Parameters</h2><table class="grid"><tr><td>zscore</td><td>in</td><td/><td/><td>decimal</td></tr><tr><td>Age</td><td>in</td><td/><td/><td>decimal</td></tr><tr><td>sex</td><td>in</td><td/><td/><td>decimal</td></tr><tr><td>generateArmCircumferenceFromAge</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>generateZScoreArmCircumferenceForAge</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoreArmCircumferenceForAgetables_s</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoreArmCircumferenceForAgetables_m</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoreArmCircumferenceForAgetables_l</td><td>out</td><td/><td/><td>decimal</td></tr></table><h2>Data Requirements</h2><table class="grid"><tr><td colspan="2"><b>Type</b>: <a href="http://hl7.org/fhir/R4/patient.html">Patient</a> (<a href="http://hl7.org/fhir/R4/patient.html">Patient</a>)</td></tr></table><h2>Contents</h2><p><code>text/cql</code></p><pre><code class="language-sql">
library ArmCircumferenceForAge version '1.0.4'
using FHIR version '4.0.1'
include anthrobase version '1.0.4' called base
include FHIRHelpers version '4.0.1' called FHIRHelpers

// Antrho library for ArmCircumferenceForAge  Z-Score from the acanthro files
codesystem &quot;administrative-gender&quot;: 'http://hl7.org/fhir/administrative-gender'
//code &quot;Female&quot; : 'female' from &quot;administrative-gender&quot;  display 'Female'


define ArmCircumferenceForAgeFemale:
{
	{y:91.0,l:-0.1733,s:0.08262,m:13.0245},
	{y:98.0,l:-0.1733,s:0.08271,m:13.1107},
	{y:105.0,l:-0.1733,s:0.0828,m:13.1919},
	{y:112.0,l:-0.1733,s:0.08288,m:13.2679},
	{y:119.0,l:-0.1733,s:0.08296,m:13.3386},
	{y:126.0,l:-0.1733,s:0.08303,m:13.4039},
	{y:133.0,l:-0.1733,s:0.08309,m:13.4642},
	{y:140.0,l:-0.1733,s:0.08316,m:13.5197},
	{y:147.0,l:-0.1733,s:0.08321,m:13.5709},
	{y:154.0,l:-0.1733,s:0.08327,m:13.618},
	{y:161.0,l:-0.1733,s:0.08331,m:13.6616},
	{y:168.0,l:-0.1733,s:0.08336,m:13.7019},
	{y:175.0,l:-0.1733,s:0.0834,m:13.7394},
	{y:182.0,l:-0.1733,s:0.08343,m:13.7741},
	{y:197.0,l:-0.1733,s:0.08348,m:13.8407},
	{y:227.0,l:-0.1733,s:0.08352,m:13.9477},
	{y:257.0,l:-0.1733,s:0.08348,m:14.0292},
	{y:287.0,l:-0.1733,s:0.08335,m:14.0918},
	{y:317.0,l:-0.1733,s:0.08317,m:14.1413},
	{y:347.0,l:-0.1733,s:0.08295,m:14.1829},
	{y:377.0,l:-0.1733,s:0.0827,m:14.2215},
	{y:407.0,l:-0.1733,s:0.08244,m:14.2602},
	{y:437.0,l:-0.1733,s:0.08218,m:14.3009},
	{y:467.0,l:-0.1733,s:0.08194,m:14.3444},
	{y:497.0,l:-0.1733,s:0.08173,m:14.3913},
	{y:527.0,l:-0.1733,s:0.08154,m:14.442},
	{y:557.0,l:-0.1733,s:0.08139,m:14.4964},
	{y:587.0,l:-0.1733,s:0.08128,m:14.5544},
	{y:617.0,l:-0.1733,s:0.08121,m:14.616},
	{y:647.0,l:-0.1733,s:0.08118,m:14.6813},
	{y:677.0,l:-0.1733,s:0.08118,m:14.7501},
	{y:707.0,l:-0.1733,s:0.08122,m:14.8217},
	{y:737.0,l:-0.1733,s:0.08129,m:14.8957},
	{y:767.0,l:-0.1733,s:0.08138,m:14.9712},
	{y:797.0,l:-0.1733,s:0.0815,m:15.0468},
	{y:827.0,l:-0.1733,s:0.08164,m:15.1212},
	{y:857.0,l:-0.1733,s:0.08181,m:15.1928},
	{y:887.0,l:-0.1733,s:0.08199,m:15.2609},
	{y:917.0,l:-0.1733,s:0.0822,m:15.3248},
	{y:947.0,l:-0.1733,s:0.08243,m:15.3845},
	{y:977.0,l:-0.1733,s:0.08268,m:15.4405},
	{y:1007.0,l:-0.1733,s:0.08294,m:15.494},
	{y:1037.0,l:-0.1733,s:0.08323,m:15.5459},
	{y:1067.0,l:-0.1733,s:0.08353,m:15.597},
	{y:1097.0,l:-0.1733,s:0.08384,m:15.6477},
	{y:1127.0,l:-0.1733,s:0.08417,m:15.6983},
	{y:1157.0,l:-0.1733,s:0.08452,m:15.749},
	{y:1187.0,l:-0.1733,s:0.08487,m:15.7996},
	{y:1217.0,l:-0.1733,s:0.08524,m:15.85},
	{y:1247.0,l:-0.1733,s:0.08562,m:15.9001},
	{y:1277.0,l:-0.1733,s:0.086,m:15.9496},
	{y:1307.0,l:-0.1733,s:0.0864,m:15.9986},
	{y:1337.0,l:-0.1733,s:0.0868,m:16.0473},
	{y:1367.0,l:-0.1733,s:0.0872,m:16.0957},
	{y:1397.0,l:-0.1733,s:0.0876,m:16.1441},
	{y:1427.0,l:-0.1733,s:0.08801,m:16.1925},
	{y:1457.0,l:-0.1733,s:0.08842,m:16.2412},
	{y:1487.0,l:-0.1733,s:0.08884,m:16.2901},
	{y:1517.0,l:-0.1733,s:0.08925,m:16.3395},
	{y:1547.0,l:-0.1733,s:0.08966,m:16.3892},
	{y:1577.0,l:-0.1733,s:0.09008,m:16.4393},
	{y:1607.0,l:-0.1733,s:0.09049,m:16.4897},
	{y:1637.0,l:-0.1733,s:0.0909,m:16.5403},
	{y:1667.0,l:-0.1733,s:0.0913,m:16.5907},
	{y:1697.0,l:-0.1733,s:0.09171,m:16.641},
	{y:1727.0,l:-0.1733,s:0.09211,m:16.6908},
	{y:1757.0,l:-0.1733,s:0.09251,m:16.7402},
	{y:1787.0,l:-0.1733,s:0.0929,m:16.7891},
	{y:1817.0,l:-0.1733,s:0.09329,m:16.8377},
	{y:1847.0,l:-0.1733,s:0.09368,m:16.886}
}

define ArmCircumferenceForAgeMale:
{
	{y:91.0,l:0.3933,s:0.07474,m:13.4779},
	{y:98.0,l:0.3821,s:0.07486,m:13.5607},
	{y:105.0,l:0.3714,s:0.07498,m:13.6392},
	{y:112.0,l:0.3611,s:0.07509,m:13.7134},
	{y:119.0,l:0.3513,s:0.07519,m:13.7834},
	{y:126.0,l:0.3418,s:0.0753,m:13.849},
	{y:133.0,l:0.3327,s:0.0754,m:13.9105},
	{y:140.0,l:0.3239,s:0.07549,m:13.9679},
	{y:147.0,l:0.3153,s:0.07559,m:14.0214},
	{y:154.0,l:0.307,s:0.07568,m:14.071},
	{y:161.0,l:0.299,s:0.07577,m:14.117},
	{y:168.0,l:0.2912,s:0.07585,m:14.1597},
	{y:175.0,l:0.2836,s:0.07593,m:14.1992},
	{y:182.0,l:0.2762,s:0.076,m:14.2358},
	{y:197.0,l:0.2609,s:0.07615,m:14.3053},
	{y:227.0,l:0.2325,s:0.0764,m:14.4135},
	{y:257.0,l:0.2064,s:0.07657,m:14.4907},
	{y:287.0,l:0.1822,s:0.0767,m:14.5471},
	{y:317.0,l:0.1596,s:0.07679,m:14.5902},
	{y:347.0,l:0.1384,s:0.07686,m:14.6256},
	{y:377.0,l:0.1184,s:0.07691,m:14.657},
	{y:407.0,l:0.0993,s:0.07696,m:14.687},
	{y:437.0,l:0.0812,s:0.077,m:14.7174},
	{y:467.0,l:0.0638,s:0.07704,m:14.7495},
	{y:497.0,l:0.0471,s:0.07708,m:14.7842},
	{y:527.0,l:0.0311,s:0.07711,m:14.8218},
	{y:557.0,l:0.0157,s:0.07714,m:14.8622},
	{y:587.0,l:0.0008,s:0.07718,m:14.9054},
	{y:617.0,l:-0.0136,s:0.07722,m:14.9519},
	{y:647.0,l:-0.0275,s:0.07727,m:15.0016},
	{y:677.0,l:-0.0411,s:0.07732,m:15.0542},
	{y:707.0,l:-0.0542,s:0.07739,m:15.1093},
	{y:737.0,l:-0.067,s:0.07748,m:15.1659},
	{y:767.0,l:-0.0795,s:0.07758,m:15.2231},
	{y:797.0,l:-0.0916,s:0.07769,m:15.2799},
	{y:827.0,l:-0.1035,s:0.07782,m:15.3354},
	{y:857.0,l:-0.115,s:0.07796,m:15.3892},
	{y:887.0,l:-0.1264,s:0.07812,m:15.4408},
	{y:917.0,l:-0.1374,s:0.0783,m:15.4901},
	{y:947.0,l:-0.1483,s:0.07848,m:15.537},
	{y:977.0,l:-0.1589,s:0.07868,m:15.5814},
	{y:1007.0,l:-0.1693,s:0.07889,m:15.6236},
	{y:1037.0,l:-0.1795,s:0.07911,m:15.6639},
	{y:1067.0,l:-0.1895,s:0.07934,m:15.7024},
	{y:1097.0,l:-0.1993,s:0.07957,m:15.7395},
	{y:1127.0,l:-0.209,s:0.07982,m:15.7755},
	{y:1157.0,l:-0.2185,s:0.08007,m:15.8105},
	{y:1187.0,l:-0.2278,s:0.08032,m:15.8449},
	{y:1217.0,l:-0.237,s:0.08058,m:15.8788},
	{y:1247.0,l:-0.246,s:0.08084,m:15.9122},
	{y:1277.0,l:-0.2549,s:0.0811,m:15.9451},
	{y:1307.0,l:-0.2637,s:0.08137,m:15.9778},
	{y:1337.0,l:-0.2723,s:0.08164,m:16.01},
	{y:1367.0,l:-0.2808,s:0.08192,m:16.0419},
	{y:1397.0,l:-0.2892,s:0.08219,m:16.0735},
	{y:1427.0,l:-0.2975,s:0.08247,m:16.1048},
	{y:1457.0,l:-0.3056,s:0.08275,m:16.1359},
	{y:1487.0,l:-0.3137,s:0.08303,m:16.1668},
	{y:1517.0,l:-0.3216,s:0.08331,m:16.1977},
	{y:1547.0,l:-0.3295,s:0.08359,m:16.2285},
	{y:1577.0,l:-0.3372,s:0.08387,m:16.2594},
	{y:1607.0,l:-0.3449,s:0.08415,m:16.2904},
	{y:1637.0,l:-0.3524,s:0.08444,m:16.3215},
	{y:1667.0,l:-0.3599,s:0.08472,m:16.3526},
	{y:1697.0,l:-0.3673,s:0.08501,m:16.3838},
	{y:1727.0,l:-0.3746,s:0.08529,m:16.415},
	{y:1757.0,l:-0.3818,s:0.08558,m:16.4463},
	{y:1787.0,l:-0.3889,s:0.08587,m:16.4778},
	{y:1817.0,l:-0.396,s:0.08615,m:16.5094},
	{y:1847.0,l:-0.4029,s:0.08644,m:16.541}
}




define function ZscoreArmCircumferenceForAgetables(sex String, age Decimal):
	if sex = 'female' then  
        First(ArmCircumferenceForAgeFemale c where c.y = base.AgeToMini(age) )
	else 
        First(ArmCircumferenceForAgeMale c where  c.y = base.AgeToMini(age))
            
define function generateZScoreArmCircumferenceForAge(sex System.String, age System.Decimal, weight  System.Decimal)  : 
	 generateZScoreArmCircumferenceForAgedet(ZscoreArmCircumferenceForAgetables(sex,age), weight )

define function generateZScoreArmCircumferenceForAgedet(row Tuple {y System.Decimal,l System.Decimal,s System.Decimal,m System.Decimal}, weight  System.Decimal):
    if row is not null then 
        base.computeZScore(
            weight,
            row.m , 
            row.l ,
            row.s 
        )
    else null


define function generateArmCircumferenceFromAge(sex System.String, age System.Decimal, zscore  System.Decimal) : 
	 generateArmCircumferenceFromAgedet(ZscoreArmCircumferenceForAgetables(sex,age),zscore  )

define function generateArmCircumferenceFromAgedet(row Tuple {y System.Decimal,l System.Decimal,s System.Decimal,m System.Decimal},zscore  System.Decimal) : 
    if row is not null then 
        base.computeReverseZScore(
            zscore,
            row.m , 
            row.l ,
            row.s 
        )
    else null    

    
</code></pre></div>
  </text>
  <url
       value="https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Library/ArmCircumferenceForAge"/>
  <version value="0.1.0"/>
  <name value="ArmCircumferenceForAge"/>
  <status value="active"/>
  <type>
    <coding>
      <system value="http://hl7.org/fhir/ValueSet/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2023-10-04T12:32:21+00:00"/>
  <publisher value="WHO"/>
  <contact>
    <name value="WHO"/>
    <telecom>
      <system value="url"/>
      <value value="http://who.int"/>
    </telecom>
  </contact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource
              value="https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Library/anthrobase"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <resource value="http://fhir.org/guides/who/anc-cds/Library/FHIRHelpers"/>
  </relatedArtifact>
  <parameter>
    <name value="zscore"/>
    <use value="in"/>
    <type value="decimal"/>
  </parameter>
  <parameter>
    <name value="Age"/>
    <use value="in"/>
    <type value="decimal"/>
  </parameter>
  <parameter>
    <name value="sex"/>
    <use value="in"/>
    <type value="decimal"/>
  </parameter>
  <parameter>
    <name value="generateArmCircumferenceFromAge"/>
    <use value="out"/>
    <type value="decimal"/>
  </parameter>
  <parameter>
    <name value="generateZScoreArmCircumferenceForAge"/>
    <use value="out"/>
    <type value="decimal"/>
  </parameter>
  <parameter>
    <name value="ZscoreArmCircumferenceForAgetables_s"/>
    <use value="out"/>
    <type value="decimal"/>
  </parameter>
  <parameter>
    <name value="ZscoreArmCircumferenceForAgetables_m"/>
    <use value="out"/>
    <type value="decimal"/>
  </parameter>
  <parameter>
    <name value="ZscoreArmCircumferenceForAgetables_l"/>
    <use value="out"/>
    <type value="decimal"/>
  </parameter>
  <dataRequirement>
    <type value="Patient"/>
    <profile value="http://hl7.org/fhir/StructureDefinition/Patient"/>
  </dataRequirement>
  <content id="ig-loader-ArmCircumferenceForAge.cql">
    <contentType value="text/cql"/>
    <data
          value="CmxpYnJhcnkgQXJtQ2lyY3VtZmVyZW5jZUZvckFnZSB2ZXJzaW9uICcxLjAuNCcKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKaW5jbHVkZSBhbnRocm9iYXNlIHZlcnNpb24gJzEuMC40JyBjYWxsZWQgYmFzZQppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKCi8vIEFudHJobyBsaWJyYXJ5IGZvciBBcm1DaXJjdW1mZXJlbmNlRm9yQWdlICBaLVNjb3JlIGZyb20gdGhlIGFjYW50aHJvIGZpbGVzCmNvZGVzeXN0ZW0gImFkbWluaXN0cmF0aXZlLWdlbmRlciI6ICdodHRwOi8vaGw3Lm9yZy9maGlyL2FkbWluaXN0cmF0aXZlLWdlbmRlcicKLy9jb2RlICJGZW1hbGUiIDogJ2ZlbWFsZScgZnJvbSAiYWRtaW5pc3RyYXRpdmUtZ2VuZGVyIiAgZGlzcGxheSAnRmVtYWxlJwoKCmRlZmluZSBBcm1DaXJjdW1mZXJlbmNlRm9yQWdlRmVtYWxlOgp7Cgl7eTo5MS4wLGw6LTAuMTczMyxzOjAuMDgyNjIsbToxMy4wMjQ1fSwKCXt5Ojk4LjAsbDotMC4xNzMzLHM6MC4wODI3MSxtOjEzLjExMDd9LAoJe3k6MTA1LjAsbDotMC4xNzMzLHM6MC4wODI4LG06MTMuMTkxOX0sCgl7eToxMTIuMCxsOi0wLjE3MzMsczowLjA4Mjg4LG06MTMuMjY3OX0sCgl7eToxMTkuMCxsOi0wLjE3MzMsczowLjA4Mjk2LG06MTMuMzM4Nn0sCgl7eToxMjYuMCxsOi0wLjE3MzMsczowLjA4MzAzLG06MTMuNDAzOX0sCgl7eToxMzMuMCxsOi0wLjE3MzMsczowLjA4MzA5LG06MTMuNDY0Mn0sCgl7eToxNDAuMCxsOi0wLjE3MzMsczowLjA4MzE2LG06MTMuNTE5N30sCgl7eToxNDcuMCxsOi0wLjE3MzMsczowLjA4MzIxLG06MTMuNTcwOX0sCgl7eToxNTQuMCxsOi0wLjE3MzMsczowLjA4MzI3LG06MTMuNjE4fSwKCXt5OjE2MS4wLGw6LTAuMTczMyxzOjAuMDgzMzEsbToxMy42NjE2fSwKCXt5OjE2OC4wLGw6LTAuMTczMyxzOjAuMDgzMzYsbToxMy43MDE5fSwKCXt5OjE3NS4wLGw6LTAuMTczMyxzOjAuMDgzNCxtOjEzLjczOTR9LAoJe3k6MTgyLjAsbDotMC4xNzMzLHM6MC4wODM0MyxtOjEzLjc3NDF9LAoJe3k6MTk3LjAsbDotMC4xNzMzLHM6MC4wODM0OCxtOjEzLjg0MDd9LAoJe3k6MjI3LjAsbDotMC4xNzMzLHM6MC4wODM1MixtOjEzLjk0Nzd9LAoJe3k6MjU3LjAsbDotMC4xNzMzLHM6MC4wODM0OCxtOjE0LjAyOTJ9LAoJe3k6Mjg3LjAsbDotMC4xNzMzLHM6MC4wODMzNSxtOjE0LjA5MTh9LAoJe3k6MzE3LjAsbDotMC4xNzMzLHM6MC4wODMxNyxtOjE0LjE0MTN9LAoJe3k6MzQ3LjAsbDotMC4xNzMzLHM6MC4wODI5NSxtOjE0LjE4Mjl9LAoJe3k6Mzc3LjAsbDotMC4xNzMzLHM6MC4wODI3LG06MTQuMjIxNX0sCgl7eTo0MDcuMCxsOi0wLjE3MzMsczowLjA4MjQ0LG06MTQuMjYwMn0sCgl7eTo0MzcuMCxsOi0wLjE3MzMsczowLjA4MjE4LG06MTQuMzAwOX0sCgl7eTo0NjcuMCxsOi0wLjE3MzMsczowLjA4MTk0LG06MTQuMzQ0NH0sCgl7eTo0OTcuMCxsOi0wLjE3MzMsczowLjA4MTczLG06MTQuMzkxM30sCgl7eTo1MjcuMCxsOi0wLjE3MzMsczowLjA4MTU0LG06MTQuNDQyfSwKCXt5OjU1Ny4wLGw6LTAuMTczMyxzOjAuMDgxMzksbToxNC40OTY0fSwKCXt5OjU4Ny4wLGw6LTAuMTczMyxzOjAuMDgxMjgsbToxNC41NTQ0fSwKCXt5OjYxNy4wLGw6LTAuMTczMyxzOjAuMDgxMjEsbToxNC42MTZ9LAoJe3k6NjQ3LjAsbDotMC4xNzMzLHM6MC4wODExOCxtOjE0LjY4MTN9LAoJe3k6Njc3LjAsbDotMC4xNzMzLHM6MC4wODExOCxtOjE0Ljc1MDF9LAoJe3k6NzA3LjAsbDotMC4xNzMzLHM6MC4wODEyMixtOjE0LjgyMTd9LAoJe3k6NzM3LjAsbDotMC4xNzMzLHM6MC4wODEyOSxtOjE0Ljg5NTd9LAoJe3k6NzY3LjAsbDotMC4xNzMzLHM6MC4wODEzOCxtOjE0Ljk3MTJ9LAoJe3k6Nzk3LjAsbDotMC4xNzMzLHM6MC4wODE1LG06MTUuMDQ2OH0sCgl7eTo4MjcuMCxsOi0wLjE3MzMsczowLjA4MTY0LG06MTUuMTIxMn0sCgl7eTo4NTcuMCxsOi0wLjE3MzMsczowLjA4MTgxLG06MTUuMTkyOH0sCgl7eTo4ODcuMCxsOi0wLjE3MzMsczowLjA4MTk5LG06MTUuMjYwOX0sCgl7eTo5MTcuMCxsOi0wLjE3MzMsczowLjA4MjIsbToxNS4zMjQ4fSwKCXt5Ojk0Ny4wLGw6LTAuMTczMyxzOjAuMDgyNDMsbToxNS4zODQ1fSwKCXt5Ojk3Ny4wLGw6LTAuMTczMyxzOjAuMDgyNjgsbToxNS40NDA1fSwKCXt5OjEwMDcuMCxsOi0wLjE3MzMsczowLjA4Mjk0LG06MTUuNDk0fSwKCXt5OjEwMzcuMCxsOi0wLjE3MzMsczowLjA4MzIzLG06MTUuNTQ1OX0sCgl7eToxMDY3LjAsbDotMC4xNzMzLHM6MC4wODM1MyxtOjE1LjU5N30sCgl7eToxMDk3LjAsbDotMC4xNzMzLHM6MC4wODM4NCxtOjE1LjY0Nzd9LAoJe3k6MTEyNy4wLGw6LTAuMTczMyxzOjAuMDg0MTcsbToxNS42OTgzfSwKCXt5OjExNTcuMCxsOi0wLjE3MzMsczowLjA4NDUyLG06MTUuNzQ5fSwKCXt5OjExODcuMCxsOi0wLjE3MzMsczowLjA4NDg3LG06MTUuNzk5Nn0sCgl7eToxMjE3LjAsbDotMC4xNzMzLHM6MC4wODUyNCxtOjE1Ljg1fSwKCXt5OjEyNDcuMCxsOi0wLjE3MzMsczowLjA4NTYyLG06MTUuOTAwMX0sCgl7eToxMjc3LjAsbDotMC4xNzMzLHM6MC4wODYsbToxNS45NDk2fSwKCXt5OjEzMDcuMCxsOi0wLjE3MzMsczowLjA4NjQsbToxNS45OTg2fSwKCXt5OjEzMzcuMCxsOi0wLjE3MzMsczowLjA4NjgsbToxNi4wNDczfSwKCXt5OjEzNjcuMCxsOi0wLjE3MzMsczowLjA4NzIsbToxNi4wOTU3fSwKCXt5OjEzOTcuMCxsOi0wLjE3MzMsczowLjA4NzYsbToxNi4xNDQxfSwKCXt5OjE0MjcuMCxsOi0wLjE3MzMsczowLjA4ODAxLG06MTYuMTkyNX0sCgl7eToxNDU3LjAsbDotMC4xNzMzLHM6MC4wODg0MixtOjE2LjI0MTJ9LAoJe3k6MTQ4Ny4wLGw6LTAuMTczMyxzOjAuMDg4ODQsbToxNi4yOTAxfSwKCXt5OjE1MTcuMCxsOi0wLjE3MzMsczowLjA4OTI1LG06MTYuMzM5NX0sCgl7eToxNTQ3LjAsbDotMC4xNzMzLHM6MC4wODk2NixtOjE2LjM4OTJ9LAoJe3k6MTU3Ny4wLGw6LTAuMTczMyxzOjAuMDkwMDgsbToxNi40MzkzfSwKCXt5OjE2MDcuMCxsOi0wLjE3MzMsczowLjA5MDQ5LG06MTYuNDg5N30sCgl7eToxNjM3LjAsbDotMC4xNzMzLHM6MC4wOTA5LG06MTYuNTQwM30sCgl7eToxNjY3LjAsbDotMC4xNzMzLHM6MC4wOTEzLG06MTYuNTkwN30sCgl7eToxNjk3LjAsbDotMC4xNzMzLHM6MC4wOTE3MSxtOjE2LjY0MX0sCgl7eToxNzI3LjAsbDotMC4xNzMzLHM6MC4wOTIxMSxtOjE2LjY5MDh9LAoJe3k6MTc1Ny4wLGw6LTAuMTczMyxzOjAuMDkyNTEsbToxNi43NDAyfSwKCXt5OjE3ODcuMCxsOi0wLjE3MzMsczowLjA5MjksbToxNi43ODkxfSwKCXt5OjE4MTcuMCxsOi0wLjE3MzMsczowLjA5MzI5LG06MTYuODM3N30sCgl7eToxODQ3LjAsbDotMC4xNzMzLHM6MC4wOTM2OCxtOjE2Ljg4Nn0KfQoKZGVmaW5lIEFybUNpcmN1bWZlcmVuY2VGb3JBZ2VNYWxlOgp7Cgl7eTo5MS4wLGw6MC4zOTMzLHM6MC4wNzQ3NCxtOjEzLjQ3Nzl9LAoJe3k6OTguMCxsOjAuMzgyMSxzOjAuMDc0ODYsbToxMy41NjA3fSwKCXt5OjEwNS4wLGw6MC4zNzE0LHM6MC4wNzQ5OCxtOjEzLjYzOTJ9LAoJe3k6MTEyLjAsbDowLjM2MTEsczowLjA3NTA5LG06MTMuNzEzNH0sCgl7eToxMTkuMCxsOjAuMzUxMyxzOjAuMDc1MTksbToxMy43ODM0fSwKCXt5OjEyNi4wLGw6MC4zNDE4LHM6MC4wNzUzLG06MTMuODQ5fSwKCXt5OjEzMy4wLGw6MC4zMzI3LHM6MC4wNzU0LG06MTMuOTEwNX0sCgl7eToxNDAuMCxsOjAuMzIzOSxzOjAuMDc1NDksbToxMy45Njc5fSwKCXt5OjE0Ny4wLGw6MC4zMTUzLHM6MC4wNzU1OSxtOjE0LjAyMTR9LAoJe3k6MTU0LjAsbDowLjMwNyxzOjAuMDc1NjgsbToxNC4wNzF9LAoJe3k6MTYxLjAsbDowLjI5OSxzOjAuMDc1NzcsbToxNC4xMTd9LAoJe3k6MTY4LjAsbDowLjI5MTIsczowLjA3NTg1LG06MTQuMTU5N30sCgl7eToxNzUuMCxsOjAuMjgzNixzOjAuMDc1OTMsbToxNC4xOTkyfSwKCXt5OjE4Mi4wLGw6MC4yNzYyLHM6MC4wNzYsbToxNC4yMzU4fSwKCXt5OjE5Ny4wLGw6MC4yNjA5LHM6MC4wNzYxNSxtOjE0LjMwNTN9LAoJe3k6MjI3LjAsbDowLjIzMjUsczowLjA3NjQsbToxNC40MTM1fSwKCXt5OjI1Ny4wLGw6MC4yMDY0LHM6MC4wNzY1NyxtOjE0LjQ5MDd9LAoJe3k6Mjg3LjAsbDowLjE4MjIsczowLjA3NjcsbToxNC41NDcxfSwKCXt5OjMxNy4wLGw6MC4xNTk2LHM6MC4wNzY3OSxtOjE0LjU5MDJ9LAoJe3k6MzQ3LjAsbDowLjEzODQsczowLjA3Njg2LG06MTQuNjI1Nn0sCgl7eTozNzcuMCxsOjAuMTE4NCxzOjAuMDc2OTEsbToxNC42NTd9LAoJe3k6NDA3LjAsbDowLjA5OTMsczowLjA3Njk2LG06MTQuNjg3fSwKCXt5OjQzNy4wLGw6MC4wODEyLHM6MC4wNzcsbToxNC43MTc0fSwKCXt5OjQ2Ny4wLGw6MC4wNjM4LHM6MC4wNzcwNCxtOjE0Ljc0OTV9LAoJe3k6NDk3LjAsbDowLjA0NzEsczowLjA3NzA4LG06MTQuNzg0Mn0sCgl7eTo1MjcuMCxsOjAuMDMxMSxzOjAuMDc3MTEsbToxNC44MjE4fSwKCXt5OjU1Ny4wLGw6MC4wMTU3LHM6MC4wNzcxNCxtOjE0Ljg2MjJ9LAoJe3k6NTg3LjAsbDowLjAwMDgsczowLjA3NzE4LG06MTQuOTA1NH0sCgl7eTo2MTcuMCxsOi0wLjAxMzYsczowLjA3NzIyLG06MTQuOTUxOX0sCgl7eTo2NDcuMCxsOi0wLjAyNzUsczowLjA3NzI3LG06MTUuMDAxNn0sCgl7eTo2NzcuMCxsOi0wLjA0MTEsczowLjA3NzMyLG06MTUuMDU0Mn0sCgl7eTo3MDcuMCxsOi0wLjA1NDIsczowLjA3NzM5LG06MTUuMTA5M30sCgl7eTo3MzcuMCxsOi0wLjA2NyxzOjAuMDc3NDgsbToxNS4xNjU5fSwKCXt5Ojc2Ny4wLGw6LTAuMDc5NSxzOjAuMDc3NTgsbToxNS4yMjMxfSwKCXt5Ojc5Ny4wLGw6LTAuMDkxNixzOjAuMDc3NjksbToxNS4yNzk5fSwKCXt5OjgyNy4wLGw6LTAuMTAzNSxzOjAuMDc3ODIsbToxNS4zMzU0fSwKCXt5Ojg1Ny4wLGw6LTAuMTE1LHM6MC4wNzc5NixtOjE1LjM4OTJ9LAoJe3k6ODg3LjAsbDotMC4xMjY0LHM6MC4wNzgxMixtOjE1LjQ0MDh9LAoJe3k6OTE3LjAsbDotMC4xMzc0LHM6MC4wNzgzLG06MTUuNDkwMX0sCgl7eTo5NDcuMCxsOi0wLjE0ODMsczowLjA3ODQ4LG06MTUuNTM3fSwKCXt5Ojk3Ny4wLGw6LTAuMTU4OSxzOjAuMDc4NjgsbToxNS41ODE0fSwKCXt5OjEwMDcuMCxsOi0wLjE2OTMsczowLjA3ODg5LG06MTUuNjIzNn0sCgl7eToxMDM3LjAsbDotMC4xNzk1LHM6MC4wNzkxMSxtOjE1LjY2Mzl9LAoJe3k6MTA2Ny4wLGw6LTAuMTg5NSxzOjAuMDc5MzQsbToxNS43MDI0fSwKCXt5OjEwOTcuMCxsOi0wLjE5OTMsczowLjA3OTU3LG06MTUuNzM5NX0sCgl7eToxMTI3LjAsbDotMC4yMDksczowLjA3OTgyLG06MTUuNzc1NX0sCgl7eToxMTU3LjAsbDotMC4yMTg1LHM6MC4wODAwNyxtOjE1LjgxMDV9LAoJe3k6MTE4Ny4wLGw6LTAuMjI3OCxzOjAuMDgwMzIsbToxNS44NDQ5fSwKCXt5OjEyMTcuMCxsOi0wLjIzNyxzOjAuMDgwNTgsbToxNS44Nzg4fSwKCXt5OjEyNDcuMCxsOi0wLjI0NixzOjAuMDgwODQsbToxNS45MTIyfSwKCXt5OjEyNzcuMCxsOi0wLjI1NDksczowLjA4MTEsbToxNS45NDUxfSwKCXt5OjEzMDcuMCxsOi0wLjI2MzcsczowLjA4MTM3LG06MTUuOTc3OH0sCgl7eToxMzM3LjAsbDotMC4yNzIzLHM6MC4wODE2NCxtOjE2LjAxfSwKCXt5OjEzNjcuMCxsOi0wLjI4MDgsczowLjA4MTkyLG06MTYuMDQxOX0sCgl7eToxMzk3LjAsbDotMC4yODkyLHM6MC4wODIxOSxtOjE2LjA3MzV9LAoJe3k6MTQyNy4wLGw6LTAuMjk3NSxzOjAuMDgyNDcsbToxNi4xMDQ4fSwKCXt5OjE0NTcuMCxsOi0wLjMwNTYsczowLjA4Mjc1LG06MTYuMTM1OX0sCgl7eToxNDg3LjAsbDotMC4zMTM3LHM6MC4wODMwMyxtOjE2LjE2Njh9LAoJe3k6MTUxNy4wLGw6LTAuMzIxNixzOjAuMDgzMzEsbToxNi4xOTc3fSwKCXt5OjE1NDcuMCxsOi0wLjMyOTUsczowLjA4MzU5LG06MTYuMjI4NX0sCgl7eToxNTc3LjAsbDotMC4zMzcyLHM6MC4wODM4NyxtOjE2LjI1OTR9LAoJe3k6MTYwNy4wLGw6LTAuMzQ0OSxzOjAuMDg0MTUsbToxNi4yOTA0fSwKCXt5OjE2MzcuMCxsOi0wLjM1MjQsczowLjA4NDQ0LG06MTYuMzIxNX0sCgl7eToxNjY3LjAsbDotMC4zNTk5LHM6MC4wODQ3MixtOjE2LjM1MjZ9LAoJe3k6MTY5Ny4wLGw6LTAuMzY3MyxzOjAuMDg1MDEsbToxNi4zODM4fSwKCXt5OjE3MjcuMCxsOi0wLjM3NDYsczowLjA4NTI5LG06MTYuNDE1fSwKCXt5OjE3NTcuMCxsOi0wLjM4MTgsczowLjA4NTU4LG06MTYuNDQ2M30sCgl7eToxNzg3LjAsbDotMC4zODg5LHM6MC4wODU4NyxtOjE2LjQ3Nzh9LAoJe3k6MTgxNy4wLGw6LTAuMzk2LHM6MC4wODYxNSxtOjE2LjUwOTR9LAoJe3k6MTg0Ny4wLGw6LTAuNDAyOSxzOjAuMDg2NDQsbToxNi41NDF9Cn0KCgoKCmRlZmluZSBmdW5jdGlvbiBac2NvcmVBcm1DaXJjdW1mZXJlbmNlRm9yQWdldGFibGVzKHNleCBTdHJpbmcsIGFnZSBEZWNpbWFsKToKCWlmIHNleCA9ICdmZW1hbGUnIHRoZW4gIAogICAgICAgIEZpcnN0KEFybUNpcmN1bWZlcmVuY2VGb3JBZ2VGZW1hbGUgYyB3aGVyZSBjLnkgPSBiYXNlLkFnZVRvTWluaShhZ2UpICkKCWVsc2UgCiAgICAgICAgRmlyc3QoQXJtQ2lyY3VtZmVyZW5jZUZvckFnZU1hbGUgYyB3aGVyZSAgYy55ID0gYmFzZS5BZ2VUb01pbmkoYWdlKSkKICAgICAgICAgICAgCmRlZmluZSBmdW5jdGlvbiBnZW5lcmF0ZVpTY29yZUFybUNpcmN1bWZlcmVuY2VGb3JBZ2Uoc2V4IFN5c3RlbS5TdHJpbmcsIGFnZSBTeXN0ZW0uRGVjaW1hbCwgd2VpZ2h0ICBTeXN0ZW0uRGVjaW1hbCkgIDogCgkgZ2VuZXJhdGVaU2NvcmVBcm1DaXJjdW1mZXJlbmNlRm9yQWdlZGV0KFpzY29yZUFybUNpcmN1bWZlcmVuY2VGb3JBZ2V0YWJsZXMoc2V4LGFnZSksIHdlaWdodCApCgpkZWZpbmUgZnVuY3Rpb24gZ2VuZXJhdGVaU2NvcmVBcm1DaXJjdW1mZXJlbmNlRm9yQWdlZGV0KHJvdyBUdXBsZSB7eSBTeXN0ZW0uRGVjaW1hbCxsIFN5c3RlbS5EZWNpbWFsLHMgU3lzdGVtLkRlY2ltYWwsbSBTeXN0ZW0uRGVjaW1hbH0sIHdlaWdodCAgU3lzdGVtLkRlY2ltYWwpOgogICAgaWYgcm93IGlzIG5vdCBudWxsIHRoZW4gCiAgICAgICAgYmFzZS5jb21wdXRlWlNjb3JlKAogICAgICAgICAgICB3ZWlnaHQsCiAgICAgICAgICAgIHJvdy5tICwgCiAgICAgICAgICAgIHJvdy5sICwKICAgICAgICAgICAgcm93LnMgCiAgICAgICAgKQogICAgZWxzZSBudWxsCgoKZGVmaW5lIGZ1bmN0aW9uIGdlbmVyYXRlQXJtQ2lyY3VtZmVyZW5jZUZyb21BZ2Uoc2V4IFN5c3RlbS5TdHJpbmcsIGFnZSBTeXN0ZW0uRGVjaW1hbCwgenNjb3JlICBTeXN0ZW0uRGVjaW1hbCkgOiAKCSBnZW5lcmF0ZUFybUNpcmN1bWZlcmVuY2VGcm9tQWdlZGV0KFpzY29yZUFybUNpcmN1bWZlcmVuY2VGb3JBZ2V0YWJsZXMoc2V4LGFnZSksenNjb3JlICApCgpkZWZpbmUgZnVuY3Rpb24gZ2VuZXJhdGVBcm1DaXJjdW1mZXJlbmNlRnJvbUFnZWRldChyb3cgVHVwbGUge3kgU3lzdGVtLkRlY2ltYWwsbCBTeXN0ZW0uRGVjaW1hbCxzIFN5c3RlbS5EZWNpbWFsLG0gU3lzdGVtLkRlY2ltYWx9LHpzY29yZSAgU3lzdGVtLkRlY2ltYWwpIDogCiAgICBpZiByb3cgaXMgbm90IG51bGwgdGhlbiAKICAgICAgICBiYXNlLmNvbXB1dGVSZXZlcnNlWlNjb3JlKAogICAgICAgICAgICB6c2NvcmUsCiAgICAgICAgICAgIHJvdy5tICwgCiAgICAgICAgICAgIHJvdy5sICwKICAgICAgICAgICAgcm93LnMgCiAgICAgICAgKQogICAgZWxzZSBudWxsICAgIAoKICAgIAo="/>
  </content>
</Library>