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

: WeightForAge - JSON Representation

Active as of 2023-10-04

Raw json | Download


{
  "resourceType" : "Library",
  "id" : "WeightForAge",
  "text" : {
    "status" : "generated",
    "div" : "<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>generateWeightFromAge</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>generateZScoreWeightForAge</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoreWeightForAgetables_s</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoreWeightForAgetables_m</td><td>out</td><td/><td/><td>decimal</td></tr><tr><td>ZscoreWeightForAgetables_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\">\nlibrary WeightForAge version '1.0.4'\nusing FHIR version '4.0.1'\ninclude anthrobase version '1.0.4' called base\ninclude FHIRHelpers version '4.0.1' called FHIRHelpers\n\n// Antrho library for WeightForAge  Z-Score from the weianthro files\ncodesystem &quot;administrative-gender&quot;: 'http://hl7.org/fhir/administrative-gender'\n//code &quot;Female&quot; : 'female' from &quot;administrative-gender&quot;  display 'Female'\n\n\ndefine WeightForAgeFemale:\n{\n\t{y:0.0,l:0.3809,s:0.14171,m:3.2322},\n\t{y:1.0,l:0.3259,s:0.14578,m:3.1957},\n\t{y:2.0,l:0.3101,s:0.14637,m:3.2104},\n\t{y:3.0,l:0.2986,s:0.14657,m:3.2315},\n\t{y:4.0,l:0.2891,s:0.14658,m:3.2558},\n\t{y:5.0,l:0.281,s:0.14646,m:3.2821},\n\t{y:6.0,l:0.2737,s:0.14626,m:3.3099},\n\t{y:7.0,l:0.2671,s:0.146,m:3.3388},\n\t{y:8.0,l:0.2609,s:0.14569,m:3.3687},\n\t{y:9.0,l:0.2551,s:0.14534,m:3.3995},\n\t{y:10.0,l:0.2497,s:0.14498,m:3.4314},\n\t{y:11.0,l:0.2446,s:0.14459,m:3.4643},\n\t{y:12.0,l:0.2397,s:0.1442,m:3.4983},\n\t{y:13.0,l:0.2349,s:0.1438,m:3.5333},\n\t{y:14.0,l:0.2304,s:0.14339,m:3.5693},\n\t{y:15.0,l:0.226,s:0.14299,m:3.6063},\n\t{y:16.0,l:0.2218,s:0.14258,m:3.6438},\n\t{y:17.0,l:0.2177,s:0.14218,m:3.6818},\n\t{y:18.0,l:0.2137,s:0.14177,m:3.7201},\n\t{y:19.0,l:0.2099,s:0.14138,m:3.7584},\n\t{y:20.0,l:0.2061,s:0.14098,m:3.7968},\n\t{y:21.0,l:0.2024,s:0.1406,m:3.8352},\n\t{y:22.0,l:0.1989,s:0.14021,m:3.8735},\n\t{y:23.0,l:0.1954,s:0.13984,m:3.9116},\n\t{y:24.0,l:0.1919,s:0.13947,m:3.9495},\n\t{y:25.0,l:0.1886,s:0.1391,m:3.9872},\n\t{y:26.0,l:0.1853,s:0.13875,m:4.0247},\n\t{y:27.0,l:0.1821,s:0.1384,m:4.0618},\n\t{y:28.0,l:0.1789,s:0.13805,m:4.0987},\n\t{y:29.0,l:0.1758,s:0.13771,m:4.1353},\n\t{y:30.0,l:0.1727,s:0.13738,m:4.1716},\n\t{y:31.0,l:0.1697,s:0.13706,m:4.2075},\n\t{y:32.0,l:0.1668,s:0.13674,m:4.2431},\n\t{y:33.0,l:0.1638,s:0.13643,m:4.2783},\n\t{y:34.0,l:0.161,s:0.13613,m:4.3131},\n\t{y:35.0,l:0.1582,s:0.13583,m:4.3476},\n\t{y:36.0,l:0.1554,s:0.13554,m:4.3818},\n\t{y:37.0,l:0.1526,s:0.13526,m:4.4155},\n\t{y:38.0,l:0.1499,s:0.13498,m:4.449},\n\t{y:39.0,l:0.1473,s:0.1347,m:4.482},\n\t{y:40.0,l:0.1446,s:0.13444,m:4.5148},\n\t{y:41.0,l:0.142,s:0.13418,m:4.5472},\n\t{y:42.0,l:0.1395,s:0.13392,m:4.5793},\n\t{y:43.0,l:0.1369,s:0.13367,m:4.611},\n\t{y:44.0,l:0.1344,s:0.13342,m:4.6425},\n\t{y:45.0,l:0.132,s:0.13318,m:4.6736},\n\t{y:46.0,l:0.1295,s:0.13295,m:4.7044},\n\t{y:47.0,l:0.1271,s:0.13272,m:4.7349},\n\t{y:48.0,l:0.1247,s:0.1325,m:4.7651},\n\t{y:49.0,l:0.1224,s:0.13228,m:4.795},\n\t{y:50.0,l:0.12,s:0.13206,m:4.8245},\n\t{y:51.0,l:0.1177,s:0.13185,m:4.8538},\n\t{y:52.0,l:0.1154,s:0.13165,m:4.8828},\n\t{y:53.0,l:0.1132,s:0.13145,m:4.9115},\n\t{y:54.0,l:0.1109,s:0.13125,m:4.9399},\n\t{y:55.0,l:0.1087,s:0.13106,m:4.968},\n\t{y:56.0,l:0.1065,s:0.13087,m:4.9959},\n\t{y:57.0,l:0.1044,s:0.13068,m:5.0235},\n\t{y:58.0,l:0.1022,s:0.1305,m:5.0509},\n\t{y:59.0,l:0.1001,s:0.13033,m:5.078},\n\t{y:60.0,l:0.098,s:0.13015,m:5.1049},\n\t{y:63.0,l:0.0918,s:0.12966,m:5.1842},\n\t{y:70.0,l:0.0779,s:0.12861,m:5.3618},\n\t{y:77.0,l:0.0648,s:0.1277,m:5.5295},\n\t{y:84.0,l:0.0525,s:0.12691,m:5.6883},\n\t{y:91.0,l:0.0407,s:0.12622,m:5.8393},\n\t{y:98.0,l:0.0295,s:0.12561,m:5.9831},\n\t{y:105.0,l:0.0188,s:0.12507,m:6.1202},\n\t{y:112.0,l:0.0086,s:0.12459,m:6.2511},\n\t{y:119.0,l:-0.0013,s:0.12417,m:6.3761},\n\t{y:126.0,l:-0.0107,s:0.1238,m:6.4956},\n\t{y:133.0,l:-0.0198,s:0.12346,m:6.6099},\n\t{y:140.0,l:-0.0285,s:0.12317,m:6.7192},\n\t{y:147.0,l:-0.0369,s:0.12291,m:6.8238},\n\t{y:154.0,l:-0.045,s:0.12268,m:6.9241},\n\t{y:161.0,l:-0.0529,s:0.12248,m:7.0205},\n\t{y:168.0,l:-0.0605,s:0.12231,m:7.1133},\n\t{y:175.0,l:-0.0678,s:0.12217,m:7.2029},\n\t{y:182.0,l:-0.0749,s:0.12205,m:7.2894},\n\t{y:197.0,l:-0.0894,s:0.12188,m:7.4657},\n\t{y:227.0,l:-0.1157,s:0.12177,m:7.7867},\n\t{y:257.0,l:-0.1388,s:0.12187,m:8.0746},\n\t{y:287.0,l:-0.1593,s:0.12209,m:8.3369},\n\t{y:317.0,l:-0.1774,s:0.12233,m:8.5808},\n\t{y:347.0,l:-0.1935,s:0.12256,m:8.8119},\n\t{y:377.0,l:-0.2077,s:0.12274,m:9.0344},\n\t{y:407.0,l:-0.2204,s:0.12288,m:9.2511},\n\t{y:437.0,l:-0.2317,s:0.12296,m:9.4637},\n\t{y:467.0,l:-0.2418,s:0.12301,m:9.6735},\n\t{y:497.0,l:-0.2507,s:0.12304,m:9.8816},\n\t{y:527.0,l:-0.2587,s:0.12307,m:10.0884},\n\t{y:557.0,l:-0.2658,s:0.12311,m:10.2939},\n\t{y:587.0,l:-0.2721,s:0.12317,m:10.4985},\n\t{y:617.0,l:-0.2777,s:0.12326,m:10.7025},\n\t{y:647.0,l:-0.2827,s:0.12339,m:10.9065},\n\t{y:677.0,l:-0.2872,s:0.12355,m:11.1111},\n\t{y:707.0,l:-0.2912,s:0.12373,m:11.3163},\n\t{y:737.0,l:-0.2948,s:0.12395,m:11.5221},\n\t{y:767.0,l:-0.2981,s:0.12419,m:11.7279},\n\t{y:797.0,l:-0.301,s:0.12446,m:11.9331},\n\t{y:827.0,l:-0.3037,s:0.12477,m:12.1366},\n\t{y:857.0,l:-0.3061,s:0.12512,m:12.3375},\n\t{y:887.0,l:-0.3083,s:0.12551,m:12.5356},\n\t{y:917.0,l:-0.3103,s:0.12593,m:12.7305},\n\t{y:947.0,l:-0.3122,s:0.12639,m:12.9224},\n\t{y:977.0,l:-0.314,s:0.12688,m:13.1119},\n\t{y:1007.0,l:-0.3156,s:0.12741,m:13.2996},\n\t{y:1037.0,l:-0.3172,s:0.12798,m:13.4863},\n\t{y:1067.0,l:-0.3187,s:0.12858,m:13.6723},\n\t{y:1097.0,l:-0.3202,s:0.12922,m:13.858},\n\t{y:1127.0,l:-0.3216,s:0.12989,m:14.0435},\n\t{y:1157.0,l:-0.323,s:0.1306,m:14.2288},\n\t{y:1187.0,l:-0.3243,s:0.13134,m:14.4136},\n\t{y:1217.0,l:-0.3257,s:0.13211,m:14.5979},\n\t{y:1247.0,l:-0.327,s:0.13291,m:14.7816},\n\t{y:1277.0,l:-0.3283,s:0.13372,m:14.9644},\n\t{y:1307.0,l:-0.3296,s:0.13455,m:15.1463},\n\t{y:1337.0,l:-0.3308,s:0.13539,m:15.3275},\n\t{y:1367.0,l:-0.3321,s:0.13623,m:15.5079},\n\t{y:1397.0,l:-0.3334,s:0.13707,m:15.6877},\n\t{y:1427.0,l:-0.3347,s:0.1379,m:15.8669},\n\t{y:1457.0,l:-0.3359,s:0.13873,m:16.0459},\n\t{y:1487.0,l:-0.3372,s:0.13956,m:16.2246},\n\t{y:1517.0,l:-0.3385,s:0.14038,m:16.4032},\n\t{y:1547.0,l:-0.3398,s:0.14118,m:16.5817},\n\t{y:1577.0,l:-0.3411,s:0.14198,m:16.76},\n\t{y:1607.0,l:-0.3424,s:0.14277,m:16.9381},\n\t{y:1637.0,l:-0.3437,s:0.14354,m:17.1159},\n\t{y:1667.0,l:-0.345,s:0.14431,m:17.2931},\n\t{y:1697.0,l:-0.3463,s:0.14506,m:17.4696},\n\t{y:1727.0,l:-0.3476,s:0.14581,m:17.6453},\n\t{y:1757.0,l:-0.3489,s:0.14654,m:17.82},\n\t{y:1787.0,l:-0.3502,s:0.14727,m:17.9937},\n\t{y:1817.0,l:-0.3514,s:0.14799,m:18.1663},\n\t{y:1847.0,l:-0.3527,s:0.14871,m:18.3378}\n}\n\ndefine WeightForAgeMale:\n{\n\t{y:0.0,l:0.3487,s:0.14602,m:3.3464},\n\t{y:1.0,l:0.3127,s:0.14693,m:3.3174},\n\t{y:2.0,l:0.3029,s:0.14676,m:3.337},\n\t{y:3.0,l:0.2959,s:0.14647,m:3.3627},\n\t{y:4.0,l:0.2903,s:0.14611,m:3.3915},\n\t{y:5.0,l:0.2855,s:0.14571,m:3.4223},\n\t{y:6.0,l:0.2813,s:0.14528,m:3.4545},\n\t{y:7.0,l:0.2776,s:0.14483,m:3.4879},\n\t{y:8.0,l:0.2742,s:0.14436,m:3.5222},\n\t{y:9.0,l:0.2711,s:0.14388,m:3.5576},\n\t{y:10.0,l:0.2681,s:0.14339,m:3.5941},\n\t{y:11.0,l:0.2654,s:0.1429,m:3.6319},\n\t{y:12.0,l:0.2628,s:0.14241,m:3.671},\n\t{y:13.0,l:0.2604,s:0.14192,m:3.7113},\n\t{y:14.0,l:0.2581,s:0.14142,m:3.7529},\n\t{y:15.0,l:0.2558,s:0.14093,m:3.7956},\n\t{y:16.0,l:0.2537,s:0.14044,m:3.8389},\n\t{y:17.0,l:0.2517,s:0.13996,m:3.8828},\n\t{y:18.0,l:0.2497,s:0.13948,m:3.927},\n\t{y:19.0,l:0.2478,s:0.139,m:3.9714},\n\t{y:20.0,l:0.246,s:0.13853,m:4.0158},\n\t{y:21.0,l:0.2442,s:0.13807,m:4.0603},\n\t{y:22.0,l:0.2425,s:0.13761,m:4.1046},\n\t{y:23.0,l:0.2408,s:0.13715,m:4.1489},\n\t{y:24.0,l:0.2392,s:0.1367,m:4.193},\n\t{y:25.0,l:0.2376,s:0.13626,m:4.2369},\n\t{y:26.0,l:0.2361,s:0.13582,m:4.2806},\n\t{y:27.0,l:0.2346,s:0.13539,m:4.324},\n\t{y:28.0,l:0.2331,s:0.13497,m:4.3671},\n\t{y:29.0,l:0.2317,s:0.13455,m:4.41},\n\t{y:30.0,l:0.2303,s:0.13413,m:4.4525},\n\t{y:31.0,l:0.229,s:0.13372,m:4.4946},\n\t{y:32.0,l:0.2276,s:0.13332,m:4.5363},\n\t{y:33.0,l:0.2263,s:0.13292,m:4.5776},\n\t{y:34.0,l:0.225,s:0.13253,m:4.6185},\n\t{y:35.0,l:0.2237,s:0.13215,m:4.659},\n\t{y:36.0,l:0.2225,s:0.13177,m:4.699},\n\t{y:37.0,l:0.2213,s:0.13139,m:4.7386},\n\t{y:38.0,l:0.2201,s:0.13102,m:4.7778},\n\t{y:39.0,l:0.2189,s:0.13066,m:4.8166},\n\t{y:40.0,l:0.2178,s:0.1303,m:4.8549},\n\t{y:41.0,l:0.2166,s:0.12994,m:4.8928},\n\t{y:42.0,l:0.2155,s:0.1296,m:4.9303},\n\t{y:43.0,l:0.2144,s:0.12925,m:4.9674},\n\t{y:44.0,l:0.2133,s:0.12891,m:5.0041},\n\t{y:45.0,l:0.2122,s:0.12858,m:5.0404},\n\t{y:46.0,l:0.2112,s:0.12825,m:5.0763},\n\t{y:47.0,l:0.2101,s:0.12792,m:5.1118},\n\t{y:48.0,l:0.2091,s:0.1276,m:5.1469},\n\t{y:49.0,l:0.2081,s:0.12729,m:5.1817},\n\t{y:50.0,l:0.2071,s:0.12698,m:5.2161},\n\t{y:51.0,l:0.2061,s:0.12667,m:5.2501},\n\t{y:52.0,l:0.2052,s:0.12637,m:5.2837},\n\t{y:53.0,l:0.2042,s:0.12607,m:5.3171},\n\t{y:54.0,l:0.2032,s:0.12577,m:5.35},\n\t{y:55.0,l:0.2023,s:0.12548,m:5.3826},\n\t{y:56.0,l:0.2014,s:0.1252,m:5.4149},\n\t{y:57.0,l:0.2005,s:0.12491,m:5.4468},\n\t{y:58.0,l:0.1996,s:0.12463,m:5.4784},\n\t{y:59.0,l:0.1987,s:0.12436,m:5.5097},\n\t{y:60.0,l:0.1978,s:0.12409,m:5.5407},\n\t{y:63.0,l:0.1952,s:0.1233,m:5.6319},\n\t{y:70.0,l:0.1894,s:0.12157,m:5.8346},\n\t{y:77.0,l:0.184,s:0.12001,m:6.0242},\n\t{y:84.0,l:0.1789,s:0.1186,m:6.2019},\n\t{y:91.0,l:0.174,s:0.11732,m:6.369},\n\t{y:98.0,l:0.1694,s:0.11618,m:6.5265},\n\t{y:105.0,l:0.1651,s:0.11516,m:6.6755},\n\t{y:112.0,l:0.1609,s:0.11425,m:6.8168},\n\t{y:119.0,l:0.1568,s:0.11345,m:6.9513},\n\t{y:126.0,l:0.1529,s:0.11274,m:7.0794},\n\t{y:133.0,l:0.1492,s:0.11212,m:7.2018},\n\t{y:140.0,l:0.1456,s:0.11158,m:7.3187},\n\t{y:147.0,l:0.1421,s:0.11111,m:7.4307},\n\t{y:154.0,l:0.1387,s:0.1107,m:7.5379},\n\t{y:161.0,l:0.1354,s:0.11035,m:7.6406},\n\t{y:168.0,l:0.1322,s:0.11005,m:7.7394},\n\t{y:175.0,l:0.129,s:0.1098,m:7.8344},\n\t{y:182.0,l:0.126,s:0.10959,m:7.926},\n\t{y:197.0,l:0.1197,s:0.10925,m:8.112},\n\t{y:227.0,l:0.1081,s:0.1089,m:8.4474},\n\t{y:257.0,l:0.0974,s:0.1088,m:8.7453},\n\t{y:287.0,l:0.0875,s:0.10884,m:9.0169},\n\t{y:317.0,l:0.0782,s:0.10896,m:9.2691},\n\t{y:347.0,l:0.0695,s:0.10913,m:9.5077},\n\t{y:377.0,l:0.0613,s:0.10934,m:9.7364},\n\t{y:407.0,l:0.0534,s:0.10959,m:9.9575},\n\t{y:437.0,l:0.046,s:0.10987,m:10.1728},\n\t{y:467.0,l:0.0389,s:0.11019,m:10.3839},\n\t{y:497.0,l:0.032,s:0.11053,m:10.5918},\n\t{y:527.0,l:0.0255,s:0.11091,m:10.7971},\n\t{y:557.0,l:0.0192,s:0.11132,m:11.0},\n\t{y:587.0,l:0.013,s:0.11177,m:11.2011},\n\t{y:617.0,l:0.0071,s:0.11224,m:11.4011},\n\t{y:647.0,l:0.0014,s:0.11275,m:11.6005},\n\t{y:677.0,l:-0.0041,s:0.11327,m:11.7991},\n\t{y:707.0,l:-0.0095,s:0.11382,m:11.9971},\n\t{y:737.0,l:-0.0148,s:0.11439,m:12.1941},\n\t{y:767.0,l:-0.0199,s:0.11497,m:12.3895},\n\t{y:797.0,l:-0.0249,s:0.11555,m:12.5826},\n\t{y:827.0,l:-0.0297,s:0.11614,m:12.7728},\n\t{y:857.0,l:-0.0345,s:0.11673,m:12.9597},\n\t{y:887.0,l:-0.0391,s:0.11731,m:13.1431},\n\t{y:917.0,l:-0.0437,s:0.11788,m:13.3231},\n\t{y:947.0,l:-0.0481,s:0.11845,m:13.5},\n\t{y:977.0,l:-0.0525,s:0.11902,m:13.674},\n\t{y:1007.0,l:-0.0567,s:0.11957,m:13.8455},\n\t{y:1037.0,l:-0.0609,s:0.12012,m:14.015},\n\t{y:1067.0,l:-0.065,s:0.12065,m:14.183},\n\t{y:1097.0,l:-0.0691,s:0.12118,m:14.3498},\n\t{y:1127.0,l:-0.073,s:0.1217,m:14.5158},\n\t{y:1157.0,l:-0.0769,s:0.12221,m:14.6811},\n\t{y:1187.0,l:-0.0808,s:0.12271,m:14.8462},\n\t{y:1217.0,l:-0.0845,s:0.12321,m:15.0112},\n\t{y:1247.0,l:-0.0882,s:0.12372,m:15.1761},\n\t{y:1277.0,l:-0.0919,s:0.12423,m:15.341},\n\t{y:1307.0,l:-0.0955,s:0.12474,m:15.5058},\n\t{y:1337.0,l:-0.099,s:0.12527,m:15.6705},\n\t{y:1367.0,l:-0.1025,s:0.12581,m:15.835},\n\t{y:1397.0,l:-0.1059,s:0.12637,m:15.9992},\n\t{y:1427.0,l:-0.1093,s:0.12693,m:16.1632},\n\t{y:1457.0,l:-0.1127,s:0.12751,m:16.3271},\n\t{y:1487.0,l:-0.116,s:0.1281,m:16.4908},\n\t{y:1517.0,l:-0.1192,s:0.12871,m:16.6545},\n\t{y:1547.0,l:-0.1225,s:0.12932,m:16.8181},\n\t{y:1577.0,l:-0.1256,s:0.12993,m:16.9818},\n\t{y:1607.0,l:-0.1288,s:0.13056,m:17.1455},\n\t{y:1637.0,l:-0.1319,s:0.13119,m:17.3091},\n\t{y:1667.0,l:-0.1349,s:0.13182,m:17.4726},\n\t{y:1697.0,l:-0.138,s:0.13245,m:17.636},\n\t{y:1727.0,l:-0.1409,s:0.13308,m:17.7991},\n\t{y:1757.0,l:-0.1439,s:0.13372,m:17.9619},\n\t{y:1787.0,l:-0.1468,s:0.13435,m:18.1245},\n\t{y:1817.0,l:-0.1497,s:0.13498,m:18.2867},\n\t{y:1847.0,l:-0.1526,s:0.13561,m:18.4484}\n}\n\n\n\n\ndefine function ZscoreWeightForAgetables(sex String, age Decimal):\n\tif sex = 'female' then  \n        First(WeightForAgeFemale c where c.y = base.AgeToMini(age) )\n\telse \n        First(WeightForAgeMale c where  c.y = base.AgeToMini(age))\n            \ndefine function generateZScoreWeightForAge(sex System.String, age System.Decimal, weight  System.Decimal)  : \n\t generateZScoreWeightForAgedet(ZscoreWeightForAgetables(sex,age), weight )\n\ndefine function generateZScoreWeightForAgedet(row Tuple {y System.Decimal,l System.Decimal,s System.Decimal,m System.Decimal}, weight  System.Decimal):\n    if row is not null then \n        base.computeZScore(\n            weight,\n            row.m , \n            row.l ,\n            row.s \n        )\n    else null\n\n\ndefine function generateWeightFromAge(sex System.String, age System.Decimal, zscore  System.Decimal) : \n\t generateWeightFromAgedet(ZscoreWeightForAgetables(sex,age),zscore  )\n\ndefine function generateWeightFromAgedet(row Tuple {y System.Decimal,l System.Decimal,s System.Decimal,m System.Decimal},zscore  System.Decimal) : \n    if row is not null then \n        base.computeReverseZScore(\n            zscore,\n            row.m , \n            row.l ,\n            row.s \n        )\n    else null    \n\n    \n</code></pre></div>"
  },
  "url" : "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Library/WeightForAge",
  "version" : "0.1.0",
  "name" : "WeightForAge",
  "status" : "active",
  "type" : {
    "coding" : [
      {
        "system" : "http://hl7.org/fhir/ValueSet/library-type",
        "code" : "logic-library"
      }
    ]
  },
  "date" : "2023-10-04T12:32:21+00:00",
  "publisher" : "WHO",
  "contact" : [
    {
      "name" : "WHO",
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://who.int"
        }
      ]
    }
  ],
  "relatedArtifact" : [
    {
      "type" : "depends-on",
      "resource" : "https://fhir.dk.swisstph-mis.ch/matchbox/fhir/Library/anthrobase"
    },
    {
      "type" : "depends-on",
      "resource" : "http://fhir.org/guides/who/anc-cds/Library/FHIRHelpers"
    }
  ],
  "parameter" : [
    {
      "name" : "zscore",
      "use" : "in",
      "type" : "decimal"
    },
    {
      "name" : "Age",
      "use" : "in",
      "type" : "decimal"
    },
    {
      "name" : "sex",
      "use" : "in",
      "type" : "decimal"
    },
    {
      "name" : "generateWeightFromAge",
      "use" : "out",
      "type" : "decimal"
    },
    {
      "name" : "generateZScoreWeightForAge",
      "use" : "out",
      "type" : "decimal"
    },
    {
      "name" : "ZscoreWeightForAgetables_s",
      "use" : "out",
      "type" : "decimal"
    },
    {
      "name" : "ZscoreWeightForAgetables_m",
      "use" : "out",
      "type" : "decimal"
    },
    {
      "name" : "ZscoreWeightForAgetables_l",
      "use" : "out",
      "type" : "decimal"
    }
  ],
  "dataRequirement" : [
    {
      "type" : "Patient",
      "profile" : [
        "http://hl7.org/fhir/StructureDefinition/Patient"
      ]
    }
  ],
  "content" : [
    {
      "id" : "ig-loader-WeightForAge.cql",
      "contentType" : "text/cql",
      "data" : "CmxpYnJhcnkgV2VpZ2h0Rm9yQWdlIHZlcnNpb24gJzEuMC40Jwp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwppbmNsdWRlIGFudGhyb2Jhc2UgdmVyc2lvbiAnMS4wLjQnIGNhbGxlZCBiYXNlCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnIGNhbGxlZCBGSElSSGVscGVycwoKLy8gQW50cmhvIGxpYnJhcnkgZm9yIFdlaWdodEZvckFnZSAgWi1TY29yZSBmcm9tIHRoZSB3ZWlhbnRocm8gZmlsZXMKY29kZXN5c3RlbSAiYWRtaW5pc3RyYXRpdmUtZ2VuZGVyIjogJ2h0dHA6Ly9obDcub3JnL2ZoaXIvYWRtaW5pc3RyYXRpdmUtZ2VuZGVyJwovL2NvZGUgIkZlbWFsZSIgOiAnZmVtYWxlJyBmcm9tICJhZG1pbmlzdHJhdGl2ZS1nZW5kZXIiICBkaXNwbGF5ICdGZW1hbGUnCgoKZGVmaW5lIFdlaWdodEZvckFnZUZlbWFsZToKewoJe3k6MC4wLGw6MC4zODA5LHM6MC4xNDE3MSxtOjMuMjMyMn0sCgl7eToxLjAsbDowLjMyNTksczowLjE0NTc4LG06My4xOTU3fSwKCXt5OjIuMCxsOjAuMzEwMSxzOjAuMTQ2MzcsbTozLjIxMDR9LAoJe3k6My4wLGw6MC4yOTg2LHM6MC4xNDY1NyxtOjMuMjMxNX0sCgl7eTo0LjAsbDowLjI4OTEsczowLjE0NjU4LG06My4yNTU4fSwKCXt5OjUuMCxsOjAuMjgxLHM6MC4xNDY0NixtOjMuMjgyMX0sCgl7eTo2LjAsbDowLjI3MzcsczowLjE0NjI2LG06My4zMDk5fSwKCXt5OjcuMCxsOjAuMjY3MSxzOjAuMTQ2LG06My4zMzg4fSwKCXt5OjguMCxsOjAuMjYwOSxzOjAuMTQ1NjksbTozLjM2ODd9LAoJe3k6OS4wLGw6MC4yNTUxLHM6MC4xNDUzNCxtOjMuMzk5NX0sCgl7eToxMC4wLGw6MC4yNDk3LHM6MC4xNDQ5OCxtOjMuNDMxNH0sCgl7eToxMS4wLGw6MC4yNDQ2LHM6MC4xNDQ1OSxtOjMuNDY0M30sCgl7eToxMi4wLGw6MC4yMzk3LHM6MC4xNDQyLG06My40OTgzfSwKCXt5OjEzLjAsbDowLjIzNDksczowLjE0MzgsbTozLjUzMzN9LAoJe3k6MTQuMCxsOjAuMjMwNCxzOjAuMTQzMzksbTozLjU2OTN9LAoJe3k6MTUuMCxsOjAuMjI2LHM6MC4xNDI5OSxtOjMuNjA2M30sCgl7eToxNi4wLGw6MC4yMjE4LHM6MC4xNDI1OCxtOjMuNjQzOH0sCgl7eToxNy4wLGw6MC4yMTc3LHM6MC4xNDIxOCxtOjMuNjgxOH0sCgl7eToxOC4wLGw6MC4yMTM3LHM6MC4xNDE3NyxtOjMuNzIwMX0sCgl7eToxOS4wLGw6MC4yMDk5LHM6MC4xNDEzOCxtOjMuNzU4NH0sCgl7eToyMC4wLGw6MC4yMDYxLHM6MC4xNDA5OCxtOjMuNzk2OH0sCgl7eToyMS4wLGw6MC4yMDI0LHM6MC4xNDA2LG06My44MzUyfSwKCXt5OjIyLjAsbDowLjE5ODksczowLjE0MDIxLG06My44NzM1fSwKCXt5OjIzLjAsbDowLjE5NTQsczowLjEzOTg0LG06My45MTE2fSwKCXt5OjI0LjAsbDowLjE5MTksczowLjEzOTQ3LG06My45NDk1fSwKCXt5OjI1LjAsbDowLjE4ODYsczowLjEzOTEsbTozLjk4NzJ9LAoJe3k6MjYuMCxsOjAuMTg1MyxzOjAuMTM4NzUsbTo0LjAyNDd9LAoJe3k6MjcuMCxsOjAuMTgyMSxzOjAuMTM4NCxtOjQuMDYxOH0sCgl7eToyOC4wLGw6MC4xNzg5LHM6MC4xMzgwNSxtOjQuMDk4N30sCgl7eToyOS4wLGw6MC4xNzU4LHM6MC4xMzc3MSxtOjQuMTM1M30sCgl7eTozMC4wLGw6MC4xNzI3LHM6MC4xMzczOCxtOjQuMTcxNn0sCgl7eTozMS4wLGw6MC4xNjk3LHM6MC4xMzcwNixtOjQuMjA3NX0sCgl7eTozMi4wLGw6MC4xNjY4LHM6MC4xMzY3NCxtOjQuMjQzMX0sCgl7eTozMy4wLGw6MC4xNjM4LHM6MC4xMzY0MyxtOjQuMjc4M30sCgl7eTozNC4wLGw6MC4xNjEsczowLjEzNjEzLG06NC4zMTMxfSwKCXt5OjM1LjAsbDowLjE1ODIsczowLjEzNTgzLG06NC4zNDc2fSwKCXt5OjM2LjAsbDowLjE1NTQsczowLjEzNTU0LG06NC4zODE4fSwKCXt5OjM3LjAsbDowLjE1MjYsczowLjEzNTI2LG06NC40MTU1fSwKCXt5OjM4LjAsbDowLjE0OTksczowLjEzNDk4LG06NC40NDl9LAoJe3k6MzkuMCxsOjAuMTQ3MyxzOjAuMTM0NyxtOjQuNDgyfSwKCXt5OjQwLjAsbDowLjE0NDYsczowLjEzNDQ0LG06NC41MTQ4fSwKCXt5OjQxLjAsbDowLjE0MixzOjAuMTM0MTgsbTo0LjU0NzJ9LAoJe3k6NDIuMCxsOjAuMTM5NSxzOjAuMTMzOTIsbTo0LjU3OTN9LAoJe3k6NDMuMCxsOjAuMTM2OSxzOjAuMTMzNjcsbTo0LjYxMX0sCgl7eTo0NC4wLGw6MC4xMzQ0LHM6MC4xMzM0MixtOjQuNjQyNX0sCgl7eTo0NS4wLGw6MC4xMzIsczowLjEzMzE4LG06NC42NzM2fSwKCXt5OjQ2LjAsbDowLjEyOTUsczowLjEzMjk1LG06NC43MDQ0fSwKCXt5OjQ3LjAsbDowLjEyNzEsczowLjEzMjcyLG06NC43MzQ5fSwKCXt5OjQ4LjAsbDowLjEyNDcsczowLjEzMjUsbTo0Ljc2NTF9LAoJe3k6NDkuMCxsOjAuMTIyNCxzOjAuMTMyMjgsbTo0Ljc5NX0sCgl7eTo1MC4wLGw6MC4xMixzOjAuMTMyMDYsbTo0LjgyNDV9LAoJe3k6NTEuMCxsOjAuMTE3NyxzOjAuMTMxODUsbTo0Ljg1Mzh9LAoJe3k6NTIuMCxsOjAuMTE1NCxzOjAuMTMxNjUsbTo0Ljg4Mjh9LAoJe3k6NTMuMCxsOjAuMTEzMixzOjAuMTMxNDUsbTo0LjkxMTV9LAoJe3k6NTQuMCxsOjAuMTEwOSxzOjAuMTMxMjUsbTo0LjkzOTl9LAoJe3k6NTUuMCxsOjAuMTA4NyxzOjAuMTMxMDYsbTo0Ljk2OH0sCgl7eTo1Ni4wLGw6MC4xMDY1LHM6MC4xMzA4NyxtOjQuOTk1OX0sCgl7eTo1Ny4wLGw6MC4xMDQ0LHM6MC4xMzA2OCxtOjUuMDIzNX0sCgl7eTo1OC4wLGw6MC4xMDIyLHM6MC4xMzA1LG06NS4wNTA5fSwKCXt5OjU5LjAsbDowLjEwMDEsczowLjEzMDMzLG06NS4wNzh9LAoJe3k6NjAuMCxsOjAuMDk4LHM6MC4xMzAxNSxtOjUuMTA0OX0sCgl7eTo2My4wLGw6MC4wOTE4LHM6MC4xMjk2NixtOjUuMTg0Mn0sCgl7eTo3MC4wLGw6MC4wNzc5LHM6MC4xMjg2MSxtOjUuMzYxOH0sCgl7eTo3Ny4wLGw6MC4wNjQ4LHM6MC4xMjc3LG06NS41Mjk1fSwKCXt5Ojg0LjAsbDowLjA1MjUsczowLjEyNjkxLG06NS42ODgzfSwKCXt5OjkxLjAsbDowLjA0MDcsczowLjEyNjIyLG06NS44MzkzfSwKCXt5Ojk4LjAsbDowLjAyOTUsczowLjEyNTYxLG06NS45ODMxfSwKCXt5OjEwNS4wLGw6MC4wMTg4LHM6MC4xMjUwNyxtOjYuMTIwMn0sCgl7eToxMTIuMCxsOjAuMDA4NixzOjAuMTI0NTksbTo2LjI1MTF9LAoJe3k6MTE5LjAsbDotMC4wMDEzLHM6MC4xMjQxNyxtOjYuMzc2MX0sCgl7eToxMjYuMCxsOi0wLjAxMDcsczowLjEyMzgsbTo2LjQ5NTZ9LAoJe3k6MTMzLjAsbDotMC4wMTk4LHM6MC4xMjM0NixtOjYuNjA5OX0sCgl7eToxNDAuMCxsOi0wLjAyODUsczowLjEyMzE3LG06Ni43MTkyfSwKCXt5OjE0Ny4wLGw6LTAuMDM2OSxzOjAuMTIyOTEsbTo2LjgyMzh9LAoJe3k6MTU0LjAsbDotMC4wNDUsczowLjEyMjY4LG06Ni45MjQxfSwKCXt5OjE2MS4wLGw6LTAuMDUyOSxzOjAuMTIyNDgsbTo3LjAyMDV9LAoJe3k6MTY4LjAsbDotMC4wNjA1LHM6MC4xMjIzMSxtOjcuMTEzM30sCgl7eToxNzUuMCxsOi0wLjA2NzgsczowLjEyMjE3LG06Ny4yMDI5fSwKCXt5OjE4Mi4wLGw6LTAuMDc0OSxzOjAuMTIyMDUsbTo3LjI4OTR9LAoJe3k6MTk3LjAsbDotMC4wODk0LHM6MC4xMjE4OCxtOjcuNDY1N30sCgl7eToyMjcuMCxsOi0wLjExNTcsczowLjEyMTc3LG06Ny43ODY3fSwKCXt5OjI1Ny4wLGw6LTAuMTM4OCxzOjAuMTIxODcsbTo4LjA3NDZ9LAoJe3k6Mjg3LjAsbDotMC4xNTkzLHM6MC4xMjIwOSxtOjguMzM2OX0sCgl7eTozMTcuMCxsOi0wLjE3NzQsczowLjEyMjMzLG06OC41ODA4fSwKCXt5OjM0Ny4wLGw6LTAuMTkzNSxzOjAuMTIyNTYsbTo4LjgxMTl9LAoJe3k6Mzc3LjAsbDotMC4yMDc3LHM6MC4xMjI3NCxtOjkuMDM0NH0sCgl7eTo0MDcuMCxsOi0wLjIyMDQsczowLjEyMjg4LG06OS4yNTExfSwKCXt5OjQzNy4wLGw6LTAuMjMxNyxzOjAuMTIyOTYsbTo5LjQ2Mzd9LAoJe3k6NDY3LjAsbDotMC4yNDE4LHM6MC4xMjMwMSxtOjkuNjczNX0sCgl7eTo0OTcuMCxsOi0wLjI1MDcsczowLjEyMzA0LG06OS44ODE2fSwKCXt5OjUyNy4wLGw6LTAuMjU4NyxzOjAuMTIzMDcsbToxMC4wODg0fSwKCXt5OjU1Ny4wLGw6LTAuMjY1OCxzOjAuMTIzMTEsbToxMC4yOTM5fSwKCXt5OjU4Ny4wLGw6LTAuMjcyMSxzOjAuMTIzMTcsbToxMC40OTg1fSwKCXt5OjYxNy4wLGw6LTAuMjc3NyxzOjAuMTIzMjYsbToxMC43MDI1fSwKCXt5OjY0Ny4wLGw6LTAuMjgyNyxzOjAuMTIzMzksbToxMC45MDY1fSwKCXt5OjY3Ny4wLGw6LTAuMjg3MixzOjAuMTIzNTUsbToxMS4xMTExfSwKCXt5OjcwNy4wLGw6LTAuMjkxMixzOjAuMTIzNzMsbToxMS4zMTYzfSwKCXt5OjczNy4wLGw6LTAuMjk0OCxzOjAuMTIzOTUsbToxMS41MjIxfSwKCXt5Ojc2Ny4wLGw6LTAuMjk4MSxzOjAuMTI0MTksbToxMS43Mjc5fSwKCXt5Ojc5Ny4wLGw6LTAuMzAxLHM6MC4xMjQ0NixtOjExLjkzMzF9LAoJe3k6ODI3LjAsbDotMC4zMDM3LHM6MC4xMjQ3NyxtOjEyLjEzNjZ9LAoJe3k6ODU3LjAsbDotMC4zMDYxLHM6MC4xMjUxMixtOjEyLjMzNzV9LAoJe3k6ODg3LjAsbDotMC4zMDgzLHM6MC4xMjU1MSxtOjEyLjUzNTZ9LAoJe3k6OTE3LjAsbDotMC4zMTAzLHM6MC4xMjU5MyxtOjEyLjczMDV9LAoJe3k6OTQ3LjAsbDotMC4zMTIyLHM6MC4xMjYzOSxtOjEyLjkyMjR9LAoJe3k6OTc3LjAsbDotMC4zMTQsczowLjEyNjg4LG06MTMuMTExOX0sCgl7eToxMDA3LjAsbDotMC4zMTU2LHM6MC4xMjc0MSxtOjEzLjI5OTZ9LAoJe3k6MTAzNy4wLGw6LTAuMzE3MixzOjAuMTI3OTgsbToxMy40ODYzfSwKCXt5OjEwNjcuMCxsOi0wLjMxODcsczowLjEyODU4LG06MTMuNjcyM30sCgl7eToxMDk3LjAsbDotMC4zMjAyLHM6MC4xMjkyMixtOjEzLjg1OH0sCgl7eToxMTI3LjAsbDotMC4zMjE2LHM6MC4xMjk4OSxtOjE0LjA0MzV9LAoJe3k6MTE1Ny4wLGw6LTAuMzIzLHM6MC4xMzA2LG06MTQuMjI4OH0sCgl7eToxMTg3LjAsbDotMC4zMjQzLHM6MC4xMzEzNCxtOjE0LjQxMzZ9LAoJe3k6MTIxNy4wLGw6LTAuMzI1NyxzOjAuMTMyMTEsbToxNC41OTc5fSwKCXt5OjEyNDcuMCxsOi0wLjMyNyxzOjAuMTMyOTEsbToxNC43ODE2fSwKCXt5OjEyNzcuMCxsOi0wLjMyODMsczowLjEzMzcyLG06MTQuOTY0NH0sCgl7eToxMzA3LjAsbDotMC4zMjk2LHM6MC4xMzQ1NSxtOjE1LjE0NjN9LAoJe3k6MTMzNy4wLGw6LTAuMzMwOCxzOjAuMTM1MzksbToxNS4zMjc1fSwKCXt5OjEzNjcuMCxsOi0wLjMzMjEsczowLjEzNjIzLG06MTUuNTA3OX0sCgl7eToxMzk3LjAsbDotMC4zMzM0LHM6MC4xMzcwNyxtOjE1LjY4Nzd9LAoJe3k6MTQyNy4wLGw6LTAuMzM0NyxzOjAuMTM3OSxtOjE1Ljg2Njl9LAoJe3k6MTQ1Ny4wLGw6LTAuMzM1OSxzOjAuMTM4NzMsbToxNi4wNDU5fSwKCXt5OjE0ODcuMCxsOi0wLjMzNzIsczowLjEzOTU2LG06MTYuMjI0Nn0sCgl7eToxNTE3LjAsbDotMC4zMzg1LHM6MC4xNDAzOCxtOjE2LjQwMzJ9LAoJe3k6MTU0Ny4wLGw6LTAuMzM5OCxzOjAuMTQxMTgsbToxNi41ODE3fSwKCXt5OjE1NzcuMCxsOi0wLjM0MTEsczowLjE0MTk4LG06MTYuNzZ9LAoJe3k6MTYwNy4wLGw6LTAuMzQyNCxzOjAuMTQyNzcsbToxNi45MzgxfSwKCXt5OjE2MzcuMCxsOi0wLjM0MzcsczowLjE0MzU0LG06MTcuMTE1OX0sCgl7eToxNjY3LjAsbDotMC4zNDUsczowLjE0NDMxLG06MTcuMjkzMX0sCgl7eToxNjk3LjAsbDotMC4zNDYzLHM6MC4xNDUwNixtOjE3LjQ2OTZ9LAoJe3k6MTcyNy4wLGw6LTAuMzQ3NixzOjAuMTQ1ODEsbToxNy42NDUzfSwKCXt5OjE3NTcuMCxsOi0wLjM0ODksczowLjE0NjU0LG06MTcuODJ9LAoJe3k6MTc4Ny4wLGw6LTAuMzUwMixzOjAuMTQ3MjcsbToxNy45OTM3fSwKCXt5OjE4MTcuMCxsOi0wLjM1MTQsczowLjE0Nzk5LG06MTguMTY2M30sCgl7eToxODQ3LjAsbDotMC4zNTI3LHM6MC4xNDg3MSxtOjE4LjMzNzh9Cn0KCmRlZmluZSBXZWlnaHRGb3JBZ2VNYWxlOgp7Cgl7eTowLjAsbDowLjM0ODcsczowLjE0NjAyLG06My4zNDY0fSwKCXt5OjEuMCxsOjAuMzEyNyxzOjAuMTQ2OTMsbTozLjMxNzR9LAoJe3k6Mi4wLGw6MC4zMDI5LHM6MC4xNDY3NixtOjMuMzM3fSwKCXt5OjMuMCxsOjAuMjk1OSxzOjAuMTQ2NDcsbTozLjM2Mjd9LAoJe3k6NC4wLGw6MC4yOTAzLHM6MC4xNDYxMSxtOjMuMzkxNX0sCgl7eTo1LjAsbDowLjI4NTUsczowLjE0NTcxLG06My40MjIzfSwKCXt5OjYuMCxsOjAuMjgxMyxzOjAuMTQ1MjgsbTozLjQ1NDV9LAoJe3k6Ny4wLGw6MC4yNzc2LHM6MC4xNDQ4MyxtOjMuNDg3OX0sCgl7eTo4LjAsbDowLjI3NDIsczowLjE0NDM2LG06My41MjIyfSwKCXt5OjkuMCxsOjAuMjcxMSxzOjAuMTQzODgsbTozLjU1NzZ9LAoJe3k6MTAuMCxsOjAuMjY4MSxzOjAuMTQzMzksbTozLjU5NDF9LAoJe3k6MTEuMCxsOjAuMjY1NCxzOjAuMTQyOSxtOjMuNjMxOX0sCgl7eToxMi4wLGw6MC4yNjI4LHM6MC4xNDI0MSxtOjMuNjcxfSwKCXt5OjEzLjAsbDowLjI2MDQsczowLjE0MTkyLG06My43MTEzfSwKCXt5OjE0LjAsbDowLjI1ODEsczowLjE0MTQyLG06My43NTI5fSwKCXt5OjE1LjAsbDowLjI1NTgsczowLjE0MDkzLG06My43OTU2fSwKCXt5OjE2LjAsbDowLjI1MzcsczowLjE0MDQ0LG06My44Mzg5fSwKCXt5OjE3LjAsbDowLjI1MTcsczowLjEzOTk2LG06My44ODI4fSwKCXt5OjE4LjAsbDowLjI0OTcsczowLjEzOTQ4LG06My45Mjd9LAoJe3k6MTkuMCxsOjAuMjQ3OCxzOjAuMTM5LG06My45NzE0fSwKCXt5OjIwLjAsbDowLjI0NixzOjAuMTM4NTMsbTo0LjAxNTh9LAoJe3k6MjEuMCxsOjAuMjQ0MixzOjAuMTM4MDcsbTo0LjA2MDN9LAoJe3k6MjIuMCxsOjAuMjQyNSxzOjAuMTM3NjEsbTo0LjEwNDZ9LAoJe3k6MjMuMCxsOjAuMjQwOCxzOjAuMTM3MTUsbTo0LjE0ODl9LAoJe3k6MjQuMCxsOjAuMjM5MixzOjAuMTM2NyxtOjQuMTkzfSwKCXt5OjI1LjAsbDowLjIzNzYsczowLjEzNjI2LG06NC4yMzY5fSwKCXt5OjI2LjAsbDowLjIzNjEsczowLjEzNTgyLG06NC4yODA2fSwKCXt5OjI3LjAsbDowLjIzNDYsczowLjEzNTM5LG06NC4zMjR9LAoJe3k6MjguMCxsOjAuMjMzMSxzOjAuMTM0OTcsbTo0LjM2NzF9LAoJe3k6MjkuMCxsOjAuMjMxNyxzOjAuMTM0NTUsbTo0LjQxfSwKCXt5OjMwLjAsbDowLjIzMDMsczowLjEzNDEzLG06NC40NTI1fSwKCXt5OjMxLjAsbDowLjIyOSxzOjAuMTMzNzIsbTo0LjQ5NDZ9LAoJe3k6MzIuMCxsOjAuMjI3NixzOjAuMTMzMzIsbTo0LjUzNjN9LAoJe3k6MzMuMCxsOjAuMjI2MyxzOjAuMTMyOTIsbTo0LjU3NzZ9LAoJe3k6MzQuMCxsOjAuMjI1LHM6MC4xMzI1MyxtOjQuNjE4NX0sCgl7eTozNS4wLGw6MC4yMjM3LHM6MC4xMzIxNSxtOjQuNjU5fSwKCXt5OjM2LjAsbDowLjIyMjUsczowLjEzMTc3LG06NC42OTl9LAoJe3k6MzcuMCxsOjAuMjIxMyxzOjAuMTMxMzksbTo0LjczODZ9LAoJe3k6MzguMCxsOjAuMjIwMSxzOjAuMTMxMDIsbTo0Ljc3Nzh9LAoJe3k6MzkuMCxsOjAuMjE4OSxzOjAuMTMwNjYsbTo0LjgxNjZ9LAoJe3k6NDAuMCxsOjAuMjE3OCxzOjAuMTMwMyxtOjQuODU0OX0sCgl7eTo0MS4wLGw6MC4yMTY2LHM6MC4xMjk5NCxtOjQuODkyOH0sCgl7eTo0Mi4wLGw6MC4yMTU1LHM6MC4xMjk2LG06NC45MzAzfSwKCXt5OjQzLjAsbDowLjIxNDQsczowLjEyOTI1LG06NC45Njc0fSwKCXt5OjQ0LjAsbDowLjIxMzMsczowLjEyODkxLG06NS4wMDQxfSwKCXt5OjQ1LjAsbDowLjIxMjIsczowLjEyODU4LG06NS4wNDA0fSwKCXt5OjQ2LjAsbDowLjIxMTIsczowLjEyODI1LG06NS4wNzYzfSwKCXt5OjQ3LjAsbDowLjIxMDEsczowLjEyNzkyLG06NS4xMTE4fSwKCXt5OjQ4LjAsbDowLjIwOTEsczowLjEyNzYsbTo1LjE0Njl9LAoJe3k6NDkuMCxsOjAuMjA4MSxzOjAuMTI3MjksbTo1LjE4MTd9LAoJe3k6NTAuMCxsOjAuMjA3MSxzOjAuMTI2OTgsbTo1LjIxNjF9LAoJe3k6NTEuMCxsOjAuMjA2MSxzOjAuMTI2NjcsbTo1LjI1MDF9LAoJe3k6NTIuMCxsOjAuMjA1MixzOjAuMTI2MzcsbTo1LjI4Mzd9LAoJe3k6NTMuMCxsOjAuMjA0MixzOjAuMTI2MDcsbTo1LjMxNzF9LAoJe3k6NTQuMCxsOjAuMjAzMixzOjAuMTI1NzcsbTo1LjM1fSwKCXt5OjU1LjAsbDowLjIwMjMsczowLjEyNTQ4LG06NS4zODI2fSwKCXt5OjU2LjAsbDowLjIwMTQsczowLjEyNTIsbTo1LjQxNDl9LAoJe3k6NTcuMCxsOjAuMjAwNSxzOjAuMTI0OTEsbTo1LjQ0Njh9LAoJe3k6NTguMCxsOjAuMTk5NixzOjAuMTI0NjMsbTo1LjQ3ODR9LAoJe3k6NTkuMCxsOjAuMTk4NyxzOjAuMTI0MzYsbTo1LjUwOTd9LAoJe3k6NjAuMCxsOjAuMTk3OCxzOjAuMTI0MDksbTo1LjU0MDd9LAoJe3k6NjMuMCxsOjAuMTk1MixzOjAuMTIzMyxtOjUuNjMxOX0sCgl7eTo3MC4wLGw6MC4xODk0LHM6MC4xMjE1NyxtOjUuODM0Nn0sCgl7eTo3Ny4wLGw6MC4xODQsczowLjEyMDAxLG06Ni4wMjQyfSwKCXt5Ojg0LjAsbDowLjE3ODksczowLjExODYsbTo2LjIwMTl9LAoJe3k6OTEuMCxsOjAuMTc0LHM6MC4xMTczMixtOjYuMzY5fSwKCXt5Ojk4LjAsbDowLjE2OTQsczowLjExNjE4LG06Ni41MjY1fSwKCXt5OjEwNS4wLGw6MC4xNjUxLHM6MC4xMTUxNixtOjYuNjc1NX0sCgl7eToxMTIuMCxsOjAuMTYwOSxzOjAuMTE0MjUsbTo2LjgxNjh9LAoJe3k6MTE5LjAsbDowLjE1NjgsczowLjExMzQ1LG06Ni45NTEzfSwKCXt5OjEyNi4wLGw6MC4xNTI5LHM6MC4xMTI3NCxtOjcuMDc5NH0sCgl7eToxMzMuMCxsOjAuMTQ5MixzOjAuMTEyMTIsbTo3LjIwMTh9LAoJe3k6MTQwLjAsbDowLjE0NTYsczowLjExMTU4LG06Ny4zMTg3fSwKCXt5OjE0Ny4wLGw6MC4xNDIxLHM6MC4xMTExMSxtOjcuNDMwN30sCgl7eToxNTQuMCxsOjAuMTM4NyxzOjAuMTEwNyxtOjcuNTM3OX0sCgl7eToxNjEuMCxsOjAuMTM1NCxzOjAuMTEwMzUsbTo3LjY0MDZ9LAoJe3k6MTY4LjAsbDowLjEzMjIsczowLjExMDA1LG06Ny43Mzk0fSwKCXt5OjE3NS4wLGw6MC4xMjksczowLjEwOTgsbTo3LjgzNDR9LAoJe3k6MTgyLjAsbDowLjEyNixzOjAuMTA5NTksbTo3LjkyNn0sCgl7eToxOTcuMCxsOjAuMTE5NyxzOjAuMTA5MjUsbTo4LjExMn0sCgl7eToyMjcuMCxsOjAuMTA4MSxzOjAuMTA4OSxtOjguNDQ3NH0sCgl7eToyNTcuMCxsOjAuMDk3NCxzOjAuMTA4OCxtOjguNzQ1M30sCgl7eToyODcuMCxsOjAuMDg3NSxzOjAuMTA4ODQsbTo5LjAxNjl9LAoJe3k6MzE3LjAsbDowLjA3ODIsczowLjEwODk2LG06OS4yNjkxfSwKCXt5OjM0Ny4wLGw6MC4wNjk1LHM6MC4xMDkxMyxtOjkuNTA3N30sCgl7eTozNzcuMCxsOjAuMDYxMyxzOjAuMTA5MzQsbTo5LjczNjR9LAoJe3k6NDA3LjAsbDowLjA1MzQsczowLjEwOTU5LG06OS45NTc1fSwKCXt5OjQzNy4wLGw6MC4wNDYsczowLjEwOTg3LG06MTAuMTcyOH0sCgl7eTo0NjcuMCxsOjAuMDM4OSxzOjAuMTEwMTksbToxMC4zODM5fSwKCXt5OjQ5Ny4wLGw6MC4wMzIsczowLjExMDUzLG06MTAuNTkxOH0sCgl7eTo1MjcuMCxsOjAuMDI1NSxzOjAuMTEwOTEsbToxMC43OTcxfSwKCXt5OjU1Ny4wLGw6MC4wMTkyLHM6MC4xMTEzMixtOjExLjB9LAoJe3k6NTg3LjAsbDowLjAxMyxzOjAuMTExNzcsbToxMS4yMDExfSwKCXt5OjYxNy4wLGw6MC4wMDcxLHM6MC4xMTIyNCxtOjExLjQwMTF9LAoJe3k6NjQ3LjAsbDowLjAwMTQsczowLjExMjc1LG06MTEuNjAwNX0sCgl7eTo2NzcuMCxsOi0wLjAwNDEsczowLjExMzI3LG06MTEuNzk5MX0sCgl7eTo3MDcuMCxsOi0wLjAwOTUsczowLjExMzgyLG06MTEuOTk3MX0sCgl7eTo3MzcuMCxsOi0wLjAxNDgsczowLjExNDM5LG06MTIuMTk0MX0sCgl7eTo3NjcuMCxsOi0wLjAxOTksczowLjExNDk3LG06MTIuMzg5NX0sCgl7eTo3OTcuMCxsOi0wLjAyNDksczowLjExNTU1LG06MTIuNTgyNn0sCgl7eTo4MjcuMCxsOi0wLjAyOTcsczowLjExNjE0LG06MTIuNzcyOH0sCgl7eTo4NTcuMCxsOi0wLjAzNDUsczowLjExNjczLG06MTIuOTU5N30sCgl7eTo4ODcuMCxsOi0wLjAzOTEsczowLjExNzMxLG06MTMuMTQzMX0sCgl7eTo5MTcuMCxsOi0wLjA0MzcsczowLjExNzg4LG06MTMuMzIzMX0sCgl7eTo5NDcuMCxsOi0wLjA0ODEsczowLjExODQ1LG06MTMuNX0sCgl7eTo5NzcuMCxsOi0wLjA1MjUsczowLjExOTAyLG06MTMuNjc0fSwKCXt5OjEwMDcuMCxsOi0wLjA1NjcsczowLjExOTU3LG06MTMuODQ1NX0sCgl7eToxMDM3LjAsbDotMC4wNjA5LHM6MC4xMjAxMixtOjE0LjAxNX0sCgl7eToxMDY3LjAsbDotMC4wNjUsczowLjEyMDY1LG06MTQuMTgzfSwKCXt5OjEwOTcuMCxsOi0wLjA2OTEsczowLjEyMTE4LG06MTQuMzQ5OH0sCgl7eToxMTI3LjAsbDotMC4wNzMsczowLjEyMTcsbToxNC41MTU4fSwKCXt5OjExNTcuMCxsOi0wLjA3NjksczowLjEyMjIxLG06MTQuNjgxMX0sCgl7eToxMTg3LjAsbDotMC4wODA4LHM6MC4xMjI3MSxtOjE0Ljg0NjJ9LAoJe3k6MTIxNy4wLGw6LTAuMDg0NSxzOjAuMTIzMjEsbToxNS4wMTEyfSwKCXt5OjEyNDcuMCxsOi0wLjA4ODIsczowLjEyMzcyLG06MTUuMTc2MX0sCgl7eToxMjc3LjAsbDotMC4wOTE5LHM6MC4xMjQyMyxtOjE1LjM0MX0sCgl7eToxMzA3LjAsbDotMC4wOTU1LHM6MC4xMjQ3NCxtOjE1LjUwNTh9LAoJe3k6MTMzNy4wLGw6LTAuMDk5LHM6MC4xMjUyNyxtOjE1LjY3MDV9LAoJe3k6MTM2Ny4wLGw6LTAuMTAyNSxzOjAuMTI1ODEsbToxNS44MzV9LAoJe3k6MTM5Ny4wLGw6LTAuMTA1OSxzOjAuMTI2MzcsbToxNS45OTkyfSwKCXt5OjE0MjcuMCxsOi0wLjEwOTMsczowLjEyNjkzLG06MTYuMTYzMn0sCgl7eToxNDU3LjAsbDotMC4xMTI3LHM6MC4xMjc1MSxtOjE2LjMyNzF9LAoJe3k6MTQ4Ny4wLGw6LTAuMTE2LHM6MC4xMjgxLG06MTYuNDkwOH0sCgl7eToxNTE3LjAsbDotMC4xMTkyLHM6MC4xMjg3MSxtOjE2LjY1NDV9LAoJe3k6MTU0Ny4wLGw6LTAuMTIyNSxzOjAuMTI5MzIsbToxNi44MTgxfSwKCXt5OjE1NzcuMCxsOi0wLjEyNTYsczowLjEyOTkzLG06MTYuOTgxOH0sCgl7eToxNjA3LjAsbDotMC4xMjg4LHM6MC4xMzA1NixtOjE3LjE0NTV9LAoJe3k6MTYzNy4wLGw6LTAuMTMxOSxzOjAuMTMxMTksbToxNy4zMDkxfSwKCXt5OjE2NjcuMCxsOi0wLjEzNDksczowLjEzMTgyLG06MTcuNDcyNn0sCgl7eToxNjk3LjAsbDotMC4xMzgsczowLjEzMjQ1LG06MTcuNjM2fSwKCXt5OjE3MjcuMCxsOi0wLjE0MDksczowLjEzMzA4LG06MTcuNzk5MX0sCgl7eToxNzU3LjAsbDotMC4xNDM5LHM6MC4xMzM3MixtOjE3Ljk2MTl9LAoJe3k6MTc4Ny4wLGw6LTAuMTQ2OCxzOjAuMTM0MzUsbToxOC4xMjQ1fSwKCXt5OjE4MTcuMCxsOi0wLjE0OTcsczowLjEzNDk4LG06MTguMjg2N30sCgl7eToxODQ3LjAsbDotMC4xNTI2LHM6MC4xMzU2MSxtOjE4LjQ0ODR9Cn0KCgoKCmRlZmluZSBmdW5jdGlvbiBac2NvcmVXZWlnaHRGb3JBZ2V0YWJsZXMoc2V4IFN0cmluZywgYWdlIERlY2ltYWwpOgoJaWYgc2V4ID0gJ2ZlbWFsZScgdGhlbiAgCiAgICAgICAgRmlyc3QoV2VpZ2h0Rm9yQWdlRmVtYWxlIGMgd2hlcmUgYy55ID0gYmFzZS5BZ2VUb01pbmkoYWdlKSApCgllbHNlIAogICAgICAgIEZpcnN0KFdlaWdodEZvckFnZU1hbGUgYyB3aGVyZSAgYy55ID0gYmFzZS5BZ2VUb01pbmkoYWdlKSkKICAgICAgICAgICAgCmRlZmluZSBmdW5jdGlvbiBnZW5lcmF0ZVpTY29yZVdlaWdodEZvckFnZShzZXggU3lzdGVtLlN0cmluZywgYWdlIFN5c3RlbS5EZWNpbWFsLCB3ZWlnaHQgIFN5c3RlbS5EZWNpbWFsKSAgOiAKCSBnZW5lcmF0ZVpTY29yZVdlaWdodEZvckFnZWRldChac2NvcmVXZWlnaHRGb3JBZ2V0YWJsZXMoc2V4LGFnZSksIHdlaWdodCApCgpkZWZpbmUgZnVuY3Rpb24gZ2VuZXJhdGVaU2NvcmVXZWlnaHRGb3JBZ2VkZXQocm93IFR1cGxlIHt5IFN5c3RlbS5EZWNpbWFsLGwgU3lzdGVtLkRlY2ltYWwscyBTeXN0ZW0uRGVjaW1hbCxtIFN5c3RlbS5EZWNpbWFsfSwgd2VpZ2h0ICBTeXN0ZW0uRGVjaW1hbCk6CiAgICBpZiByb3cgaXMgbm90IG51bGwgdGhlbiAKICAgICAgICBiYXNlLmNvbXB1dGVaU2NvcmUoCiAgICAgICAgICAgIHdlaWdodCwKICAgICAgICAgICAgcm93Lm0gLCAKICAgICAgICAgICAgcm93LmwgLAogICAgICAgICAgICByb3cucyAKICAgICAgICApCiAgICBlbHNlIG51bGwKCgpkZWZpbmUgZnVuY3Rpb24gZ2VuZXJhdGVXZWlnaHRGcm9tQWdlKHNleCBTeXN0ZW0uU3RyaW5nLCBhZ2UgU3lzdGVtLkRlY2ltYWwsIHpzY29yZSAgU3lzdGVtLkRlY2ltYWwpIDogCgkgZ2VuZXJhdGVXZWlnaHRGcm9tQWdlZGV0KFpzY29yZVdlaWdodEZvckFnZXRhYmxlcyhzZXgsYWdlKSx6c2NvcmUgICkKCmRlZmluZSBmdW5jdGlvbiBnZW5lcmF0ZVdlaWdodEZyb21BZ2VkZXQocm93IFR1cGxlIHt5IFN5c3RlbS5EZWNpbWFsLGwgU3lzdGVtLkRlY2ltYWwscyBTeXN0ZW0uRGVjaW1hbCxtIFN5c3RlbS5EZWNpbWFsfSx6c2NvcmUgIFN5c3RlbS5EZWNpbWFsKSA6IAogICAgaWYgcm93IGlzIG5vdCBudWxsIHRoZW4gCiAgICAgICAgYmFzZS5jb21wdXRlUmV2ZXJzZVpTY29yZSgKICAgICAgICAgICAgenNjb3JlLAogICAgICAgICAgICByb3cubSAsIAogICAgICAgICAgICByb3cubCAsCiAgICAgICAgICAgIHJvdy5zIAogICAgICAgICkKICAgIGVsc2UgbnVsbCAgICAKCiAgICAK"
    }
  ]
}