@simpleangularcontrols/sac-common 16.0.0-rc.7 → 16.0.0-rc.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/common/basedatetimecontrol.d.ts +1 -1
- package/common/basedatetimecontrol.d.ts.map +1 -1
- package/common/baseinputcontrol.d.ts +1 -5
- package/common/baseinputcontrol.d.ts.map +1 -1
- package/common/basemodelcontrol.d.ts +26 -2
- package/common/basemodelcontrol.d.ts.map +1 -1
- package/common/baseuploadcontrol.d.ts +0 -5
- package/common/baseuploadcontrol.d.ts.map +1 -1
- package/controls/checkbox/checkbox.d.ts +13 -4
- package/controls/checkbox/checkbox.d.ts.map +1 -1
- package/controls/datetime/date.d.ts +0 -4
- package/controls/datetime/date.d.ts.map +1 -1
- package/controls/datetime/datetime.d.ts +0 -4
- package/controls/datetime/datetime.d.ts.map +1 -1
- package/controls/datetime/time.d.ts +0 -4
- package/controls/datetime/time.d.ts.map +1 -1
- package/controls/grid/grid.d.ts +38 -36
- package/controls/grid/grid.d.ts.map +1 -1
- package/controls/grid/gridbutton.d.ts +14 -14
- package/controls/grid/gridbutton.d.ts.map +1 -1
- package/controls/grid/gridcolumn.d.ts +8 -8
- package/controls/grid/gridcolumn.d.ts.map +1 -1
- package/controls/grid/gridcolumnaction.d.ts +3 -3
- package/controls/grid/gridcolumnaction.d.ts.map +1 -1
- package/controls/grid/gridcolumnbase.d.ts +38 -38
- package/controls/grid/gridcolumnbase.d.ts.map +1 -1
- package/controls/grid/gridimage.d.ts +2 -2
- package/controls/grid/gridimage.d.ts.map +1 -1
- package/controls/grid/model.d.ts +51 -42
- package/controls/grid/model.d.ts.map +1 -1
- package/controls/grid/paging.d.ts +41 -43
- package/controls/grid/paging.d.ts.map +1 -1
- package/controls/input/inputsearch.d.ts +14 -5
- package/controls/input/inputsearch.d.ts.map +1 -1
- package/controls/layout/formlayout.d.ts +13 -1
- package/controls/layout/formlayout.d.ts.map +1 -1
- package/controls/static/formcontainer.d.ts +3 -7
- package/controls/static/formcontainer.d.ts.map +1 -1
- package/controls/tooltip/tooltip.d.ts +88 -63
- package/controls/tooltip/tooltip.d.ts.map +1 -1
- package/esm2022/common/basedatetimecontrol.mjs +3 -3
- package/esm2022/common/baseinputcontrol.mjs +8 -10
- package/esm2022/common/basemodelcontrol.mjs +66 -57
- package/esm2022/common/baseuploadcontrol.mjs +42 -42
- package/esm2022/controls/checkbox/checkbox.mjs +12 -6
- package/esm2022/controls/datetime/date.mjs +16 -15
- package/esm2022/controls/datetime/datetime.mjs +16 -15
- package/esm2022/controls/datetime/time.mjs +16 -15
- package/esm2022/controls/grid/grid.mjs +23 -23
- package/esm2022/controls/grid/gridbutton.mjs +20 -15
- package/esm2022/controls/grid/gridcolumn.mjs +20 -13
- package/esm2022/controls/grid/gridcolumnaction.mjs +8 -7
- package/esm2022/controls/grid/gridcolumnbase.mjs +31 -30
- package/esm2022/controls/grid/gridimage.mjs +5 -5
- package/esm2022/controls/grid/model.mjs +53 -35
- package/esm2022/controls/grid/paging.mjs +42 -44
- package/esm2022/controls/input/inputsearch.mjs +14 -7
- package/esm2022/controls/layout/formlayout.mjs +16 -12
- package/esm2022/controls/static/formcontainer.mjs +13 -10
- package/esm2022/controls/tooltip/tooltip.mjs +101 -76
- package/esm2022/interfaces/ISacConfigurationService.mjs +3 -3
- package/esm2022/interfaces/ISacIconService.mjs +3 -3
- package/esm2022/services/sac-configuration.service.mjs +18 -12
- package/esm2022/services/sac-icon.service.mjs +15 -11
- package/esm2022/validation/isDateValid.mjs +10 -5
- package/fesm2022/simpleangularcontrols-sac-common.mjs +1294 -1194
- package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +12 -0
- package/interfaces/ISacConfigurationService.d.ts.map +1 -1
- package/interfaces/ISacIconService.d.ts +8 -0
- package/interfaces/ISacIconService.d.ts.map +1 -1
- package/package.json +1 -1
- package/services/sac-configuration.service.d.ts +24 -0
- package/services/sac-configuration.service.d.ts.map +1 -1
- package/services/sac-icon.service.d.ts +16 -0
- package/services/sac-icon.service.d.ts.map +1 -1
- package/simpleangularcontrols-sac-common-16.0.0-rc.9.tgz +0 -0
- package/validation/isDateValid.d.ts.map +1 -1
- package/simpleangularcontrols-sac-common-16.0.0-rc.7.tgz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
function cov_1y8jkaecmb(){var path="C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\common\\baseuploadcontrol.mjs";var hash="bfd8ae3657f99f46d821e2cc194f0a18c18d279b";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\common\\baseuploadcontrol.mjs",statementMap:{"0":{start:{line:25,column:8},end:{line:25,column:36}},"1":{start:{line:26,column:8},end:{line:26,column:33}},"2":{start:{line:27,column:8},end:{line:27,column:29}},"3":{start:{line:31,column:8},end:{line:31,column:33}},"4":{start:{line:35,column:8},end:{line:35,column:33}},"5":{start:{line:39,column:8},end:{line:39,column:33}},"6":{start:{line:43,column:8},end:{line:43,column:30}},"7":{start:{line:47,column:8},end:{line:47,column:26}},"8":{start:{line:51,column:8},end:{line:51,column:32}},"9":{start:{line:55,column:8},end:{line:55,column:29}},"10":{start:{line:59,column:8},end:{line:59,column:91}},"11":{start:{line:63,column:8},end:{line:63,column:105}},"12":{start:{line:67,column:8},end:{line:67,column:46}},"13":{start:{line:71,column:8},end:{line:75,column:10}},"14":{start:{line:72,column:12},end:{line:74,column:13}},"15":{start:{line:73,column:16},end:{line:73,column:85}},"16":{start:{line:76,column:8},end:{line:76,column:113}},"17":{start:{line:77,column:8},end:{line:77,column:134}},"18":{start:{line:78,column:8},end:{line:78,column:86}},"19":{start:{line:79,column:8},end:{line:79,column:26}},"20":{start:{line:80,column:8},end:{line:80,column:40}},"21":{start:{line:81,column:8},end:{line:81,column:37}},"22":{start:{line:82,column:8},end:{line:82,column:41}},"23":{start:{line:83,column:8},end:{line:83,column:51}},"24":{start:{line:84,column:8},end:{line:84,column:44}},"25":{start:{line:85,column:8},end:{line:85,column:47}},"26":{start:{line:86,column:8},end:{line:88,column:11}},"27":{start:{line:86,column:39},end:{line:88,column:9}},"28":{start:{line:90,column:8},end:{line:90,column:50}},"29":{start:{line:91,column:8},end:{line:91,column:46}},"30":{start:{line:93,column:8},end:{line:93,column:77}},"31":{start:{line:93,column:55},end:{line:93,column:75}},"32":{start:{line:101,column:8},end:{line:101,column:35}},"33":{start:{line:102,column:8},end:{line:102,column:36}},"34":{start:{line:108,column:8},end:{line:108,column:29}},"35":{start:{line:109,column:8},end:{line:109,column:36}},"36":{start:{line:110,column:8},end:{line:110,column:49}},"37":{start:{line:116,column:8},end:{line:116,column:30}},"38":{start:{line:122,column:8},end:{line:122,column:27}},"39":{start:{line:123,column:8},end:{line:123,column:28}},"40":{start:{line:129,column:8},end:{line:129,column:58}},"41":{start:{line:135,column:8},end:{line:135,column:60}},"42":{start:{line:141,column:8},end:{line:141,column:58}},"43":{start:{line:147,column:8},end:{line:147,column:57}},"44":{start:{line:153,column:8},end:{line:153,column:58}},"45":{start:{line:156,column:8},end:{line:156,column:34}},"46":{start:{line:159,column:8},end:{line:159,column:32}},"47":{start:{line:162,column:8},end:{line:162,column:33}},"48":{start:{line:165,column:8},end:{line:165,column:30}},"49":{start:{line:174,column:8},end:{line:179,column:9}},"50":{start:{line:175,column:12},end:{line:175,column:44}},"51":{start:{line:178,column:12},end:{line:178,column:102}},"52":{start:{line:186,column:8},end:{line:186,column:39}},"53":{start:{line:193,column:8},end:{line:198,column:9}},"54":{start:{line:194,column:12},end:{line:194,column:90}},"55":{start:{line:194,column:49},end:{line:194,column:74}},"56":{start:{line:197,column:12},end:{line:197,column:25}},"57":{start:{line:205,column:8},end:{line:205,column:80}},"58":{start:{line:205,column:44},end:{line:205,column:67}},"59":{start:{line:212,column:8},end:{line:212,column:108}},"60":{start:{line:212,column:45},end:{line:212,column:94}},"61":{start:{line:219,column:8},end:{line:219,column:83}},"62":{start:{line:219,column:44},end:{line:219,column:70}},"63":{start:{line:226,column:8},end:{line:231,column:9}},"64":{start:{line:227,column:12},end:{line:227,column:44}},"65":{start:{line:230,column:12},end:{line:230,column:21}},"66":{start:{line:238,column:8},end:{line:238,column:77}},"67":{start:{line:244,column:8},end:{line:246,column:9}},"68":{start:{line:245,column:12},end:{line:245,column:61}},"69":{start:{line:252,column:8},end:{line:254,column:9}},"70":{start:{line:253,column:12},end:{line:253,column:30}},"71":{start:{line:260,column:8},end:{line:260,column:25}},"72":{start:{line:262,column:8},end:{line:262,column:108}},"73":{start:{line:263,column:8},end:{line:263,column:49}},"74":{start:{line:264,column:8},end:{line:264,column:41}},"75":{start:{line:265,column:8},end:{line:267,column:9}},"76":{start:{line:266,column:12},end:{line:266,column:56}},"77":{start:{line:268,column:8},end:{line:268,column:49}},"78":{start:{line:276,column:22},end:{line:276,column:82}},"79":{start:{line:276,column:52},end:{line:276,column:81}},"80":{start:{line:277,column:8},end:{line:309,column:9}},"81":{start:{line:278,column:12},end:{line:291,column:13}},"82":{start:{line:281,column:16},end:{line:281,column:60}},"83":{start:{line:284,column:16},end:{line:284,column:44}},"84":{start:{line:285,column:16},end:{line:290,column:17}},"85":{start:{line:286,column:20},end:{line:286,column:63}},"86":{start:{line:288,column:21},end:{line:290,column:17}},"87":{start:{line:289,column:20},end:{line:289,column:62}},"88":{start:{line:293,column:13},end:{line:309,column:9}},"89":{start:{line:294,column:12},end:{line:296,column:13}},"90":{start:{line:295,column:16},end:{line:295,column:46}},"91":{start:{line:297,column:12},end:{line:297,column:38}},"92":{start:{line:299,column:13},end:{line:309,column:9}},"93":{start:{line:300,column:12},end:{line:300,column:58}},"94":{start:{line:301,column:12},end:{line:301,column:54}},"95":{start:{line:302,column:12},end:{line:302,column:39}},"96":{start:{line:305,column:12},end:{line:308,column:13}},"97":{start:{line:306,column:16},end:{line:306,column:62}},"98":{start:{line:307,column:16},end:{line:307,column:58}},"99":{start:{line:310,column:8},end:{line:310,column:31}},"100":{start:{line:317,column:8},end:{line:317,column:66}},"101":{start:{line:323,column:8},end:{line:325,column:9}},"102":{start:{line:324,column:12},end:{line:324,column:60}},"103":{start:{line:333,column:8},end:{line:333,column:67}},"104":{start:{line:339,column:8},end:{line:341,column:9}},"105":{start:{line:340,column:12},end:{line:340,column:61}},"106":{start:{line:348,column:20},end:{line:348,column:24}},"107":{start:{line:349,column:8},end:{line:351,column:9}},"108":{start:{line:350,column:12},end:{line:350,column:114}},"109":{start:{line:352,column:8},end:{line:352,column:21}},"110":{start:{line:358,column:8},end:{line:361,column:9}},"111":{start:{line:359,column:12},end:{line:360,column:41}},"112":{start:{line:367,column:8},end:{line:367,column:78}},"113":{start:{line:367,column:44},end:{line:367,column:69}},"114":{start:{line:375,column:8},end:{line:377,column:9}},"115":{start:{line:376,column:12},end:{line:376,column:24}},"116":{start:{line:378,column:22},end:{line:378,column:27}},"117":{start:{line:379,column:27},end:{line:379,column:56}},"118":{start:{line:380,column:8},end:{line:384,column:11}},"119":{start:{line:381,column:12},end:{line:383,column:13}},"120":{start:{line:382,column:16},end:{line:382,column:31}},"121":{start:{line:385,column:8},end:{line:385,column:23}},"122":{start:{line:393,column:8},end:{line:395,column:9}},"123":{start:{line:394,column:12},end:{line:394,column:24}},"124":{start:{line:396,column:8},end:{line:396,column:44}},"125":{start:{line:405,column:8},end:{line:407,column:9}},"126":{start:{line:406,column:12},end:{line:406,column:88}},"127":{start:{line:408,column:8},end:{line:408,column:42}},"128":{start:{line:415,column:8},end:{line:415,column:36}},"129":{start:{line:417,column:13},end:{line:417,column:280}},"130":{start:{line:418,column:13},end:{line:418,column:608}},"131":{start:{line:421,column:0},end:{line:444,column:20}},"132":{start:{line:423,column:42},end:{line:423,column:152}},"133":{start:{line:456,column:8},end:{line:456,column:39}},"134":{start:{line:457,column:8},end:{line:457,column:31}},"135":{start:{line:458,column:8},end:{line:458,column:39}},"136":{start:{line:459,column:8},end:{line:459,column:35}},"137":{start:{line:460,column:8},end:{line:460,column:31}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:24,column:4},end:{line:24,column:5}},loc:{start:{line:24,column:56},end:{line:94,column:5}},line:24},"1":{name:"(anonymous_1)",decl:{start:{line:71,column:28},end:{line:71,column:29}},loc:{start:{line:71,column:34},end:{line:75,column:9}},line:71},"2":{name:"(anonymous_2)",decl:{start:{line:86,column:31},end:{line:86,column:32}},loc:{start:{line:86,column:39},end:{line:88,column:9}},line:86},"3":{name:"(anonymous_3)",decl:{start:{line:93,column:44},end:{line:93,column:45}},loc:{start:{line:93,column:55},end:{line:93,column:75}},line:93},"4":{name:"(anonymous_4)",decl:{start:{line:100,column:4},end:{line:100,column:5}},loc:{start:{line:100,column:28},end:{line:103,column:5}},line:100},"5":{name:"(anonymous_5)",decl:{start:{line:107,column:4},end:{line:107,column:5}},loc:{start:{line:107,column:22},end:{line:111,column:5}},line:107},"6":{name:"(anonymous_6)",decl:{start:{line:115,column:4},end:{line:115,column:5}},loc:{start:{line:115,column:23},end:{line:117,column:5}},line:115},"7":{name:"(anonymous_7)",decl:{start:{line:121,column:4},end:{line:121,column:5}},loc:{start:{line:121,column:20},end:{line:124,column:5}},line:121},"8":{name:"(anonymous_8)",decl:{start:{line:128,column:4},end:{line:128,column:5}},loc:{start:{line:128,column:21},end:{line:130,column:5}},line:128},"9":{name:"(anonymous_9)",decl:{start:{line:134,column:4},end:{line:134,column:5}},loc:{start:{line:134,column:23},end:{line:136,column:5}},line:134},"10":{name:"(anonymous_10)",decl:{start:{line:140,column:4},end:{line:140,column:5}},loc:{start:{line:140,column:21},end:{line:142,column:5}},line:140},"11":{name:"(anonymous_11)",decl:{start:{line:146,column:4},end:{line:146,column:5}},loc:{start:{line:146,column:20},end:{line:148,column:5}},line:146},"12":{name:"(anonymous_12)",decl:{start:{line:152,column:4},end:{line:152,column:5}},loc:{start:{line:152,column:21},end:{line:154,column:5}},line:152},"13":{name:"(anonymous_13)",decl:{start:{line:155,column:4},end:{line:155,column:5}},loc:{start:{line:155,column:23},end:{line:157,column:5}},line:155},"14":{name:"(anonymous_14)",decl:{start:{line:158,column:4},end:{line:158,column:5}},loc:{start:{line:158,column:21},end:{line:160,column:5}},line:158},"15":{name:"(anonymous_15)",decl:{start:{line:161,column:4},end:{line:161,column:5}},loc:{start:{line:161,column:22},end:{line:163,column:5}},line:161},"16":{name:"(anonymous_16)",decl:{start:{line:164,column:4},end:{line:164,column:5}},loc:{start:{line:164,column:19},end:{line:166,column:5}},line:164},"17":{name:"(anonymous_17)",decl:{start:{line:173,column:4},end:{line:173,column:5}},loc:{start:{line:173,column:15},end:{line:180,column:5}},line:173},"18":{name:"(anonymous_18)",decl:{start:{line:185,column:4},end:{line:185,column:5}},loc:{start:{line:185,column:19},end:{line:187,column:5}},line:185},"19":{name:"(anonymous_19)",decl:{start:{line:192,column:4},end:{line:192,column:5}},loc:{start:{line:192,column:23},end:{line:199,column:5}},line:192},"20":{name:"(anonymous_20)",decl:{start:{line:194,column:40},end:{line:194,column:41}},loc:{start:{line:194,column:49},end:{line:194,column:74}},line:194},"21":{name:"(anonymous_21)",decl:{start:{line:204,column:4},end:{line:204,column:5}},loc:{start:{line:204,column:15},end:{line:206,column:5}},line:204},"22":{name:"(anonymous_22)",decl:{start:{line:205,column:35},end:{line:205,column:36}},loc:{start:{line:205,column:44},end:{line:205,column:67}},line:205},"23":{name:"(anonymous_23)",decl:{start:{line:211,column:4},end:{line:211,column:5}},loc:{start:{line:211,column:22},end:{line:213,column:5}},line:211},"24":{name:"(anonymous_24)",decl:{start:{line:212,column:36},end:{line:212,column:37}},loc:{start:{line:212,column:45},end:{line:212,column:94}},line:212},"25":{name:"(anonymous_25)",decl:{start:{line:218,column:4},end:{line:218,column:5}},loc:{start:{line:218,column:18},end:{line:220,column:5}},line:218},"26":{name:"(anonymous_26)",decl:{start:{line:219,column:35},end:{line:219,column:36}},loc:{start:{line:219,column:44},end:{line:219,column:70}},line:219},"27":{name:"(anonymous_27)",decl:{start:{line:225,column:4},end:{line:225,column:5}},loc:{start:{line:225,column:15},end:{line:232,column:5}},line:225},"28":{name:"(anonymous_28)",decl:{start:{line:237,column:4},end:{line:237,column:5}},loc:{start:{line:237,column:21},end:{line:239,column:5}},line:237},"29":{name:"(anonymous_29)",decl:{start:{line:243,column:4},end:{line:243,column:5}},loc:{start:{line:243,column:16},end:{line:247,column:5}},line:243},"30":{name:"(anonymous_30)",decl:{start:{line:251,column:4},end:{line:251,column:5}},loc:{start:{line:251,column:18},end:{line:255,column:5}},line:251},"31":{name:"(anonymous_31)",decl:{start:{line:259,column:4},end:{line:259,column:5}},loc:{start:{line:259,column:15},end:{line:269,column:5}},line:259},"32":{name:"(anonymous_32)",decl:{start:{line:275,column:4},end:{line:275,column:5}},loc:{start:{line:275,column:20},end:{line:311,column:5}},line:275},"33":{name:"(anonymous_33)",decl:{start:{line:276,column:45},end:{line:276,column:46}},loc:{start:{line:276,column:52},end:{line:276,column:81}},line:276},"34":{name:"(anonymous_34)",decl:{start:{line:316,column:4},end:{line:316,column:5}},loc:{start:{line:316,column:20},end:{line:318,column:5}},line:316},"35":{name:"(anonymous_35)",decl:{start:{line:322,column:4},end:{line:322,column:5}},loc:{start:{line:322,column:15},end:{line:326,column:5}},line:322},"36":{name:"(anonymous_36)",decl:{start:{line:332,column:4},end:{line:332,column:5}},loc:{start:{line:332,column:21},end:{line:334,column:5}},line:332},"37":{name:"(anonymous_37)",decl:{start:{line:338,column:4},end:{line:338,column:5}},loc:{start:{line:338,column:16},end:{line:342,column:5}},line:338},"38":{name:"(anonymous_38)",decl:{start:{line:347,column:4},end:{line:347,column:5}},loc:{start:{line:347,column:20},end:{line:353,column:5}},line:347},"39":{name:"(anonymous_39)",decl:{start:{line:356,column:4},end:{line:356,column:5}},loc:{start:{line:356,column:22},end:{line:362,column:5}},line:356},"40":{name:"(anonymous_40)",decl:{start:{line:366,column:4},end:{line:366,column:5}},loc:{start:{line:366,column:24},end:{line:368,column:5}},line:366},"41":{name:"(anonymous_41)",decl:{start:{line:367,column:35},end:{line:367,column:36}},loc:{start:{line:367,column:44},end:{line:367,column:69}},line:367},"42":{name:"(anonymous_42)",decl:{start:{line:374,column:4},end:{line:374,column:5}},loc:{start:{line:374,column:31},end:{line:386,column:5}},line:374},"43":{name:"(anonymous_43)",decl:{start:{line:380,column:27},end:{line:380,column:28}},loc:{start:{line:380,column:36},end:{line:384,column:9}},line:380},"44":{name:"(anonymous_44)",decl:{start:{line:392,column:4},end:{line:392,column:5}},loc:{start:{line:392,column:30},end:{line:397,column:5}},line:392},"45":{name:"(anonymous_45)",decl:{start:{line:403,column:4},end:{line:403,column:5}},loc:{start:{line:403,column:27},end:{line:409,column:5}},line:403},"46":{name:"(anonymous_46)",decl:{start:{line:414,column:4},end:{line:414,column:5}},loc:{start:{line:414,column:21},end:{line:416,column:5}},line:414},"47":{name:"(anonymous_47)",decl:{start:{line:423,column:28},end:{line:423,column:29}},loc:{start:{line:423,column:40},end:{line:423,column:154}},line:423},"48":{name:"(anonymous_48)",decl:{start:{line:455,column:4},end:{line:455,column:5}},loc:{start:{line:455,column:23},end:{line:461,column:5}},line:455}},branchMap:{"0":{loc:{start:{line:72,column:12},end:{line:74,column:13}},type:"if",locations:[{start:{line:72,column:12},end:{line:74,column:13}},{start:{line:72,column:12},end:{line:74,column:13}}],line:72},"1":{loc:{start:{line:174,column:8},end:{line:179,column:9}},type:"if",locations:[{start:{line:174,column:8},end:{line:179,column:9}},{start:{line:174,column:8},end:{line:179,column:9}}],line:174},"2":{loc:{start:{line:193,column:8},end:{line:198,column:9}},type:"if",locations:[{start:{line:193,column:8},end:{line:198,column:9}},{start:{line:193,column:8},end:{line:198,column:9}}],line:193},"3":{loc:{start:{line:212,column:45},end:{line:212,column:94}},type:"binary-expr",locations:[{start:{line:212,column:45},end:{line:212,column:67}},{start:{line:212,column:71},end:{line:212,column:94}}],line:212},"4":{loc:{start:{line:226,column:8},end:{line:231,column:9}},type:"if",locations:[{start:{line:226,column:8},end:{line:231,column:9}},{start:{line:226,column:8},end:{line:231,column:9}}],line:226},"5":{loc:{start:{line:244,column:8},end:{line:246,column:9}},type:"if",locations:[{start:{line:244,column:8},end:{line:246,column:9}},{start:{line:244,column:8},end:{line:246,column:9}}],line:244},"6":{loc:{start:{line:252,column:8},end:{line:254,column:9}},type:"if",locations:[{start:{line:252,column:8},end:{line:254,column:9}},{start:{line:252,column:8},end:{line:254,column:9}}],line:252},"7":{loc:{start:{line:265,column:8},end:{line:267,column:9}},type:"if",locations:[{start:{line:265,column:8},end:{line:267,column:9}},{start:{line:265,column:8},end:{line:267,column:9}}],line:265},"8":{loc:{start:{line:277,column:8},end:{line:309,column:9}},type:"if",locations:[{start:{line:277,column:8},end:{line:309,column:9}},{start:{line:277,column:8},end:{line:309,column:9}}],line:277},"9":{loc:{start:{line:277,column:12},end:{line:277,column:79}},type:"binary-expr",locations:[{start:{line:277,column:12},end:{line:277,column:36}},{start:{line:277,column:41},end:{line:277,column:65}},{start:{line:277,column:69},end:{line:277,column:78}}],line:277},"10":{loc:{start:{line:278,column:12},end:{line:291,column:13}},type:"if",locations:[{start:{line:278,column:12},end:{line:291,column:13}},{start:{line:278,column:12},end:{line:291,column:13}}],line:278},"11":{loc:{start:{line:278,column:16},end:{line:280,column:47}},type:"binary-expr",locations:[{start:{line:278,column:16},end:{line:278,column:49}},{start:{line:279,column:16},end:{line:279,column:48}},{start:{line:280,column:16},end:{line:280,column:47}}],line:278},"12":{loc:{start:{line:285,column:16},end:{line:290,column:17}},type:"if",locations:[{start:{line:285,column:16},end:{line:290,column:17}},{start:{line:285,column:16},end:{line:290,column:17}}],line:285},"13":{loc:{start:{line:288,column:21},end:{line:290,column:17}},type:"if",locations:[{start:{line:288,column:21},end:{line:290,column:17}},{start:{line:288,column:21},end:{line:290,column:17}}],line:288},"14":{loc:{start:{line:293,column:13},end:{line:309,column:9}},type:"if",locations:[{start:{line:293,column:13},end:{line:309,column:9}},{start:{line:293,column:13},end:{line:309,column:9}}],line:293},"15":{loc:{start:{line:294,column:12},end:{line:296,column:13}},type:"if",locations:[{start:{line:294,column:12},end:{line:296,column:13}},{start:{line:294,column:12},end:{line:296,column:13}}],line:294},"16":{loc:{start:{line:299,column:13},end:{line:309,column:9}},type:"if",locations:[{start:{line:299,column:13},end:{line:309,column:9}},{start:{line:299,column:13},end:{line:309,column:9}}],line:299},"17":{loc:{start:{line:305,column:12},end:{line:308,column:13}},type:"if",locations:[{start:{line:305,column:12},end:{line:308,column:13}},{start:{line:305,column:12},end:{line:308,column:13}}],line:305},"18":{loc:{start:{line:323,column:8},end:{line:325,column:9}},type:"if",locations:[{start:{line:323,column:8},end:{line:325,column:9}},{start:{line:323,column:8},end:{line:325,column:9}}],line:323},"19":{loc:{start:{line:339,column:8},end:{line:341,column:9}},type:"if",locations:[{start:{line:339,column:8},end:{line:341,column:9}},{start:{line:339,column:8},end:{line:341,column:9}}],line:339},"20":{loc:{start:{line:349,column:8},end:{line:351,column:9}},type:"if",locations:[{start:{line:349,column:8},end:{line:351,column:9}},{start:{line:349,column:8},end:{line:351,column:9}}],line:349},"21":{loc:{start:{line:358,column:8},end:{line:361,column:9}},type:"if",locations:[{start:{line:358,column:8},end:{line:361,column:9}},{start:{line:358,column:8},end:{line:361,column:9}}],line:358},"22":{loc:{start:{line:375,column:8},end:{line:377,column:9}},type:"if",locations:[{start:{line:375,column:8},end:{line:377,column:9}},{start:{line:375,column:8},end:{line:377,column:9}}],line:375},"23":{loc:{start:{line:381,column:12},end:{line:383,column:13}},type:"if",locations:[{start:{line:381,column:12},end:{line:383,column:13}},{start:{line:381,column:12},end:{line:383,column:13}}],line:381},"24":{loc:{start:{line:393,column:8},end:{line:395,column:9}},type:"if",locations:[{start:{line:393,column:8},end:{line:395,column:9}},{start:{line:393,column:8},end:{line:395,column:9}}],line:393},"25":{loc:{start:{line:405,column:8},end:{line:407,column:9}},type:"if",locations:[{start:{line:405,column:8},end:{line:407,column:9}},{start:{line:405,column:8},end:{line:407,column:9}}],line:405},"26":{loc:{start:{line:405,column:12},end:{line:405,column:62}},type:"binary-expr",locations:[{start:{line:405,column:12},end:{line:405,column:28}},{start:{line:405,column:32},end:{line:405,column:62}}],line:405}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0,"137":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0,0],"10":[0,0],"11":[0,0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0]},inputSourceMap:{version:3,file:"baseuploadcontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/baseuploadcontrol.ts"],names:[],mappings:"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",sourcesContent:["import {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport {\r\n IdService,\r\n UPLOADX_AJAX,\r\n UPLOADX_FACTORY_OPTIONS,\r\n UPLOADX_OPTIONS,\r\n UploadState,\r\n UploadxOptions,\r\n UploadxService,\r\n} from 'ngx-uploadx';\r\nimport { Observable, of } from 'rxjs';\r\nimport { SacFormLayoutCommon } from '../controls/layout/formlayout';\r\nimport { ISacIconService } from '../interfaces/ISacIconService';\r\nimport { ISacLocalisationService } from '../interfaces/ISacLocalisationService';\r\nimport { IUploadControl } from '../interfaces/iuploadcontrol';\r\nimport {\r\n SACICON_SERVICE,\r\n SACVALIDATIONKEY_SERVICE,\r\n SacDefaultIconService,\r\n SacDefaultValidationKeyService,\r\n} from '../services';\r\nimport {\r\n SACLOCALISATION_SERVICE,\r\n SacDefaultLocalisationService,\r\n} from '../services/sac-localisation.service';\r\nimport { Validation } from '../validation';\r\nimport { SacBaseModelControl } from './basemodelcontrol';\r\n\r\n// #region Classes\r\n\r\n/**\r\n * Base Klasse f\xFCr Uploader Control\r\n */\r\n@Directive()\r\nexport abstract class SacUploadBase<VALUE>\r\n extends SacBaseModelControl<VALUE>\r\n implements OnInit, OnDestroy\r\n{\r\n // #region Properties\r\n\r\n /**\r\n * File Input Control\r\n */\r\n @ViewChild('files', { static: true })\r\n private uploadInput: ElementRef;\r\n\r\n /**\r\n * Erlaubte Dateitypen\r\n */\r\n private _allowedtypes: string = '*';\r\n /**\r\n * Files automatisch hochladen\r\n */\r\n private _autoupload: boolean = false;\r\n /**\r\n * Pausieren von Uploads erlauben\r\n */\r\n private _enablepause: boolean = true;\r\n /**\r\n * API Endpoint\r\n */\r\n private _endpoint: string = null;\r\n /**\r\n * Upload Settings\r\n */\r\n private options: UploadxOptions = {};\r\n\r\n /**\r\n * icon service to receive icons for uploader\r\n */\r\n protected iconService: ISacIconService;\r\n /**\r\n * Upload Service\r\n */\r\n protected uploadService: UploadxService;\r\n\r\n /**\r\n * Definiert das Control als Required\r\n */\r\n @Input() public isrequired: boolean = false;\r\n /**\r\n * Max. Dateigr\xF6sse f\xFCr Files die hochgeladen werden k\xF6nnen. 0 deaktiviert den Filter\r\n */\r\n @Input() public maxfilesize: number = 0;\r\n /**\r\n * Resource Key f\xFCr Validation Message Required bei Control\r\n */\r\n @Input() public validationmessagerequired: string =\r\n this.validationKeyService.ValidationErrorRequired;\r\n /**\r\n * Resource Key f\xFCr Validation Message Required in Validation Summary\r\n */\r\n @Input()\r\n public validationmessagesummaryrequired: string =\r\n this.validationKeyService.ValidationErrorSummaryRequired;\r\n /**\r\n * Event wenn ein Error in der Komponente ausgel\xF6st wird.\r\n */\r\n @Output() public onfileerror = new EventEmitter<string>();\r\n\r\n /**\r\n * Handling von neuen Files im Input Control\r\n */\r\n public fileListener = () => {\r\n if (this.uploadInput.nativeElement.files) {\r\n this.uploadService.handleFiles(this.uploadInput.nativeElement.files);\r\n }\r\n };\r\n /**\r\n * Listener f\xFCr Files\r\n */\r\n public listenerFn: () => void;\r\n /**\r\n * Service f\xFCr Error Localisation\r\n */\r\n public lngResourceService: ISacLocalisationService;\r\n /**\r\n * Array von Uploads\r\n */\r\n public uploads: SacUploadFile[];\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Constructor\r\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\r\n * @param injector Injector for injecting services\r\n * @param renderer angular rendering engine\r\n * @param ngZone ngzone for handling external scripts\r\n */\r\n constructor(\r\n formlayout: SacFormLayoutCommon,\r\n injector: Injector,\r\n private renderer: Renderer2,\r\n private ngZone: NgZone\r\n ) {\r\n super(formlayout, injector);\r\n\r\n this.validationKeyService = injector.get(\r\n SACVALIDATIONKEY_SERVICE,\r\n new SacDefaultValidationKeyService()\r\n );\r\n\r\n this.lngResourceService = injector.get(\r\n SACLOCALISATION_SERVICE,\r\n new SacDefaultLocalisationService(this.validationKeyService)\r\n );\r\n\r\n this.iconService = injector.get(\r\n SACICON_SERVICE,\r\n new SacDefaultIconService()\r\n );\r\n\r\n this.uploads = [];\r\n\r\n this.options.allowedTypes = '*';\r\n this.options.concurrency = 1;\r\n this.options.token = 'sometoken';\r\n this.options.autoUpload = this._autoupload;\r\n this.options.withCredentials = true;\r\n this.options.chunkSize = 1024 * 16 * 8;\r\n this.options.headers = (f: File) => ({\r\n 'Content-Disposition': `filename=${encodeURI(f.name)}`,\r\n });\r\n\r\n // Init new Service Instance\r\n this.uploadService = new UploadxService();\r\n this.uploadService.init(this.options);\r\n\r\n // Subscripe Event for State changes\r\n this.uploadService.events.subscribe((ufile: UploadState) =>\r\n this.onUpload(ufile)\r\n );\r\n }\r\n\r\n // #endregion Constructors\r\n\r\n // #region Public Getters And Setters\r\n\r\n /**\r\n * Erlaubte Dateitypen f\xFCr den Upload. Format: \".xxx,.yyy,.zzz\"\r\n */\r\n @Input()\r\n public set allowedtypes(types: string) {\r\n this._allowedtypes = types;\r\n this.setAllowedTypes(types);\r\n }\r\n\r\n /**\r\n * Files nach der Auswahl automatisch hochladen\r\n */\r\n @Input()\r\n public set autoupload(v: boolean) {\r\n this._autoupload = v;\r\n this.options.autoUpload = v;\r\n this.uploadService.connect(this.options);\r\n }\r\n\r\n /**\r\n * Uploads k\xF6nnen unterbrochen werden\r\n */\r\n @Input()\r\n public set enablepause(v: boolean) {\r\n this._enablepause = v;\r\n }\r\n\r\n /**\r\n * Definiert den Registration Endpoint f\xFCr Uploads.\r\n */\r\n @Input()\r\n public set endpoint(v: string) {\r\n this._endpoint = v;\r\n this.setEndpoint(v);\r\n }\r\n\r\n /**\r\n * Icon for browse button\r\n */\r\n public get IconBrowse(): string {\r\n return this.iconService.UploadComponentBrowseIcon;\r\n }\r\n\r\n /**\r\n * icon for continous buttons\r\n */\r\n public get IconContinue(): string {\r\n return this.iconService.UploadComponentContinueIcon;\r\n }\r\n\r\n /**\r\n * icon for delete buttons\r\n */\r\n public get IconDelete(): string {\r\n return this.iconService.UploadComponentDeleteIcon;\r\n }\r\n\r\n /**\r\n * icon for pause buttons\r\n */\r\n public get IconPause(): string {\r\n return this.iconService.UploadComponentPauseIcon;\r\n }\r\n\r\n /**\r\n * icon for upload button\r\n */\r\n public get IconUpload(): string {\r\n return this.iconService.UploadComponentUploadIcon;\r\n }\r\n\r\n public get allowedtypes(): string {\r\n return this._allowedtypes;\r\n }\r\n\r\n public get autoupload(): boolean {\r\n return this._autoupload;\r\n }\r\n\r\n public get enablepause(): boolean {\r\n return this._enablepause;\r\n }\r\n\r\n public get endpoint(): string {\r\n return this._endpoint;\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * Name der Datei die Hochgeladen wird\r\n * @returns Observable des Dateinamens.\r\n */\r\n public Filename(): Observable<string> {\r\n if (this.uploads.length > 0) {\r\n return of(this.uploads[0].name);\r\n } else {\r\n return this.lngResourceService.GetString(\r\n this.validationKeyService.UploadNoFilesSelected\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Gibt an ob Queue Elemente beinhaltet\r\n * @returns Elemente in der Queue\r\n */\r\n public HasQueueItem(): boolean {\r\n return this.uploads.length > 0;\r\n }\r\n\r\n /**\r\n * Gibt an ob ein Upload abgeschlossen ist\r\n * @returns Upload erfolgreich\r\n */\r\n public HasSuccessUpload(): boolean {\r\n if (this.uploads.length > 0) {\r\n return (\r\n this.uploads.filter((itm) => itm.status !== 'complete').length === 0\r\n );\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Pr\xFCft ob ein Upload pausiert\r\n * @returns Pausierter Upload ist vorhanden\r\n */\r\n public IsPaused(): boolean {\r\n return this.uploads.filter((itm) => itm.status === 'paused').length > 0;\r\n }\r\n\r\n /**\r\n * Pr\xFCft ob in der Queue Elemente die zum Upload bereit sind vorhanden sind.\r\n * @returns Elemente f\xFCr Upload vorhanden\r\n */\r\n public IsStateToUpload(): boolean {\r\n return (\r\n this.uploads.filter(\r\n (itm) => itm.status === 'added' || itm.status === 'paused'\r\n ).length > 0\r\n );\r\n }\r\n\r\n /**\r\n * Pr\xFCft ob ein Upload eines Files am laufen ist\r\n * @returns Upload ist am laufen\r\n */\r\n public IsUploading(): boolean {\r\n return this.uploads.filter((itm) => itm.status === 'uploading').length > 0;\r\n }\r\n\r\n /**\r\n * Gibt den Uploadfortschritt zur\xFCck\r\n * @returns Upload Fortschritt. Wert von 0-100\r\n */\r\n public Progress(): number {\r\n if (this.uploads.length > 0) {\r\n return this.uploads[0].progress;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Cancel single upload\r\n * @param uploadId ID of File to cancel\r\n */\r\n public cancel(uploadId) {\r\n this.uploadService.control({ action: 'cancel', uploadId: uploadId });\r\n }\r\n\r\n /**\r\n * Cancel all Uploaded files\r\n */\r\n public cancelAll() {\r\n if (this.HasQueueItem() === true) {\r\n this.uploadService.control({ action: 'cancel' });\r\n }\r\n }\r\n\r\n /**\r\n * Destroy des Controls\r\n */\r\n public ngOnDestroy() {\r\n if (this.listenerFn) {\r\n this.listenerFn();\r\n }\r\n }\r\n\r\n /**\r\n * Initialisiert das Control\r\n */\r\n public ngOnInit() {\r\n super.ngOnInit();\r\n // Init Event Listener for Input File Control and Handling Files\r\n this.listenerFn = this.renderer.listen(\r\n this.uploadInput.nativeElement,\r\n 'change',\r\n this.fileListener\r\n );\r\n\r\n this.setAllowedTypes(this._allowedtypes);\r\n this.setEndpoint(this._endpoint);\r\n\r\n if (this._endpoint === null) {\r\n throw new Error('endpoint is not defined!');\r\n }\r\n\r\n this.uploadService.connect(this.options);\r\n }\r\n\r\n /**\r\n * Upload Event\r\n *\r\n * @param uploadsOutStream Upload Item\r\n */\r\n public onUpload(ufile: UploadState) {\r\n const index = this.uploads.findIndex((f) => f.uploadId === ufile.uploadId);\r\n\r\n if (ufile.status === 'added' || (ufile.status === 'queue' && index < 0)) {\r\n if (\r\n this.isExtensionValid(ufile.name) &&\r\n this.isFileSizeValid(ufile.size) &&\r\n this.CustomAddValidation(ufile)\r\n ) {\r\n this.uploads.push(new SacUploadFile(ufile));\r\n } else {\r\n this.cancel(ufile.uploadId);\r\n\r\n if (!this.isExtensionValid(ufile.name)) {\r\n this.onfileerror.emit('INVALID_EXTENSION');\r\n } else if (!this.isFileSizeValid(ufile.size)) {\r\n this.onfileerror.emit('INVALID_FILESIZE');\r\n }\r\n }\r\n } else if (ufile.status === 'cancelled') {\r\n if (index >= 0) {\r\n this.uploads.splice(index, 1);\r\n }\r\n\r\n this.SetUploadValue(null);\r\n } else if (ufile.status === 'complete') {\r\n this.uploads[index].progress = ufile.progress;\r\n this.uploads[index].status = ufile.status;\r\n this.SetUploadValue(ufile);\r\n } else {\r\n if (index >= 0) {\r\n this.uploads[index].progress = ufile.progress;\r\n this.uploads[index].status = ufile.status;\r\n }\r\n }\r\n\r\n this.UpdateFileCount();\r\n }\r\n\r\n /**\r\n * Cancel Single File\r\n * @param uploadId ID of File to Cancel\r\n */\r\n public pause(uploadId) {\r\n this.uploadService.control({ action: 'pause', uploadId });\r\n }\r\n\r\n /**\r\n * Pause all Uploads\r\n */\r\n public pauseAll() {\r\n if (this.IsUploading() === true) {\r\n this.uploadService.control({ action: 'pause' });\r\n }\r\n }\r\n\r\n /**\r\n * Upload Single File\r\n *\r\n * @param uploadId ID of File to Upload\r\n */\r\n public upload(uploadId) {\r\n this.uploadService.control({ action: 'upload', uploadId });\r\n }\r\n\r\n /**\r\n * Upload all queued Files\r\n */\r\n public uploadAll() {\r\n if (this.IsStateToUpload() === true) {\r\n this.uploadService.control({ action: 'upload' });\r\n }\r\n }\r\n\r\n /**\r\n * Validiert das Upload Control\r\n * @param c Control das validiert werden soll\r\n */\r\n public validateData(c: AbstractControl): ValidationErrors | null {\r\n let error: ValidationErrors | null = null;\r\n\r\n if (this.isrequired) {\r\n error = Validation.required(\r\n this.validationmessagerequired,\r\n this.validationmessagesummaryrequired\r\n )(c);\r\n }\r\n\r\n return error;\r\n }\r\n\r\n // #endregion Public Methods\r\n\r\n // #region Public Abstract Methods\r\n\r\n /**\r\n * Methode kann f\xFCr Controls verwendet werden, zus\xE4tzliche Validierungen bei hinzuf\xFCgen der Files zu machen\r\n *\r\n * @param file File das hinzugef\xFCgt wurde.\r\n * @returns Valdierung ist erfolgreich\r\n */\r\n public abstract CustomAddValidation(file: UploadState): boolean;\r\n /**\r\n * Methode welche die Upload ID's in das Model setzt oder l\xF6scht\r\n *\r\n * @param file Type von File ID's\r\n */\r\n public abstract SetUploadValue(file: UploadState): void;\r\n\r\n // #endregion Public Abstract Methods\r\n\r\n // #region Private Methods\r\n\r\n private UpdateFileCount(): void {\r\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\r\n if (this.ngControl) {\r\n (this.ngControl as unknown as IUploadControl).uploadedfilecount =\r\n this.UploadedFileCount();\r\n }\r\n }\r\n\r\n /**\r\n * Returns the number of uploaded files\r\n */\r\n private UploadedFileCount(): number {\r\n return this.uploads.filter((itm) => itm.status === 'complete').length;\r\n }\r\n\r\n /**\r\n * Pr\xFCft ob die Dateierweiterung g\xFCltig ist\r\n *\r\n * @param filename Dateiname\r\n */\r\n private isExtensionValid(filename: string): boolean {\r\n if (this._allowedtypes === '*') {\r\n return true;\r\n }\r\n\r\n let isValid: boolean = false;\r\n const extensions: string[] = this._allowedtypes.split(',');\r\n\r\n extensions.forEach((itm) => {\r\n if (filename.toLowerCase().endsWith(itm.toLowerCase())) {\r\n isValid = true;\r\n }\r\n });\r\n\r\n return isValid;\r\n }\r\n\r\n /**\r\n * Pr\xFCft ob das File nicht zu gross ist.\r\n *\r\n * @param filesize Max File Size in Bytes\r\n */\r\n private isFileSizeValid(filesize: number): boolean {\r\n if (this.maxfilesize === 0) {\r\n return true;\r\n }\r\n\r\n return this.maxfilesize >= filesize;\r\n }\r\n\r\n /**\r\n * Setzt die erlaubten Datentypen f\xFCr den Upload\r\n *\r\n * @param types Erlaubte File Extensions\r\n */\r\n private setAllowedTypes(types: string) {\r\n // Pr\xFCfen UploadInput bereits geladen, ist NULL wenn Extension im Markup nach NgModel gesetzt wird.\r\n if (this.uploadInput && this.uploadInput.nativeElement) {\r\n this.renderer.setAttribute(\r\n this.uploadInput.nativeElement,\r\n 'accept',\r\n types\r\n );\r\n }\r\n\r\n this.options.allowedTypes = types;\r\n }\r\n\r\n /**\r\n * Setzt den Upload Endpoit\r\n * @param url Register URI\r\n */\r\n private setEndpoint(url: string) {\r\n this.options.endpoint = url;\r\n }\r\n\r\n // #endregion Private Methods\r\n}\r\n\r\n/**\r\n * Klasse f\xFCr den Upload einer Datei in der Upload Component\r\n */\r\nexport class SacUploadFile {\r\n // #region Properties\r\n\r\n /**\r\n * Document ID\r\n */\r\n public documentid: string;\r\n /**\r\n * Dateiname\r\n */\r\n public name: string;\r\n /**\r\n * Upload Fortschritt\r\n */\r\n public progress: number;\r\n /**\r\n * Upload Status\r\n */\r\n public status: string;\r\n /**\r\n * Upload ID\r\n */\r\n public uploadId: string;\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Konstruktor\r\n * @param ufile Upload Status\r\n */\r\n constructor(ufile: UploadState) {\r\n this.uploadId = ufile.uploadId;\r\n this.name = ufile.name;\r\n this.progress = ufile.progress;\r\n this.status = ufile.status;\r\n this.documentid = null;\r\n }\r\n\r\n // #endregion Constructors\r\n}\r\n\r\n// #endregion Classes\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"bfd8ae3657f99f46d821e2cc194f0a18c18d279b"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
-
cov_1y8jkaecmb=function(){return actualCoverage;};}return actualCoverage;}cov_1y8jkaecmb();import{Directive,EventEmitter,Input,Output,ViewChild}from'@angular/core';import{UploadxService}from'ngx-uploadx';import{of}from'rxjs';import{
|
|
1
|
+
function cov_1y8jkaecmb(){var path="C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\common\\baseuploadcontrol.mjs";var hash="14557ee27daaffe693a6aa6c3400529390000a69";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\common\\baseuploadcontrol.mjs",statementMap:{"0":{start:{line:25,column:8},end:{line:25,column:36}},"1":{start:{line:26,column:8},end:{line:26,column:33}},"2":{start:{line:27,column:8},end:{line:27,column:29}},"3":{start:{line:31,column:8},end:{line:31,column:33}},"4":{start:{line:35,column:8},end:{line:35,column:33}},"5":{start:{line:39,column:8},end:{line:39,column:33}},"6":{start:{line:43,column:8},end:{line:43,column:30}},"7":{start:{line:47,column:8},end:{line:47,column:26}},"8":{start:{line:51,column:8},end:{line:51,column:32}},"9":{start:{line:55,column:8},end:{line:55,column:29}},"10":{start:{line:59,column:8},end:{line:59,column:91}},"11":{start:{line:63,column:8},end:{line:63,column:105}},"12":{start:{line:67,column:8},end:{line:67,column:46}},"13":{start:{line:71,column:8},end:{line:75,column:10}},"14":{start:{line:72,column:12},end:{line:74,column:13}},"15":{start:{line:73,column:16},end:{line:73,column:85}},"16":{start:{line:76,column:8},end:{line:76,column:113}},"17":{start:{line:77,column:8},end:{line:77,column:134}},"18":{start:{line:78,column:8},end:{line:78,column:26}},"19":{start:{line:79,column:8},end:{line:79,column:40}},"20":{start:{line:80,column:8},end:{line:80,column:37}},"21":{start:{line:81,column:8},end:{line:81,column:41}},"22":{start:{line:82,column:8},end:{line:82,column:51}},"23":{start:{line:83,column:8},end:{line:83,column:44}},"24":{start:{line:84,column:8},end:{line:84,column:47}},"25":{start:{line:85,column:8},end:{line:87,column:11}},"26":{start:{line:85,column:39},end:{line:87,column:9}},"27":{start:{line:89,column:8},end:{line:89,column:50}},"28":{start:{line:90,column:8},end:{line:90,column:46}},"29":{start:{line:92,column:8},end:{line:92,column:77}},"30":{start:{line:92,column:55},end:{line:92,column:75}},"31":{start:{line:100,column:8},end:{line:100,column:35}},"32":{start:{line:101,column:8},end:{line:101,column:36}},"33":{start:{line:107,column:8},end:{line:107,column:29}},"34":{start:{line:108,column:8},end:{line:108,column:36}},"35":{start:{line:109,column:8},end:{line:109,column:49}},"36":{start:{line:115,column:8},end:{line:115,column:30}},"37":{start:{line:121,column:8},end:{line:121,column:27}},"38":{start:{line:122,column:8},end:{line:122,column:28}},"39":{start:{line:128,column:8},end:{line:128,column:58}},"40":{start:{line:134,column:8},end:{line:134,column:60}},"41":{start:{line:140,column:8},end:{line:140,column:58}},"42":{start:{line:146,column:8},end:{line:146,column:57}},"43":{start:{line:152,column:8},end:{line:152,column:58}},"44":{start:{line:155,column:8},end:{line:155,column:34}},"45":{start:{line:158,column:8},end:{line:158,column:32}},"46":{start:{line:161,column:8},end:{line:161,column:33}},"47":{start:{line:164,column:8},end:{line:164,column:30}},"48":{start:{line:173,column:8},end:{line:178,column:9}},"49":{start:{line:174,column:12},end:{line:174,column:44}},"50":{start:{line:177,column:12},end:{line:177,column:102}},"51":{start:{line:185,column:8},end:{line:185,column:39}},"52":{start:{line:192,column:8},end:{line:197,column:9}},"53":{start:{line:193,column:12},end:{line:193,column:90}},"54":{start:{line:193,column:49},end:{line:193,column:74}},"55":{start:{line:196,column:12},end:{line:196,column:25}},"56":{start:{line:204,column:8},end:{line:204,column:80}},"57":{start:{line:204,column:44},end:{line:204,column:67}},"58":{start:{line:211,column:8},end:{line:211,column:108}},"59":{start:{line:211,column:45},end:{line:211,column:94}},"60":{start:{line:218,column:8},end:{line:218,column:83}},"61":{start:{line:218,column:44},end:{line:218,column:70}},"62":{start:{line:225,column:8},end:{line:230,column:9}},"63":{start:{line:226,column:12},end:{line:226,column:44}},"64":{start:{line:229,column:12},end:{line:229,column:21}},"65":{start:{line:237,column:8},end:{line:237,column:77}},"66":{start:{line:243,column:8},end:{line:245,column:9}},"67":{start:{line:244,column:12},end:{line:244,column:61}},"68":{start:{line:251,column:8},end:{line:253,column:9}},"69":{start:{line:252,column:12},end:{line:252,column:30}},"70":{start:{line:259,column:8},end:{line:259,column:25}},"71":{start:{line:261,column:8},end:{line:261,column:108}},"72":{start:{line:262,column:8},end:{line:262,column:49}},"73":{start:{line:263,column:8},end:{line:263,column:41}},"74":{start:{line:264,column:8},end:{line:266,column:9}},"75":{start:{line:265,column:12},end:{line:265,column:56}},"76":{start:{line:267,column:8},end:{line:267,column:49}},"77":{start:{line:275,column:22},end:{line:275,column:82}},"78":{start:{line:275,column:52},end:{line:275,column:81}},"79":{start:{line:276,column:8},end:{line:308,column:9}},"80":{start:{line:277,column:12},end:{line:290,column:13}},"81":{start:{line:280,column:16},end:{line:280,column:60}},"82":{start:{line:283,column:16},end:{line:283,column:44}},"83":{start:{line:284,column:16},end:{line:289,column:17}},"84":{start:{line:285,column:20},end:{line:285,column:63}},"85":{start:{line:287,column:21},end:{line:289,column:17}},"86":{start:{line:288,column:20},end:{line:288,column:62}},"87":{start:{line:292,column:13},end:{line:308,column:9}},"88":{start:{line:293,column:12},end:{line:295,column:13}},"89":{start:{line:294,column:16},end:{line:294,column:46}},"90":{start:{line:296,column:12},end:{line:296,column:38}},"91":{start:{line:298,column:13},end:{line:308,column:9}},"92":{start:{line:299,column:12},end:{line:299,column:58}},"93":{start:{line:300,column:12},end:{line:300,column:54}},"94":{start:{line:301,column:12},end:{line:301,column:39}},"95":{start:{line:304,column:12},end:{line:307,column:13}},"96":{start:{line:305,column:16},end:{line:305,column:62}},"97":{start:{line:306,column:16},end:{line:306,column:58}},"98":{start:{line:309,column:8},end:{line:309,column:31}},"99":{start:{line:316,column:8},end:{line:316,column:66}},"100":{start:{line:322,column:8},end:{line:324,column:9}},"101":{start:{line:323,column:12},end:{line:323,column:60}},"102":{start:{line:332,column:8},end:{line:332,column:67}},"103":{start:{line:338,column:8},end:{line:340,column:9}},"104":{start:{line:339,column:12},end:{line:339,column:61}},"105":{start:{line:347,column:20},end:{line:347,column:24}},"106":{start:{line:348,column:8},end:{line:350,column:9}},"107":{start:{line:349,column:12},end:{line:349,column:114}},"108":{start:{line:351,column:8},end:{line:351,column:21}},"109":{start:{line:357,column:8},end:{line:360,column:9}},"110":{start:{line:358,column:12},end:{line:359,column:41}},"111":{start:{line:366,column:8},end:{line:366,column:78}},"112":{start:{line:366,column:44},end:{line:366,column:69}},"113":{start:{line:374,column:8},end:{line:376,column:9}},"114":{start:{line:375,column:12},end:{line:375,column:24}},"115":{start:{line:377,column:22},end:{line:377,column:27}},"116":{start:{line:378,column:27},end:{line:378,column:56}},"117":{start:{line:379,column:8},end:{line:383,column:11}},"118":{start:{line:380,column:12},end:{line:382,column:13}},"119":{start:{line:381,column:16},end:{line:381,column:31}},"120":{start:{line:384,column:8},end:{line:384,column:23}},"121":{start:{line:392,column:8},end:{line:394,column:9}},"122":{start:{line:393,column:12},end:{line:393,column:24}},"123":{start:{line:395,column:8},end:{line:395,column:44}},"124":{start:{line:404,column:8},end:{line:406,column:9}},"125":{start:{line:405,column:12},end:{line:405,column:88}},"126":{start:{line:407,column:8},end:{line:407,column:42}},"127":{start:{line:414,column:8},end:{line:414,column:36}},"128":{start:{line:416,column:13},end:{line:416,column:280}},"129":{start:{line:417,column:13},end:{line:417,column:608}},"130":{start:{line:420,column:0},end:{line:443,column:20}},"131":{start:{line:422,column:42},end:{line:422,column:152}},"132":{start:{line:455,column:8},end:{line:455,column:39}},"133":{start:{line:456,column:8},end:{line:456,column:31}},"134":{start:{line:457,column:8},end:{line:457,column:39}},"135":{start:{line:458,column:8},end:{line:458,column:35}},"136":{start:{line:459,column:8},end:{line:459,column:31}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:24,column:4},end:{line:24,column:5}},loc:{start:{line:24,column:56},end:{line:93,column:5}},line:24},"1":{name:"(anonymous_1)",decl:{start:{line:71,column:28},end:{line:71,column:29}},loc:{start:{line:71,column:34},end:{line:75,column:9}},line:71},"2":{name:"(anonymous_2)",decl:{start:{line:85,column:31},end:{line:85,column:32}},loc:{start:{line:85,column:39},end:{line:87,column:9}},line:85},"3":{name:"(anonymous_3)",decl:{start:{line:92,column:44},end:{line:92,column:45}},loc:{start:{line:92,column:55},end:{line:92,column:75}},line:92},"4":{name:"(anonymous_4)",decl:{start:{line:99,column:4},end:{line:99,column:5}},loc:{start:{line:99,column:28},end:{line:102,column:5}},line:99},"5":{name:"(anonymous_5)",decl:{start:{line:106,column:4},end:{line:106,column:5}},loc:{start:{line:106,column:22},end:{line:110,column:5}},line:106},"6":{name:"(anonymous_6)",decl:{start:{line:114,column:4},end:{line:114,column:5}},loc:{start:{line:114,column:23},end:{line:116,column:5}},line:114},"7":{name:"(anonymous_7)",decl:{start:{line:120,column:4},end:{line:120,column:5}},loc:{start:{line:120,column:20},end:{line:123,column:5}},line:120},"8":{name:"(anonymous_8)",decl:{start:{line:127,column:4},end:{line:127,column:5}},loc:{start:{line:127,column:21},end:{line:129,column:5}},line:127},"9":{name:"(anonymous_9)",decl:{start:{line:133,column:4},end:{line:133,column:5}},loc:{start:{line:133,column:23},end:{line:135,column:5}},line:133},"10":{name:"(anonymous_10)",decl:{start:{line:139,column:4},end:{line:139,column:5}},loc:{start:{line:139,column:21},end:{line:141,column:5}},line:139},"11":{name:"(anonymous_11)",decl:{start:{line:145,column:4},end:{line:145,column:5}},loc:{start:{line:145,column:20},end:{line:147,column:5}},line:145},"12":{name:"(anonymous_12)",decl:{start:{line:151,column:4},end:{line:151,column:5}},loc:{start:{line:151,column:21},end:{line:153,column:5}},line:151},"13":{name:"(anonymous_13)",decl:{start:{line:154,column:4},end:{line:154,column:5}},loc:{start:{line:154,column:23},end:{line:156,column:5}},line:154},"14":{name:"(anonymous_14)",decl:{start:{line:157,column:4},end:{line:157,column:5}},loc:{start:{line:157,column:21},end:{line:159,column:5}},line:157},"15":{name:"(anonymous_15)",decl:{start:{line:160,column:4},end:{line:160,column:5}},loc:{start:{line:160,column:22},end:{line:162,column:5}},line:160},"16":{name:"(anonymous_16)",decl:{start:{line:163,column:4},end:{line:163,column:5}},loc:{start:{line:163,column:19},end:{line:165,column:5}},line:163},"17":{name:"(anonymous_17)",decl:{start:{line:172,column:4},end:{line:172,column:5}},loc:{start:{line:172,column:15},end:{line:179,column:5}},line:172},"18":{name:"(anonymous_18)",decl:{start:{line:184,column:4},end:{line:184,column:5}},loc:{start:{line:184,column:19},end:{line:186,column:5}},line:184},"19":{name:"(anonymous_19)",decl:{start:{line:191,column:4},end:{line:191,column:5}},loc:{start:{line:191,column:23},end:{line:198,column:5}},line:191},"20":{name:"(anonymous_20)",decl:{start:{line:193,column:40},end:{line:193,column:41}},loc:{start:{line:193,column:49},end:{line:193,column:74}},line:193},"21":{name:"(anonymous_21)",decl:{start:{line:203,column:4},end:{line:203,column:5}},loc:{start:{line:203,column:15},end:{line:205,column:5}},line:203},"22":{name:"(anonymous_22)",decl:{start:{line:204,column:35},end:{line:204,column:36}},loc:{start:{line:204,column:44},end:{line:204,column:67}},line:204},"23":{name:"(anonymous_23)",decl:{start:{line:210,column:4},end:{line:210,column:5}},loc:{start:{line:210,column:22},end:{line:212,column:5}},line:210},"24":{name:"(anonymous_24)",decl:{start:{line:211,column:36},end:{line:211,column:37}},loc:{start:{line:211,column:45},end:{line:211,column:94}},line:211},"25":{name:"(anonymous_25)",decl:{start:{line:217,column:4},end:{line:217,column:5}},loc:{start:{line:217,column:18},end:{line:219,column:5}},line:217},"26":{name:"(anonymous_26)",decl:{start:{line:218,column:35},end:{line:218,column:36}},loc:{start:{line:218,column:44},end:{line:218,column:70}},line:218},"27":{name:"(anonymous_27)",decl:{start:{line:224,column:4},end:{line:224,column:5}},loc:{start:{line:224,column:15},end:{line:231,column:5}},line:224},"28":{name:"(anonymous_28)",decl:{start:{line:236,column:4},end:{line:236,column:5}},loc:{start:{line:236,column:21},end:{line:238,column:5}},line:236},"29":{name:"(anonymous_29)",decl:{start:{line:242,column:4},end:{line:242,column:5}},loc:{start:{line:242,column:16},end:{line:246,column:5}},line:242},"30":{name:"(anonymous_30)",decl:{start:{line:250,column:4},end:{line:250,column:5}},loc:{start:{line:250,column:18},end:{line:254,column:5}},line:250},"31":{name:"(anonymous_31)",decl:{start:{line:258,column:4},end:{line:258,column:5}},loc:{start:{line:258,column:15},end:{line:268,column:5}},line:258},"32":{name:"(anonymous_32)",decl:{start:{line:274,column:4},end:{line:274,column:5}},loc:{start:{line:274,column:20},end:{line:310,column:5}},line:274},"33":{name:"(anonymous_33)",decl:{start:{line:275,column:45},end:{line:275,column:46}},loc:{start:{line:275,column:52},end:{line:275,column:81}},line:275},"34":{name:"(anonymous_34)",decl:{start:{line:315,column:4},end:{line:315,column:5}},loc:{start:{line:315,column:20},end:{line:317,column:5}},line:315},"35":{name:"(anonymous_35)",decl:{start:{line:321,column:4},end:{line:321,column:5}},loc:{start:{line:321,column:15},end:{line:325,column:5}},line:321},"36":{name:"(anonymous_36)",decl:{start:{line:331,column:4},end:{line:331,column:5}},loc:{start:{line:331,column:21},end:{line:333,column:5}},line:331},"37":{name:"(anonymous_37)",decl:{start:{line:337,column:4},end:{line:337,column:5}},loc:{start:{line:337,column:16},end:{line:341,column:5}},line:337},"38":{name:"(anonymous_38)",decl:{start:{line:346,column:4},end:{line:346,column:5}},loc:{start:{line:346,column:20},end:{line:352,column:5}},line:346},"39":{name:"(anonymous_39)",decl:{start:{line:355,column:4},end:{line:355,column:5}},loc:{start:{line:355,column:22},end:{line:361,column:5}},line:355},"40":{name:"(anonymous_40)",decl:{start:{line:365,column:4},end:{line:365,column:5}},loc:{start:{line:365,column:24},end:{line:367,column:5}},line:365},"41":{name:"(anonymous_41)",decl:{start:{line:366,column:35},end:{line:366,column:36}},loc:{start:{line:366,column:44},end:{line:366,column:69}},line:366},"42":{name:"(anonymous_42)",decl:{start:{line:373,column:4},end:{line:373,column:5}},loc:{start:{line:373,column:31},end:{line:385,column:5}},line:373},"43":{name:"(anonymous_43)",decl:{start:{line:379,column:27},end:{line:379,column:28}},loc:{start:{line:379,column:36},end:{line:383,column:9}},line:379},"44":{name:"(anonymous_44)",decl:{start:{line:391,column:4},end:{line:391,column:5}},loc:{start:{line:391,column:30},end:{line:396,column:5}},line:391},"45":{name:"(anonymous_45)",decl:{start:{line:402,column:4},end:{line:402,column:5}},loc:{start:{line:402,column:27},end:{line:408,column:5}},line:402},"46":{name:"(anonymous_46)",decl:{start:{line:413,column:4},end:{line:413,column:5}},loc:{start:{line:413,column:21},end:{line:415,column:5}},line:413},"47":{name:"(anonymous_47)",decl:{start:{line:422,column:28},end:{line:422,column:29}},loc:{start:{line:422,column:40},end:{line:422,column:154}},line:422},"48":{name:"(anonymous_48)",decl:{start:{line:454,column:4},end:{line:454,column:5}},loc:{start:{line:454,column:23},end:{line:460,column:5}},line:454}},branchMap:{"0":{loc:{start:{line:72,column:12},end:{line:74,column:13}},type:"if",locations:[{start:{line:72,column:12},end:{line:74,column:13}},{start:{line:72,column:12},end:{line:74,column:13}}],line:72},"1":{loc:{start:{line:173,column:8},end:{line:178,column:9}},type:"if",locations:[{start:{line:173,column:8},end:{line:178,column:9}},{start:{line:173,column:8},end:{line:178,column:9}}],line:173},"2":{loc:{start:{line:192,column:8},end:{line:197,column:9}},type:"if",locations:[{start:{line:192,column:8},end:{line:197,column:9}},{start:{line:192,column:8},end:{line:197,column:9}}],line:192},"3":{loc:{start:{line:211,column:45},end:{line:211,column:94}},type:"binary-expr",locations:[{start:{line:211,column:45},end:{line:211,column:67}},{start:{line:211,column:71},end:{line:211,column:94}}],line:211},"4":{loc:{start:{line:225,column:8},end:{line:230,column:9}},type:"if",locations:[{start:{line:225,column:8},end:{line:230,column:9}},{start:{line:225,column:8},end:{line:230,column:9}}],line:225},"5":{loc:{start:{line:243,column:8},end:{line:245,column:9}},type:"if",locations:[{start:{line:243,column:8},end:{line:245,column:9}},{start:{line:243,column:8},end:{line:245,column:9}}],line:243},"6":{loc:{start:{line:251,column:8},end:{line:253,column:9}},type:"if",locations:[{start:{line:251,column:8},end:{line:253,column:9}},{start:{line:251,column:8},end:{line:253,column:9}}],line:251},"7":{loc:{start:{line:264,column:8},end:{line:266,column:9}},type:"if",locations:[{start:{line:264,column:8},end:{line:266,column:9}},{start:{line:264,column:8},end:{line:266,column:9}}],line:264},"8":{loc:{start:{line:276,column:8},end:{line:308,column:9}},type:"if",locations:[{start:{line:276,column:8},end:{line:308,column:9}},{start:{line:276,column:8},end:{line:308,column:9}}],line:276},"9":{loc:{start:{line:276,column:12},end:{line:276,column:79}},type:"binary-expr",locations:[{start:{line:276,column:12},end:{line:276,column:36}},{start:{line:276,column:41},end:{line:276,column:65}},{start:{line:276,column:69},end:{line:276,column:78}}],line:276},"10":{loc:{start:{line:277,column:12},end:{line:290,column:13}},type:"if",locations:[{start:{line:277,column:12},end:{line:290,column:13}},{start:{line:277,column:12},end:{line:290,column:13}}],line:277},"11":{loc:{start:{line:277,column:16},end:{line:279,column:47}},type:"binary-expr",locations:[{start:{line:277,column:16},end:{line:277,column:49}},{start:{line:278,column:16},end:{line:278,column:48}},{start:{line:279,column:16},end:{line:279,column:47}}],line:277},"12":{loc:{start:{line:284,column:16},end:{line:289,column:17}},type:"if",locations:[{start:{line:284,column:16},end:{line:289,column:17}},{start:{line:284,column:16},end:{line:289,column:17}}],line:284},"13":{loc:{start:{line:287,column:21},end:{line:289,column:17}},type:"if",locations:[{start:{line:287,column:21},end:{line:289,column:17}},{start:{line:287,column:21},end:{line:289,column:17}}],line:287},"14":{loc:{start:{line:292,column:13},end:{line:308,column:9}},type:"if",locations:[{start:{line:292,column:13},end:{line:308,column:9}},{start:{line:292,column:13},end:{line:308,column:9}}],line:292},"15":{loc:{start:{line:293,column:12},end:{line:295,column:13}},type:"if",locations:[{start:{line:293,column:12},end:{line:295,column:13}},{start:{line:293,column:12},end:{line:295,column:13}}],line:293},"16":{loc:{start:{line:298,column:13},end:{line:308,column:9}},type:"if",locations:[{start:{line:298,column:13},end:{line:308,column:9}},{start:{line:298,column:13},end:{line:308,column:9}}],line:298},"17":{loc:{start:{line:304,column:12},end:{line:307,column:13}},type:"if",locations:[{start:{line:304,column:12},end:{line:307,column:13}},{start:{line:304,column:12},end:{line:307,column:13}}],line:304},"18":{loc:{start:{line:322,column:8},end:{line:324,column:9}},type:"if",locations:[{start:{line:322,column:8},end:{line:324,column:9}},{start:{line:322,column:8},end:{line:324,column:9}}],line:322},"19":{loc:{start:{line:338,column:8},end:{line:340,column:9}},type:"if",locations:[{start:{line:338,column:8},end:{line:340,column:9}},{start:{line:338,column:8},end:{line:340,column:9}}],line:338},"20":{loc:{start:{line:348,column:8},end:{line:350,column:9}},type:"if",locations:[{start:{line:348,column:8},end:{line:350,column:9}},{start:{line:348,column:8},end:{line:350,column:9}}],line:348},"21":{loc:{start:{line:357,column:8},end:{line:360,column:9}},type:"if",locations:[{start:{line:357,column:8},end:{line:360,column:9}},{start:{line:357,column:8},end:{line:360,column:9}}],line:357},"22":{loc:{start:{line:374,column:8},end:{line:376,column:9}},type:"if",locations:[{start:{line:374,column:8},end:{line:376,column:9}},{start:{line:374,column:8},end:{line:376,column:9}}],line:374},"23":{loc:{start:{line:380,column:12},end:{line:382,column:13}},type:"if",locations:[{start:{line:380,column:12},end:{line:382,column:13}},{start:{line:380,column:12},end:{line:382,column:13}}],line:380},"24":{loc:{start:{line:392,column:8},end:{line:394,column:9}},type:"if",locations:[{start:{line:392,column:8},end:{line:394,column:9}},{start:{line:392,column:8},end:{line:394,column:9}}],line:392},"25":{loc:{start:{line:404,column:8},end:{line:406,column:9}},type:"if",locations:[{start:{line:404,column:8},end:{line:406,column:9}},{start:{line:404,column:8},end:{line:406,column:9}}],line:404},"26":{loc:{start:{line:404,column:12},end:{line:404,column:62}},type:"binary-expr",locations:[{start:{line:404,column:12},end:{line:404,column:28}},{start:{line:404,column:32},end:{line:404,column:62}}],line:404}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0,"130":0,"131":0,"132":0,"133":0,"134":0,"135":0,"136":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0,0],"10":[0,0],"11":[0,0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0]},inputSourceMap:{version:3,file:"baseuploadcontrol.js",sourceRoot:"",sources:["../../../../projects/sac-common/src/common/baseuploadcontrol.ts"],names:[],mappings:"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",sourcesContent:["import {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport {\r\n IdService,\r\n UPLOADX_AJAX,\r\n UPLOADX_FACTORY_OPTIONS,\r\n UPLOADX_OPTIONS,\r\n UploadState,\r\n UploadxOptions,\r\n UploadxService,\r\n} from 'ngx-uploadx';\r\nimport { Observable, of } from 'rxjs';\r\nimport { SacFormLayoutCommon } from '../controls/layout/formlayout';\r\nimport { ISacLocalisationService } from '../interfaces/ISacLocalisationService';\r\nimport { IUploadControl } from '../interfaces/iuploadcontrol';\r\nimport {\r\n SACVALIDATIONKEY_SERVICE,\r\n SacDefaultValidationKeyService,\r\n} from '../services';\r\nimport {\r\n SACLOCALISATION_SERVICE,\r\n SacDefaultLocalisationService,\r\n} from '../services/sac-localisation.service';\r\nimport { Validation } from '../validation';\r\nimport { SacBaseModelControl } from './basemodelcontrol';\r\n\r\n// #region Classes\r\n\r\n/**\r\n * Base Klasse f\xFCr Uploader Control\r\n */\r\n@Directive()\r\nexport abstract class SacUploadBase<VALUE>\r\n extends SacBaseModelControl<VALUE>\r\n implements OnInit, OnDestroy\r\n{\r\n // #region Properties\r\n\r\n /**\r\n * File Input Control\r\n */\r\n @ViewChild('files', { static: true })\r\n private uploadInput: ElementRef;\r\n\r\n /**\r\n * Erlaubte Dateitypen\r\n */\r\n private _allowedtypes: string = '*';\r\n /**\r\n * Files automatisch hochladen\r\n */\r\n private _autoupload: boolean = false;\r\n /**\r\n * Pausieren von Uploads erlauben\r\n */\r\n private _enablepause: boolean = true;\r\n /**\r\n * API Endpoint\r\n */\r\n private _endpoint: string = null;\r\n /**\r\n * Upload Settings\r\n */\r\n private options: UploadxOptions = {};\r\n\r\n /**\r\n * Upload Service\r\n */\r\n protected uploadService: UploadxService;\r\n\r\n /**\r\n * Definiert das Control als Required\r\n */\r\n @Input() public isrequired: boolean = false;\r\n /**\r\n * Max. Dateigr\xF6sse f\xFCr Files die hochgeladen werden k\xF6nnen. 0 deaktiviert den Filter\r\n */\r\n @Input() public maxfilesize: number = 0;\r\n /**\r\n * Resource Key f\xFCr Validation Message Required bei Control\r\n */\r\n @Input() public validationmessagerequired: string =\r\n this.validationKeyService.ValidationErrorRequired;\r\n /**\r\n * Resource Key f\xFCr Validation Message Required in Validation Summary\r\n */\r\n @Input()\r\n public validationmessagesummaryrequired: string =\r\n this.validationKeyService.ValidationErrorSummaryRequired;\r\n /**\r\n * Event wenn ein Error in der Komponente ausgel\xF6st wird.\r\n */\r\n @Output() public onfileerror = new EventEmitter<string>();\r\n\r\n /**\r\n * Handling von neuen Files im Input Control\r\n */\r\n public fileListener = () => {\r\n if (this.uploadInput.nativeElement.files) {\r\n this.uploadService.handleFiles(this.uploadInput.nativeElement.files);\r\n }\r\n };\r\n /**\r\n * Listener f\xFCr Files\r\n */\r\n public listenerFn: () => void;\r\n /**\r\n * Service f\xFCr Error Localisation\r\n */\r\n public lngResourceService: ISacLocalisationService;\r\n /**\r\n * Array von Uploads\r\n */\r\n public uploads: SacUploadFile[];\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Constructor\r\n * @param formlayout SacFormLayoutCommon to define scoped layout settings\r\n * @param injector Injector for injecting services\r\n * @param renderer angular rendering engine\r\n * @param ngZone ngzone for handling external scripts\r\n */\r\n constructor(\r\n formlayout: SacFormLayoutCommon,\r\n injector: Injector,\r\n private renderer: Renderer2,\r\n private ngZone: NgZone\r\n ) {\r\n super(formlayout, injector);\r\n\r\n this.validationKeyService = injector.get(\r\n SACVALIDATIONKEY_SERVICE,\r\n new SacDefaultValidationKeyService()\r\n );\r\n\r\n this.lngResourceService = injector.get(\r\n SACLOCALISATION_SERVICE,\r\n new SacDefaultLocalisationService(this.validationKeyService)\r\n );\r\n\r\n this.uploads = [];\r\n\r\n this.options.allowedTypes = '*';\r\n this.options.concurrency = 1;\r\n this.options.token = 'sometoken';\r\n this.options.autoUpload = this._autoupload;\r\n this.options.withCredentials = true;\r\n this.options.chunkSize = 1024 * 16 * 8;\r\n this.options.headers = (f: File) => ({\r\n 'Content-Disposition': `filename=${encodeURI(f.name)}`,\r\n });\r\n\r\n // Init new Service Instance\r\n this.uploadService = new UploadxService();\r\n this.uploadService.init(this.options);\r\n\r\n // Subscripe Event for State changes\r\n this.uploadService.events.subscribe((ufile: UploadState) =>\r\n this.onUpload(ufile)\r\n );\r\n }\r\n\r\n // #endregion Constructors\r\n\r\n // #region Public Getters And Setters\r\n\r\n /**\r\n * Erlaubte Dateitypen f\xFCr den Upload. Format: \".xxx,.yyy,.zzz\"\r\n */\r\n @Input()\r\n public set allowedtypes(types: string) {\r\n this._allowedtypes = types;\r\n this.setAllowedTypes(types);\r\n }\r\n\r\n /**\r\n * Files nach der Auswahl automatisch hochladen\r\n */\r\n @Input()\r\n public set autoupload(v: boolean) {\r\n this._autoupload = v;\r\n this.options.autoUpload = v;\r\n this.uploadService.connect(this.options);\r\n }\r\n\r\n /**\r\n * Uploads k\xF6nnen unterbrochen werden\r\n */\r\n @Input()\r\n public set enablepause(v: boolean) {\r\n this._enablepause = v;\r\n }\r\n\r\n /**\r\n * Definiert den Registration Endpoint f\xFCr Uploads.\r\n */\r\n @Input()\r\n public set endpoint(v: string) {\r\n this._endpoint = v;\r\n this.setEndpoint(v);\r\n }\r\n\r\n /**\r\n * Icon for browse button\r\n */\r\n public get IconBrowse(): string {\r\n return this.iconService.UploadComponentBrowseIcon;\r\n }\r\n\r\n /**\r\n * icon for continous buttons\r\n */\r\n public get IconContinue(): string {\r\n return this.iconService.UploadComponentContinueIcon;\r\n }\r\n\r\n /**\r\n * icon for delete buttons\r\n */\r\n public get IconDelete(): string {\r\n return this.iconService.UploadComponentDeleteIcon;\r\n }\r\n\r\n /**\r\n * icon for pause buttons\r\n */\r\n public get IconPause(): string {\r\n return this.iconService.UploadComponentPauseIcon;\r\n }\r\n\r\n /**\r\n * icon for upload button\r\n */\r\n public get IconUpload(): string {\r\n return this.iconService.UploadComponentUploadIcon;\r\n }\r\n\r\n public get allowedtypes(): string {\r\n return this._allowedtypes;\r\n }\r\n\r\n public get autoupload(): boolean {\r\n return this._autoupload;\r\n }\r\n\r\n public get enablepause(): boolean {\r\n return this._enablepause;\r\n }\r\n\r\n public get endpoint(): string {\r\n return this._endpoint;\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * Name der Datei die Hochgeladen wird\r\n * @returns Observable des Dateinamens.\r\n */\r\n public Filename(): Observable<string> {\r\n if (this.uploads.length > 0) {\r\n return of(this.uploads[0].name);\r\n } else {\r\n return this.lngResourceService.GetString(\r\n this.validationKeyService.UploadNoFilesSelected\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Gibt an ob Queue Elemente beinhaltet\r\n * @returns Elemente in der Queue\r\n */\r\n public HasQueueItem(): boolean {\r\n return this.uploads.length > 0;\r\n }\r\n\r\n /**\r\n * Gibt an ob ein Upload abgeschlossen ist\r\n * @returns Upload erfolgreich\r\n */\r\n public HasSuccessUpload(): boolean {\r\n if (this.uploads.length > 0) {\r\n return (\r\n this.uploads.filter((itm) => itm.status !== 'complete').length === 0\r\n );\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Pr\xFCft ob ein Upload pausiert\r\n * @returns Pausierter Upload ist vorhanden\r\n */\r\n public IsPaused(): boolean {\r\n return this.uploads.filter((itm) => itm.status === 'paused').length > 0;\r\n }\r\n\r\n /**\r\n * Pr\xFCft ob in der Queue Elemente die zum Upload bereit sind vorhanden sind.\r\n * @returns Elemente f\xFCr Upload vorhanden\r\n */\r\n public IsStateToUpload(): boolean {\r\n return (\r\n this.uploads.filter(\r\n (itm) => itm.status === 'added' || itm.status === 'paused'\r\n ).length > 0\r\n );\r\n }\r\n\r\n /**\r\n * Pr\xFCft ob ein Upload eines Files am laufen ist\r\n * @returns Upload ist am laufen\r\n */\r\n public IsUploading(): boolean {\r\n return this.uploads.filter((itm) => itm.status === 'uploading').length > 0;\r\n }\r\n\r\n /**\r\n * Gibt den Uploadfortschritt zur\xFCck\r\n * @returns Upload Fortschritt. Wert von 0-100\r\n */\r\n public Progress(): number {\r\n if (this.uploads.length > 0) {\r\n return this.uploads[0].progress;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n /**\r\n * Cancel single upload\r\n * @param uploadId ID of File to cancel\r\n */\r\n public cancel(uploadId) {\r\n this.uploadService.control({ action: 'cancel', uploadId: uploadId });\r\n }\r\n\r\n /**\r\n * Cancel all Uploaded files\r\n */\r\n public cancelAll() {\r\n if (this.HasQueueItem() === true) {\r\n this.uploadService.control({ action: 'cancel' });\r\n }\r\n }\r\n\r\n /**\r\n * Destroy des Controls\r\n */\r\n public ngOnDestroy() {\r\n if (this.listenerFn) {\r\n this.listenerFn();\r\n }\r\n }\r\n\r\n /**\r\n * Initialisiert das Control\r\n */\r\n public ngOnInit() {\r\n super.ngOnInit();\r\n // Init Event Listener for Input File Control and Handling Files\r\n this.listenerFn = this.renderer.listen(\r\n this.uploadInput.nativeElement,\r\n 'change',\r\n this.fileListener\r\n );\r\n\r\n this.setAllowedTypes(this._allowedtypes);\r\n this.setEndpoint(this._endpoint);\r\n\r\n if (this._endpoint === null) {\r\n throw new Error('endpoint is not defined!');\r\n }\r\n\r\n this.uploadService.connect(this.options);\r\n }\r\n\r\n /**\r\n * Upload Event\r\n *\r\n * @param uploadsOutStream Upload Item\r\n */\r\n public onUpload(ufile: UploadState) {\r\n const index = this.uploads.findIndex((f) => f.uploadId === ufile.uploadId);\r\n\r\n if (ufile.status === 'added' || (ufile.status === 'queue' && index < 0)) {\r\n if (\r\n this.isExtensionValid(ufile.name) &&\r\n this.isFileSizeValid(ufile.size) &&\r\n this.CustomAddValidation(ufile)\r\n ) {\r\n this.uploads.push(new SacUploadFile(ufile));\r\n } else {\r\n this.cancel(ufile.uploadId);\r\n\r\n if (!this.isExtensionValid(ufile.name)) {\r\n this.onfileerror.emit('INVALID_EXTENSION');\r\n } else if (!this.isFileSizeValid(ufile.size)) {\r\n this.onfileerror.emit('INVALID_FILESIZE');\r\n }\r\n }\r\n } else if (ufile.status === 'cancelled') {\r\n if (index >= 0) {\r\n this.uploads.splice(index, 1);\r\n }\r\n\r\n this.SetUploadValue(null);\r\n } else if (ufile.status === 'complete') {\r\n this.uploads[index].progress = ufile.progress;\r\n this.uploads[index].status = ufile.status;\r\n this.SetUploadValue(ufile);\r\n } else {\r\n if (index >= 0) {\r\n this.uploads[index].progress = ufile.progress;\r\n this.uploads[index].status = ufile.status;\r\n }\r\n }\r\n\r\n this.UpdateFileCount();\r\n }\r\n\r\n /**\r\n * Cancel Single File\r\n * @param uploadId ID of File to Cancel\r\n */\r\n public pause(uploadId) {\r\n this.uploadService.control({ action: 'pause', uploadId });\r\n }\r\n\r\n /**\r\n * Pause all Uploads\r\n */\r\n public pauseAll() {\r\n if (this.IsUploading() === true) {\r\n this.uploadService.control({ action: 'pause' });\r\n }\r\n }\r\n\r\n /**\r\n * Upload Single File\r\n *\r\n * @param uploadId ID of File to Upload\r\n */\r\n public upload(uploadId) {\r\n this.uploadService.control({ action: 'upload', uploadId });\r\n }\r\n\r\n /**\r\n * Upload all queued Files\r\n */\r\n public uploadAll() {\r\n if (this.IsStateToUpload() === true) {\r\n this.uploadService.control({ action: 'upload' });\r\n }\r\n }\r\n\r\n /**\r\n * Validiert das Upload Control\r\n * @param c Control das validiert werden soll\r\n */\r\n public validateData(c: AbstractControl): ValidationErrors | null {\r\n let error: ValidationErrors | null = null;\r\n\r\n if (this.isrequired) {\r\n error = Validation.required(\r\n this.validationmessagerequired,\r\n this.validationmessagesummaryrequired\r\n )(c);\r\n }\r\n\r\n return error;\r\n }\r\n\r\n // #endregion Public Methods\r\n\r\n // #region Public Abstract Methods\r\n\r\n /**\r\n * Methode kann f\xFCr Controls verwendet werden, zus\xE4tzliche Validierungen bei hinzuf\xFCgen der Files zu machen\r\n *\r\n * @param file File das hinzugef\xFCgt wurde.\r\n * @returns Valdierung ist erfolgreich\r\n */\r\n public abstract CustomAddValidation(file: UploadState): boolean;\r\n /**\r\n * Methode welche die Upload ID's in das Model setzt oder l\xF6scht\r\n *\r\n * @param file Type von File ID's\r\n */\r\n public abstract SetUploadValue(file: UploadState): void;\r\n\r\n // #endregion Public Abstract Methods\r\n\r\n // #region Private Methods\r\n\r\n private UpdateFileCount(): void {\r\n // HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686\r\n if (this.ngControl) {\r\n (this.ngControl as unknown as IUploadControl).uploadedfilecount =\r\n this.UploadedFileCount();\r\n }\r\n }\r\n\r\n /**\r\n * Returns the number of uploaded files\r\n */\r\n private UploadedFileCount(): number {\r\n return this.uploads.filter((itm) => itm.status === 'complete').length;\r\n }\r\n\r\n /**\r\n * Pr\xFCft ob die Dateierweiterung g\xFCltig ist\r\n *\r\n * @param filename Dateiname\r\n */\r\n private isExtensionValid(filename: string): boolean {\r\n if (this._allowedtypes === '*') {\r\n return true;\r\n }\r\n\r\n let isValid: boolean = false;\r\n const extensions: string[] = this._allowedtypes.split(',');\r\n\r\n extensions.forEach((itm) => {\r\n if (filename.toLowerCase().endsWith(itm.toLowerCase())) {\r\n isValid = true;\r\n }\r\n });\r\n\r\n return isValid;\r\n }\r\n\r\n /**\r\n * Pr\xFCft ob das File nicht zu gross ist.\r\n *\r\n * @param filesize Max File Size in Bytes\r\n */\r\n private isFileSizeValid(filesize: number): boolean {\r\n if (this.maxfilesize === 0) {\r\n return true;\r\n }\r\n\r\n return this.maxfilesize >= filesize;\r\n }\r\n\r\n /**\r\n * Setzt die erlaubten Datentypen f\xFCr den Upload\r\n *\r\n * @param types Erlaubte File Extensions\r\n */\r\n private setAllowedTypes(types: string) {\r\n // Pr\xFCfen UploadInput bereits geladen, ist NULL wenn Extension im Markup nach NgModel gesetzt wird.\r\n if (this.uploadInput && this.uploadInput.nativeElement) {\r\n this.renderer.setAttribute(\r\n this.uploadInput.nativeElement,\r\n 'accept',\r\n types\r\n );\r\n }\r\n\r\n this.options.allowedTypes = types;\r\n }\r\n\r\n /**\r\n * Setzt den Upload Endpoit\r\n * @param url Register URI\r\n */\r\n private setEndpoint(url: string) {\r\n this.options.endpoint = url;\r\n }\r\n\r\n // #endregion Private Methods\r\n}\r\n\r\n/**\r\n * Klasse f\xFCr den Upload einer Datei in der Upload Component\r\n */\r\nexport class SacUploadFile {\r\n // #region Properties\r\n\r\n /**\r\n * Document ID\r\n */\r\n public documentid: string;\r\n /**\r\n * Dateiname\r\n */\r\n public name: string;\r\n /**\r\n * Upload Fortschritt\r\n */\r\n public progress: number;\r\n /**\r\n * Upload Status\r\n */\r\n public status: string;\r\n /**\r\n * Upload ID\r\n */\r\n public uploadId: string;\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Konstruktor\r\n * @param ufile Upload Status\r\n */\r\n constructor(ufile: UploadState) {\r\n this.uploadId = ufile.uploadId;\r\n this.name = ufile.name;\r\n this.progress = ufile.progress;\r\n this.status = ufile.status;\r\n this.documentid = null;\r\n }\r\n\r\n // #endregion Constructors\r\n}\r\n\r\n// #endregion Classes\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"14557ee27daaffe693a6aa6c3400529390000a69"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
+
cov_1y8jkaecmb=function(){return actualCoverage;};}return actualCoverage;}cov_1y8jkaecmb();import{Directive,EventEmitter,Input,Output,ViewChild}from'@angular/core';import{UploadxService}from'ngx-uploadx';import{of}from'rxjs';import{SACVALIDATIONKEY_SERVICE,SacDefaultValidationKeyService}from'../services';import{SACLOCALISATION_SERVICE,SacDefaultLocalisationService}from'../services/sac-localisation.service';import{Validation}from'../validation';import{SacBaseModelControl}from'./basemodelcontrol';import*as i0 from"@angular/core";import*as i1 from"../controls/layout/formlayout";// #region Classes
|
|
3
3
|
/**
|
|
4
4
|
* Base Klasse für Uploader Control
|
|
5
5
|
*/class SacUploadBase extends SacBaseModelControl{// #endregion Properties
|
|
@@ -32,106 +32,106 @@ cov_1y8jkaecmb=function(){return actualCoverage;};}return actualCoverage;}cov_1y
|
|
|
32
32
|
* Event wenn ein Error in der Komponente ausgelöst wird.
|
|
33
33
|
*/cov_1y8jkaecmb().s[12]++;this.onfileerror=new EventEmitter();/**
|
|
34
34
|
* Handling von neuen Files im Input Control
|
|
35
|
-
*/cov_1y8jkaecmb().s[13]++;this.fileListener=()=>{cov_1y8jkaecmb().f[1]++;cov_1y8jkaecmb().s[14]++;if(this.uploadInput.nativeElement.files){cov_1y8jkaecmb().b[0][0]++;cov_1y8jkaecmb().s[15]++;this.uploadService.handleFiles(this.uploadInput.nativeElement.files);}else{cov_1y8jkaecmb().b[0][1]++;}};cov_1y8jkaecmb().s[16]++;this.validationKeyService=injector.get(SACVALIDATIONKEY_SERVICE,new SacDefaultValidationKeyService());cov_1y8jkaecmb().s[17]++;this.lngResourceService=injector.get(SACLOCALISATION_SERVICE,new SacDefaultLocalisationService(this.validationKeyService));cov_1y8jkaecmb().s[18]++;this.
|
|
36
|
-
cov_1y8jkaecmb().s[
|
|
37
|
-
cov_1y8jkaecmb().s[
|
|
35
|
+
*/cov_1y8jkaecmb().s[13]++;this.fileListener=()=>{cov_1y8jkaecmb().f[1]++;cov_1y8jkaecmb().s[14]++;if(this.uploadInput.nativeElement.files){cov_1y8jkaecmb().b[0][0]++;cov_1y8jkaecmb().s[15]++;this.uploadService.handleFiles(this.uploadInput.nativeElement.files);}else{cov_1y8jkaecmb().b[0][1]++;}};cov_1y8jkaecmb().s[16]++;this.validationKeyService=injector.get(SACVALIDATIONKEY_SERVICE,new SacDefaultValidationKeyService());cov_1y8jkaecmb().s[17]++;this.lngResourceService=injector.get(SACLOCALISATION_SERVICE,new SacDefaultLocalisationService(this.validationKeyService));cov_1y8jkaecmb().s[18]++;this.uploads=[];cov_1y8jkaecmb().s[19]++;this.options.allowedTypes='*';cov_1y8jkaecmb().s[20]++;this.options.concurrency=1;cov_1y8jkaecmb().s[21]++;this.options.token='sometoken';cov_1y8jkaecmb().s[22]++;this.options.autoUpload=this._autoupload;cov_1y8jkaecmb().s[23]++;this.options.withCredentials=true;cov_1y8jkaecmb().s[24]++;this.options.chunkSize=1024*16*8;cov_1y8jkaecmb().s[25]++;this.options.headers=f=>{cov_1y8jkaecmb().f[2]++;cov_1y8jkaecmb().s[26]++;return{'Content-Disposition':`filename=${encodeURI(f.name)}`};};// Init new Service Instance
|
|
36
|
+
cov_1y8jkaecmb().s[27]++;this.uploadService=new UploadxService();cov_1y8jkaecmb().s[28]++;this.uploadService.init(this.options);// Subscripe Event for State changes
|
|
37
|
+
cov_1y8jkaecmb().s[29]++;this.uploadService.events.subscribe(ufile=>{cov_1y8jkaecmb().f[3]++;cov_1y8jkaecmb().s[30]++;return this.onUpload(ufile);});}// #endregion Constructors
|
|
38
38
|
// #region Public Getters And Setters
|
|
39
39
|
/**
|
|
40
40
|
* Erlaubte Dateitypen für den Upload. Format: ".xxx,.yyy,.zzz"
|
|
41
|
-
*/set allowedtypes(types){cov_1y8jkaecmb().f[4]++;cov_1y8jkaecmb().s[
|
|
41
|
+
*/set allowedtypes(types){cov_1y8jkaecmb().f[4]++;cov_1y8jkaecmb().s[31]++;this._allowedtypes=types;cov_1y8jkaecmb().s[32]++;this.setAllowedTypes(types);}/**
|
|
42
42
|
* Files nach der Auswahl automatisch hochladen
|
|
43
|
-
*/set autoupload(v){cov_1y8jkaecmb().f[5]++;cov_1y8jkaecmb().s[
|
|
43
|
+
*/set autoupload(v){cov_1y8jkaecmb().f[5]++;cov_1y8jkaecmb().s[33]++;this._autoupload=v;cov_1y8jkaecmb().s[34]++;this.options.autoUpload=v;cov_1y8jkaecmb().s[35]++;this.uploadService.connect(this.options);}/**
|
|
44
44
|
* Uploads können unterbrochen werden
|
|
45
|
-
*/set enablepause(v){cov_1y8jkaecmb().f[6]++;cov_1y8jkaecmb().s[
|
|
45
|
+
*/set enablepause(v){cov_1y8jkaecmb().f[6]++;cov_1y8jkaecmb().s[36]++;this._enablepause=v;}/**
|
|
46
46
|
* Definiert den Registration Endpoint für Uploads.
|
|
47
|
-
*/set endpoint(v){cov_1y8jkaecmb().f[7]++;cov_1y8jkaecmb().s[
|
|
47
|
+
*/set endpoint(v){cov_1y8jkaecmb().f[7]++;cov_1y8jkaecmb().s[37]++;this._endpoint=v;cov_1y8jkaecmb().s[38]++;this.setEndpoint(v);}/**
|
|
48
48
|
* Icon for browse button
|
|
49
|
-
*/get IconBrowse(){cov_1y8jkaecmb().f[8]++;cov_1y8jkaecmb().s[
|
|
49
|
+
*/get IconBrowse(){cov_1y8jkaecmb().f[8]++;cov_1y8jkaecmb().s[39]++;return this.iconService.UploadComponentBrowseIcon;}/**
|
|
50
50
|
* icon for continous buttons
|
|
51
|
-
*/get IconContinue(){cov_1y8jkaecmb().f[9]++;cov_1y8jkaecmb().s[
|
|
51
|
+
*/get IconContinue(){cov_1y8jkaecmb().f[9]++;cov_1y8jkaecmb().s[40]++;return this.iconService.UploadComponentContinueIcon;}/**
|
|
52
52
|
* icon for delete buttons
|
|
53
|
-
*/get IconDelete(){cov_1y8jkaecmb().f[10]++;cov_1y8jkaecmb().s[
|
|
53
|
+
*/get IconDelete(){cov_1y8jkaecmb().f[10]++;cov_1y8jkaecmb().s[41]++;return this.iconService.UploadComponentDeleteIcon;}/**
|
|
54
54
|
* icon for pause buttons
|
|
55
|
-
*/get IconPause(){cov_1y8jkaecmb().f[11]++;cov_1y8jkaecmb().s[
|
|
55
|
+
*/get IconPause(){cov_1y8jkaecmb().f[11]++;cov_1y8jkaecmb().s[42]++;return this.iconService.UploadComponentPauseIcon;}/**
|
|
56
56
|
* icon for upload button
|
|
57
|
-
*/get IconUpload(){cov_1y8jkaecmb().f[12]++;cov_1y8jkaecmb().s[
|
|
57
|
+
*/get IconUpload(){cov_1y8jkaecmb().f[12]++;cov_1y8jkaecmb().s[43]++;return this.iconService.UploadComponentUploadIcon;}get allowedtypes(){cov_1y8jkaecmb().f[13]++;cov_1y8jkaecmb().s[44]++;return this._allowedtypes;}get autoupload(){cov_1y8jkaecmb().f[14]++;cov_1y8jkaecmb().s[45]++;return this._autoupload;}get enablepause(){cov_1y8jkaecmb().f[15]++;cov_1y8jkaecmb().s[46]++;return this._enablepause;}get endpoint(){cov_1y8jkaecmb().f[16]++;cov_1y8jkaecmb().s[47]++;return this._endpoint;}// #endregion Public Getters And Setters
|
|
58
58
|
// #region Public Methods
|
|
59
59
|
/**
|
|
60
60
|
* Name der Datei die Hochgeladen wird
|
|
61
61
|
* @returns Observable des Dateinamens.
|
|
62
|
-
*/Filename(){cov_1y8jkaecmb().f[17]++;cov_1y8jkaecmb().s[
|
|
62
|
+
*/Filename(){cov_1y8jkaecmb().f[17]++;cov_1y8jkaecmb().s[48]++;if(this.uploads.length>0){cov_1y8jkaecmb().b[1][0]++;cov_1y8jkaecmb().s[49]++;return of(this.uploads[0].name);}else{cov_1y8jkaecmb().b[1][1]++;cov_1y8jkaecmb().s[50]++;return this.lngResourceService.GetString(this.validationKeyService.UploadNoFilesSelected);}}/**
|
|
63
63
|
* Gibt an ob Queue Elemente beinhaltet
|
|
64
64
|
* @returns Elemente in der Queue
|
|
65
|
-
*/HasQueueItem(){cov_1y8jkaecmb().f[18]++;cov_1y8jkaecmb().s[
|
|
65
|
+
*/HasQueueItem(){cov_1y8jkaecmb().f[18]++;cov_1y8jkaecmb().s[51]++;return this.uploads.length>0;}/**
|
|
66
66
|
* Gibt an ob ein Upload abgeschlossen ist
|
|
67
67
|
* @returns Upload erfolgreich
|
|
68
|
-
*/HasSuccessUpload(){cov_1y8jkaecmb().f[19]++;cov_1y8jkaecmb().s[
|
|
68
|
+
*/HasSuccessUpload(){cov_1y8jkaecmb().f[19]++;cov_1y8jkaecmb().s[52]++;if(this.uploads.length>0){cov_1y8jkaecmb().b[2][0]++;cov_1y8jkaecmb().s[53]++;return this.uploads.filter(itm=>{cov_1y8jkaecmb().f[20]++;cov_1y8jkaecmb().s[54]++;return itm.status!=='complete';}).length===0;}else{cov_1y8jkaecmb().b[2][1]++;cov_1y8jkaecmb().s[55]++;return false;}}/**
|
|
69
69
|
* Prüft ob ein Upload pausiert
|
|
70
70
|
* @returns Pausierter Upload ist vorhanden
|
|
71
|
-
*/IsPaused(){cov_1y8jkaecmb().f[21]++;cov_1y8jkaecmb().s[
|
|
71
|
+
*/IsPaused(){cov_1y8jkaecmb().f[21]++;cov_1y8jkaecmb().s[56]++;return this.uploads.filter(itm=>{cov_1y8jkaecmb().f[22]++;cov_1y8jkaecmb().s[57]++;return itm.status==='paused';}).length>0;}/**
|
|
72
72
|
* Prüft ob in der Queue Elemente die zum Upload bereit sind vorhanden sind.
|
|
73
73
|
* @returns Elemente für Upload vorhanden
|
|
74
|
-
*/IsStateToUpload(){cov_1y8jkaecmb().f[23]++;cov_1y8jkaecmb().s[
|
|
74
|
+
*/IsStateToUpload(){cov_1y8jkaecmb().f[23]++;cov_1y8jkaecmb().s[58]++;return this.uploads.filter(itm=>{cov_1y8jkaecmb().f[24]++;cov_1y8jkaecmb().s[59]++;return(cov_1y8jkaecmb().b[3][0]++,itm.status==='added')||(cov_1y8jkaecmb().b[3][1]++,itm.status==='paused');}).length>0;}/**
|
|
75
75
|
* Prüft ob ein Upload eines Files am laufen ist
|
|
76
76
|
* @returns Upload ist am laufen
|
|
77
|
-
*/IsUploading(){cov_1y8jkaecmb().f[25]++;cov_1y8jkaecmb().s[
|
|
77
|
+
*/IsUploading(){cov_1y8jkaecmb().f[25]++;cov_1y8jkaecmb().s[60]++;return this.uploads.filter(itm=>{cov_1y8jkaecmb().f[26]++;cov_1y8jkaecmb().s[61]++;return itm.status==='uploading';}).length>0;}/**
|
|
78
78
|
* Gibt den Uploadfortschritt zurück
|
|
79
79
|
* @returns Upload Fortschritt. Wert von 0-100
|
|
80
|
-
*/Progress(){cov_1y8jkaecmb().f[27]++;cov_1y8jkaecmb().s[
|
|
80
|
+
*/Progress(){cov_1y8jkaecmb().f[27]++;cov_1y8jkaecmb().s[62]++;if(this.uploads.length>0){cov_1y8jkaecmb().b[4][0]++;cov_1y8jkaecmb().s[63]++;return this.uploads[0].progress;}else{cov_1y8jkaecmb().b[4][1]++;cov_1y8jkaecmb().s[64]++;return 0;}}/**
|
|
81
81
|
* Cancel single upload
|
|
82
82
|
* @param uploadId ID of File to cancel
|
|
83
|
-
*/cancel(uploadId){cov_1y8jkaecmb().f[28]++;cov_1y8jkaecmb().s[
|
|
83
|
+
*/cancel(uploadId){cov_1y8jkaecmb().f[28]++;cov_1y8jkaecmb().s[65]++;this.uploadService.control({action:'cancel',uploadId:uploadId});}/**
|
|
84
84
|
* Cancel all Uploaded files
|
|
85
|
-
*/cancelAll(){cov_1y8jkaecmb().f[29]++;cov_1y8jkaecmb().s[
|
|
85
|
+
*/cancelAll(){cov_1y8jkaecmb().f[29]++;cov_1y8jkaecmb().s[66]++;if(this.HasQueueItem()===true){cov_1y8jkaecmb().b[5][0]++;cov_1y8jkaecmb().s[67]++;this.uploadService.control({action:'cancel'});}else{cov_1y8jkaecmb().b[5][1]++;}}/**
|
|
86
86
|
* Destroy des Controls
|
|
87
|
-
*/ngOnDestroy(){cov_1y8jkaecmb().f[30]++;cov_1y8jkaecmb().s[
|
|
87
|
+
*/ngOnDestroy(){cov_1y8jkaecmb().f[30]++;cov_1y8jkaecmb().s[68]++;if(this.listenerFn){cov_1y8jkaecmb().b[6][0]++;cov_1y8jkaecmb().s[69]++;this.listenerFn();}else{cov_1y8jkaecmb().b[6][1]++;}}/**
|
|
88
88
|
* Initialisiert das Control
|
|
89
|
-
*/ngOnInit(){cov_1y8jkaecmb().f[31]++;cov_1y8jkaecmb().s[
|
|
90
|
-
cov_1y8jkaecmb().s[
|
|
89
|
+
*/ngOnInit(){cov_1y8jkaecmb().f[31]++;cov_1y8jkaecmb().s[70]++;super.ngOnInit();// Init Event Listener for Input File Control and Handling Files
|
|
90
|
+
cov_1y8jkaecmb().s[71]++;this.listenerFn=this.renderer.listen(this.uploadInput.nativeElement,'change',this.fileListener);cov_1y8jkaecmb().s[72]++;this.setAllowedTypes(this._allowedtypes);cov_1y8jkaecmb().s[73]++;this.setEndpoint(this._endpoint);cov_1y8jkaecmb().s[74]++;if(this._endpoint===null){cov_1y8jkaecmb().b[7][0]++;cov_1y8jkaecmb().s[75]++;throw new Error('endpoint is not defined!');}else{cov_1y8jkaecmb().b[7][1]++;}cov_1y8jkaecmb().s[76]++;this.uploadService.connect(this.options);}/**
|
|
91
91
|
* Upload Event
|
|
92
92
|
*
|
|
93
93
|
* @param uploadsOutStream Upload Item
|
|
94
|
-
*/onUpload(ufile){cov_1y8jkaecmb().f[32]++;const index=(cov_1y8jkaecmb().s[
|
|
94
|
+
*/onUpload(ufile){cov_1y8jkaecmb().f[32]++;const index=(cov_1y8jkaecmb().s[77]++,this.uploads.findIndex(f=>{cov_1y8jkaecmb().f[33]++;cov_1y8jkaecmb().s[78]++;return f.uploadId===ufile.uploadId;}));cov_1y8jkaecmb().s[79]++;if((cov_1y8jkaecmb().b[9][0]++,ufile.status==='added')||(cov_1y8jkaecmb().b[9][1]++,ufile.status==='queue')&&(cov_1y8jkaecmb().b[9][2]++,index<0)){cov_1y8jkaecmb().b[8][0]++;cov_1y8jkaecmb().s[80]++;if((cov_1y8jkaecmb().b[11][0]++,this.isExtensionValid(ufile.name))&&(cov_1y8jkaecmb().b[11][1]++,this.isFileSizeValid(ufile.size))&&(cov_1y8jkaecmb().b[11][2]++,this.CustomAddValidation(ufile))){cov_1y8jkaecmb().b[10][0]++;cov_1y8jkaecmb().s[81]++;this.uploads.push(new SacUploadFile(ufile));}else{cov_1y8jkaecmb().b[10][1]++;cov_1y8jkaecmb().s[82]++;this.cancel(ufile.uploadId);cov_1y8jkaecmb().s[83]++;if(!this.isExtensionValid(ufile.name)){cov_1y8jkaecmb().b[12][0]++;cov_1y8jkaecmb().s[84]++;this.onfileerror.emit('INVALID_EXTENSION');}else{cov_1y8jkaecmb().b[12][1]++;cov_1y8jkaecmb().s[85]++;if(!this.isFileSizeValid(ufile.size)){cov_1y8jkaecmb().b[13][0]++;cov_1y8jkaecmb().s[86]++;this.onfileerror.emit('INVALID_FILESIZE');}else{cov_1y8jkaecmb().b[13][1]++;}}}}else{cov_1y8jkaecmb().b[8][1]++;cov_1y8jkaecmb().s[87]++;if(ufile.status==='cancelled'){cov_1y8jkaecmb().b[14][0]++;cov_1y8jkaecmb().s[88]++;if(index>=0){cov_1y8jkaecmb().b[15][0]++;cov_1y8jkaecmb().s[89]++;this.uploads.splice(index,1);}else{cov_1y8jkaecmb().b[15][1]++;}cov_1y8jkaecmb().s[90]++;this.SetUploadValue(null);}else{cov_1y8jkaecmb().b[14][1]++;cov_1y8jkaecmb().s[91]++;if(ufile.status==='complete'){cov_1y8jkaecmb().b[16][0]++;cov_1y8jkaecmb().s[92]++;this.uploads[index].progress=ufile.progress;cov_1y8jkaecmb().s[93]++;this.uploads[index].status=ufile.status;cov_1y8jkaecmb().s[94]++;this.SetUploadValue(ufile);}else{cov_1y8jkaecmb().b[16][1]++;cov_1y8jkaecmb().s[95]++;if(index>=0){cov_1y8jkaecmb().b[17][0]++;cov_1y8jkaecmb().s[96]++;this.uploads[index].progress=ufile.progress;cov_1y8jkaecmb().s[97]++;this.uploads[index].status=ufile.status;}else{cov_1y8jkaecmb().b[17][1]++;}}}}cov_1y8jkaecmb().s[98]++;this.UpdateFileCount();}/**
|
|
95
95
|
* Cancel Single File
|
|
96
96
|
* @param uploadId ID of File to Cancel
|
|
97
|
-
*/pause(uploadId){cov_1y8jkaecmb().f[34]++;cov_1y8jkaecmb().s[
|
|
97
|
+
*/pause(uploadId){cov_1y8jkaecmb().f[34]++;cov_1y8jkaecmb().s[99]++;this.uploadService.control({action:'pause',uploadId});}/**
|
|
98
98
|
* Pause all Uploads
|
|
99
|
-
*/pauseAll(){cov_1y8jkaecmb().f[35]++;cov_1y8jkaecmb().s[
|
|
99
|
+
*/pauseAll(){cov_1y8jkaecmb().f[35]++;cov_1y8jkaecmb().s[100]++;if(this.IsUploading()===true){cov_1y8jkaecmb().b[18][0]++;cov_1y8jkaecmb().s[101]++;this.uploadService.control({action:'pause'});}else{cov_1y8jkaecmb().b[18][1]++;}}/**
|
|
100
100
|
* Upload Single File
|
|
101
101
|
*
|
|
102
102
|
* @param uploadId ID of File to Upload
|
|
103
|
-
*/upload(uploadId){cov_1y8jkaecmb().f[36]++;cov_1y8jkaecmb().s[
|
|
103
|
+
*/upload(uploadId){cov_1y8jkaecmb().f[36]++;cov_1y8jkaecmb().s[102]++;this.uploadService.control({action:'upload',uploadId});}/**
|
|
104
104
|
* Upload all queued Files
|
|
105
|
-
*/uploadAll(){cov_1y8jkaecmb().f[37]++;cov_1y8jkaecmb().s[
|
|
105
|
+
*/uploadAll(){cov_1y8jkaecmb().f[37]++;cov_1y8jkaecmb().s[103]++;if(this.IsStateToUpload()===true){cov_1y8jkaecmb().b[19][0]++;cov_1y8jkaecmb().s[104]++;this.uploadService.control({action:'upload'});}else{cov_1y8jkaecmb().b[19][1]++;}}/**
|
|
106
106
|
* Validiert das Upload Control
|
|
107
107
|
* @param c Control das validiert werden soll
|
|
108
|
-
*/validateData(c){cov_1y8jkaecmb().f[38]++;let error=(cov_1y8jkaecmb().s[
|
|
108
|
+
*/validateData(c){cov_1y8jkaecmb().f[38]++;let error=(cov_1y8jkaecmb().s[105]++,null);cov_1y8jkaecmb().s[106]++;if(this.isrequired){cov_1y8jkaecmb().b[20][0]++;cov_1y8jkaecmb().s[107]++;error=Validation.required(this.validationmessagerequired,this.validationmessagesummaryrequired)(c);}else{cov_1y8jkaecmb().b[20][1]++;}cov_1y8jkaecmb().s[108]++;return error;}// #endregion Public Abstract Methods
|
|
109
109
|
// #region Private Methods
|
|
110
|
-
UpdateFileCount(){cov_1y8jkaecmb().f[39]++;cov_1y8jkaecmb().s[
|
|
111
|
-
if(this.ngControl){cov_1y8jkaecmb().b[21][0]++;cov_1y8jkaecmb().s[
|
|
110
|
+
UpdateFileCount(){cov_1y8jkaecmb().f[39]++;cov_1y8jkaecmb().s[109]++;// HACK: Add addition property to FormControl. Can be fixed if solution for ticket: https://github.com/angular/angular/issues/19686
|
|
111
|
+
if(this.ngControl){cov_1y8jkaecmb().b[21][0]++;cov_1y8jkaecmb().s[110]++;this.ngControl.uploadedfilecount=this.UploadedFileCount();}else{cov_1y8jkaecmb().b[21][1]++;}}/**
|
|
112
112
|
* Returns the number of uploaded files
|
|
113
|
-
*/UploadedFileCount(){cov_1y8jkaecmb().f[40]++;cov_1y8jkaecmb().s[
|
|
113
|
+
*/UploadedFileCount(){cov_1y8jkaecmb().f[40]++;cov_1y8jkaecmb().s[111]++;return this.uploads.filter(itm=>{cov_1y8jkaecmb().f[41]++;cov_1y8jkaecmb().s[112]++;return itm.status==='complete';}).length;}/**
|
|
114
114
|
* Prüft ob die Dateierweiterung gültig ist
|
|
115
115
|
*
|
|
116
116
|
* @param filename Dateiname
|
|
117
|
-
*/isExtensionValid(filename){cov_1y8jkaecmb().f[42]++;cov_1y8jkaecmb().s[
|
|
117
|
+
*/isExtensionValid(filename){cov_1y8jkaecmb().f[42]++;cov_1y8jkaecmb().s[113]++;if(this._allowedtypes==='*'){cov_1y8jkaecmb().b[22][0]++;cov_1y8jkaecmb().s[114]++;return true;}else{cov_1y8jkaecmb().b[22][1]++;}let isValid=(cov_1y8jkaecmb().s[115]++,false);const extensions=(cov_1y8jkaecmb().s[116]++,this._allowedtypes.split(','));cov_1y8jkaecmb().s[117]++;extensions.forEach(itm=>{cov_1y8jkaecmb().f[43]++;cov_1y8jkaecmb().s[118]++;if(filename.toLowerCase().endsWith(itm.toLowerCase())){cov_1y8jkaecmb().b[23][0]++;cov_1y8jkaecmb().s[119]++;isValid=true;}else{cov_1y8jkaecmb().b[23][1]++;}});cov_1y8jkaecmb().s[120]++;return isValid;}/**
|
|
118
118
|
* Prüft ob das File nicht zu gross ist.
|
|
119
119
|
*
|
|
120
120
|
* @param filesize Max File Size in Bytes
|
|
121
|
-
*/isFileSizeValid(filesize){cov_1y8jkaecmb().f[44]++;cov_1y8jkaecmb().s[
|
|
121
|
+
*/isFileSizeValid(filesize){cov_1y8jkaecmb().f[44]++;cov_1y8jkaecmb().s[121]++;if(this.maxfilesize===0){cov_1y8jkaecmb().b[24][0]++;cov_1y8jkaecmb().s[122]++;return true;}else{cov_1y8jkaecmb().b[24][1]++;}cov_1y8jkaecmb().s[123]++;return this.maxfilesize>=filesize;}/**
|
|
122
122
|
* Setzt die erlaubten Datentypen für den Upload
|
|
123
123
|
*
|
|
124
124
|
* @param types Erlaubte File Extensions
|
|
125
|
-
*/setAllowedTypes(types){cov_1y8jkaecmb().f[45]++;cov_1y8jkaecmb().s[
|
|
126
|
-
if((cov_1y8jkaecmb().b[26][0]++,this.uploadInput)&&(cov_1y8jkaecmb().b[26][1]++,this.uploadInput.nativeElement)){cov_1y8jkaecmb().b[25][0]++;cov_1y8jkaecmb().s[
|
|
125
|
+
*/setAllowedTypes(types){cov_1y8jkaecmb().f[45]++;cov_1y8jkaecmb().s[124]++;// Prüfen UploadInput bereits geladen, ist NULL wenn Extension im Markup nach NgModel gesetzt wird.
|
|
126
|
+
if((cov_1y8jkaecmb().b[26][0]++,this.uploadInput)&&(cov_1y8jkaecmb().b[26][1]++,this.uploadInput.nativeElement)){cov_1y8jkaecmb().b[25][0]++;cov_1y8jkaecmb().s[125]++;this.renderer.setAttribute(this.uploadInput.nativeElement,'accept',types);}else{cov_1y8jkaecmb().b[25][1]++;}cov_1y8jkaecmb().s[126]++;this.options.allowedTypes=types;}/**
|
|
127
127
|
* Setzt den Upload Endpoit
|
|
128
128
|
* @param url Register URI
|
|
129
|
-
*/setEndpoint(url){cov_1y8jkaecmb().f[46]++;cov_1y8jkaecmb().s[
|
|
129
|
+
*/setEndpoint(url){cov_1y8jkaecmb().f[46]++;cov_1y8jkaecmb().s[127]++;this.options.endpoint=url;}static{cov_1y8jkaecmb().s[128]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacUploadBase,deps:[{token:i1.SacFormLayoutCommon},{token:i0.Injector},{token:i0.Renderer2},{token:i0.NgZone}],target:i0.ɵɵFactoryTarget.Directive});}static{cov_1y8jkaecmb().s[129]++;this.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"16.2.12",type:SacUploadBase,inputs:{isrequired:"isrequired",maxfilesize:"maxfilesize",validationmessagerequired:"validationmessagerequired",validationmessagesummaryrequired:"validationmessagesummaryrequired",allowedtypes:"allowedtypes",autoupload:"autoupload",enablepause:"enablepause",endpoint:"endpoint"},outputs:{onfileerror:"onfileerror"},viewQueries:[{propertyName:"uploadInput",first:true,predicate:["files"],descendants:true,static:true}],usesInheritance:true,ngImport:i0});}}export{SacUploadBase};cov_1y8jkaecmb().s[130]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacUploadBase,decorators:[{type:Directive}],ctorParameters:function(){cov_1y8jkaecmb().f[47]++;cov_1y8jkaecmb().s[131]++;return[{type:i1.SacFormLayoutCommon},{type:i0.Injector},{type:i0.Renderer2},{type:i0.NgZone}];},propDecorators:{uploadInput:[{type:ViewChild,args:['files',{static:true}]}],isrequired:[{type:Input}],maxfilesize:[{type:Input}],validationmessagerequired:[{type:Input}],validationmessagesummaryrequired:[{type:Input}],onfileerror:[{type:Output}],allowedtypes:[{type:Input}],autoupload:[{type:Input}],enablepause:[{type:Input}],endpoint:[{type:Input}]}});/**
|
|
130
130
|
* Klasse für den Upload einer Datei in der Upload Component
|
|
131
131
|
*/export class SacUploadFile{// #endregion Properties
|
|
132
132
|
// #region Constructors
|
|
133
133
|
/**
|
|
134
134
|
* Konstruktor
|
|
135
135
|
* @param ufile Upload Status
|
|
136
|
-
*/constructor(ufile){cov_1y8jkaecmb().f[48]++;cov_1y8jkaecmb().s[133]++;this.uploadId=ufile.uploadId;cov_1y8jkaecmb().s[134]++;this.name=ufile.name;cov_1y8jkaecmb().s[135]++;this.progress=ufile.progress;cov_1y8jkaecmb().s[136]++;this.status=ufile.status;cov_1y8jkaecmb().s[137]++;this.documentid=null;}}//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZXVwbG9hZGNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZXVwbG9hZGNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBRVosS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQU9MLGNBQWMsR0FDZixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBS3RDLE9BQU8sRUFDTCxlQUFlLEVBQ2Ysd0JBQXdCLEVBQ3hCLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDL0IsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLHVCQUF1QixFQUN2Qiw2QkFBNkIsR0FDOUIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFFekQsa0JBQWtCO0FBRWxCOztHQUVHO0FBQ0gsTUFDc0IsYUFDcEIsU0FBUSxtQkFBMEI7SUFzRmxDLHdCQUF3QjtJQUV4Qix1QkFBdUI7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsWUFDRSxVQUErQixFQUMvQixRQUFrQixFQUNWLFFBQW1CLEVBQ25CLE1BQWM7UUFFdEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUhwQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVE7UUExRnhCOztXQUVHO1FBQ0ssa0JBQWEsR0FBVyxHQUFHLENBQUM7UUFDcEM7O1dBRUc7UUFDSyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUNyQzs7V0FFRztRQUNLLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBQ3JDOztXQUVHO1FBQ0ssY0FBUyxHQUFXLElBQUksQ0FBQztRQUNqQzs7V0FFRztRQUNLLFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBV3JDOztXQUVHO1FBQ2EsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1Qzs7V0FFRztRQUNhLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hDOztXQUVHO1FBQ2EsOEJBQXlCLEdBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQztRQUNwRDs7V0FFRztRQUVJLHFDQUFnQyxHQUNyQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsOEJBQThCLENBQUM7UUFDM0Q7O1dBRUc7UUFDYyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFMUQ7O1dBRUc7UUFDSSxpQkFBWSxHQUFHLEdBQUcsRUFBRTtZQUN6QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRTtnQkFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdEU7UUFDSCxDQUFDLENBQUM7UUFpQ0EsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQ3RDLHdCQUF3QixFQUN4QixJQUFJLDhCQUE4QixFQUFFLENBQ3JDLENBQUM7UUFFRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FDcEMsdUJBQXVCLEVBQ3ZCLElBQUksNkJBQTZCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQzdELENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQzdCLGVBQWUsRUFDZixJQUFJLHFCQUFxQixFQUFFLENBQzVCLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUVsQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuQyxxQkFBcUIsRUFBRSxZQUFZLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUU7U0FDdkQsQ0FBQyxDQUFDO1FBRUgsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEMsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVELDBCQUEwQjtJQUUxQixxQ0FBcUM7SUFFckM7O09BRUc7SUFDSCxJQUNXLFlBQVksQ0FBQyxLQUFhO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDVyxVQUFVLENBQUMsQ0FBVTtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ1csV0FBVyxDQUFDLENBQVU7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDVyxRQUFRLENBQUMsQ0FBUztRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMseUJBQXlCLENBQUM7SUFDcEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDO0lBQ3BELENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsd0NBQXdDO0lBRXhDLHlCQUF5QjtJQUV6Qjs7O09BR0c7SUFDSSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUN0QyxJQUFJLENBQUMsb0JBQW9CLENBQUMscUJBQXFCLENBQ2hELENBQUM7U0FDSDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxnQkFBZ0I7UUFDckIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxDQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQ3JFLENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sQ0FDTCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDakIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUMzRCxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssV0FBVyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksUUFBUTtRQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDakM7YUFBTTtZQUNMLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLFFBQVE7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDZCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNsRDtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVc7UUFDaEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ3BDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUM5QixRQUFRLEVBQ1IsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUU7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksUUFBUSxDQUFDLEtBQWtCO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUzRSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxPQUFPLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ3ZFLElBQ0UsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDaEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUMvQjtnQkFDQSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQzdDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUU1QixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztpQkFDNUM7cUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2lCQUMzQzthQUNGO1NBQ0Y7YUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssV0FBVyxFQUFFO1lBQ3ZDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDL0I7WUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNCO2FBQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRTtZQUN0QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QjthQUFNO1lBQ0wsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO2dCQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7YUFDM0M7U0FDRjtRQUVELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLFFBQVE7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsUUFBUTtRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTO1FBQ2QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLENBQWtCO1FBQ3BDLElBQUksS0FBSyxHQUE0QixJQUFJLENBQUM7UUFFMUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUN6QixJQUFJLENBQUMseUJBQXlCLEVBQzlCLElBQUksQ0FBQyxnQ0FBZ0MsQ0FDdEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBb0JELHFDQUFxQztJQUVyQywwQkFBMEI7SUFFbEIsZUFBZTtRQUNyQixtSUFBbUk7UUFDbkksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxTQUF1QyxDQUFDLGlCQUFpQjtnQkFDN0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxnQkFBZ0IsQ0FBQyxRQUFnQjtRQUN2QyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssR0FBRyxFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLE9BQU8sR0FBWSxLQUFLLENBQUM7UUFDN0IsTUFBTSxVQUFVLEdBQWEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0QsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3pCLElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRTtnQkFDdEQsT0FBTyxHQUFHLElBQUksQ0FBQzthQUNoQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxlQUFlLENBQUMsUUFBZ0I7UUFDdEMsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUMsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGVBQWUsQ0FBQyxLQUFhO1FBQ25DLG1HQUFtRztRQUNuRyxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUU7WUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUM5QixRQUFRLEVBQ1IsS0FBSyxDQUNOLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssV0FBVyxDQUFDLEdBQVc7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQzlCLENBQUM7K0dBMWlCbUIsYUFBYTttR0FBYixhQUFhOztTQUFiLGFBQWE7NEZBQWIsYUFBYTtrQkFEbEMsU0FBUzs4S0FXQSxXQUFXO3NCQURsQixTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBb0NwQixVQUFVO3NCQUF6QixLQUFLO2dCQUlVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBSVUseUJBQXlCO3NCQUF4QyxLQUFLO2dCQU1DLGdDQUFnQztzQkFEdEMsS0FBSztnQkFNVyxXQUFXO3NCQUEzQixNQUFNO2dCQXVGSSxZQUFZO3NCQUR0QixLQUFLO2dCQVVLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBV0ssV0FBVztzQkFEckIsS0FBSztnQkFTSyxRQUFRO3NCQURsQixLQUFLOztBQThYUjs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFhO0lBd0J4Qix3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7T0FHRztJQUNILFlBQVksS0FBa0I7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE5nWm9uZSxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBSZW5kZXJlcjIsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgSWRTZXJ2aWNlLFxyXG4gIFVQTE9BRFhfQUpBWCxcclxuICBVUExPQURYX0ZBQ1RPUllfT1BUSU9OUyxcclxuICBVUExPQURYX09QVElPTlMsXHJcbiAgVXBsb2FkU3RhdGUsXHJcbiAgVXBsb2FkeE9wdGlvbnMsXHJcbiAgVXBsb2FkeFNlcnZpY2UsXHJcbn0gZnJvbSAnbmd4LXVwbG9hZHgnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0Q29tbW9uIH0gZnJvbSAnLi4vY29udHJvbHMvbGF5b3V0L2Zvcm1sYXlvdXQnO1xyXG5pbXBvcnQgeyBJU2FjSWNvblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNJY29uU2VydmljZSc7XHJcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IElVcGxvYWRDb250cm9sIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pdXBsb2FkY29udHJvbCc7XHJcbmltcG9ydCB7XHJcbiAgU0FDSUNPTl9TRVJWSUNFLFxyXG4gIFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSxcclxuICBTYWNEZWZhdWx0SWNvblNlcnZpY2UsXHJcbiAgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlLFxyXG59IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtcclxuICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcclxuICBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSxcclxufSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtbG9jYWxpc2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG5cclxuLy8gI3JlZ2lvbiBDbGFzc2VzXHJcblxyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBVcGxvYWRlciBDb250cm9sXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY1VwbG9hZEJhc2U8VkFMVUU+XHJcbiAgZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPFZBTFVFPlxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBGaWxlIElucHV0IENvbnRyb2xcclxuICAgKi9cclxuICBAVmlld0NoaWxkKCdmaWxlcycsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHJpdmF0ZSB1cGxvYWRJbnB1dDogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICogRXJsYXVidGUgRGF0ZWl0eXBlblxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2FsbG93ZWR0eXBlczogc3RyaW5nID0gJyonO1xyXG4gIC8qKlxyXG4gICAqIEZpbGVzIGF1dG9tYXRpc2NoIGhvY2hsYWRlblxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2F1dG91cGxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBQYXVzaWVyZW4gdm9uIFVwbG9hZHMgZXJsYXViZW5cclxuICAgKi9cclxuICBwcml2YXRlIF9lbmFibGVwYXVzZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQVBJIEVuZHBvaW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZW5kcG9pbnQ6IHN0cmluZyA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIFNldHRpbmdzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvcHRpb25zOiBVcGxvYWR4T3B0aW9ucyA9IHt9O1xyXG5cclxuICAvKipcclxuICAgKiBpY29uIHNlcnZpY2UgdG8gcmVjZWl2ZSBpY29ucyBmb3IgdXBsb2FkZXJcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgaWNvblNlcnZpY2U6IElTYWNJY29uU2VydmljZTtcclxuICAvKipcclxuICAgKiBVcGxvYWQgU2VydmljZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCB1cGxvYWRTZXJ2aWNlOiBVcGxvYWR4U2VydmljZTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IGRhcyBDb250cm9sIGFscyBSZXF1aXJlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogTWF4LiBEYXRlaWdyw7Zzc2UgZsO8ciBGaWxlcyBkaWUgaG9jaGdlbGFkZW4gd2VyZGVuIGvDtm5uZW4uIDAgZGVha3RpdmllcnQgZGVuIEZpbHRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhmaWxlc2l6ZTogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkOiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XHJcbiAgLyoqXHJcbiAgICogRXZlbnQgd2VubiBlaW4gRXJyb3IgaW4gZGVyIEtvbXBvbmVudGUgYXVzZ2Vsw7ZzdCB3aXJkLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25maWxlZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxpbmcgdm9uIG5ldWVuIEZpbGVzIGltIElucHV0IENvbnRyb2xcclxuICAgKi9cclxuICBwdWJsaWMgZmlsZUxpc3RlbmVyID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudC5maWxlcykge1xyXG4gICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuaGFuZGxlRmlsZXModGhpcy51cGxvYWRJbnB1dC5uYXRpdmVFbGVtZW50LmZpbGVzKTtcclxuICAgIH1cclxuICB9O1xyXG4gIC8qKlxyXG4gICAqIExpc3RlbmVyIGbDvHIgRmlsZXNcclxuICAgKi9cclxuICBwdWJsaWMgbGlzdGVuZXJGbjogKCkgPT4gdm9pZDtcclxuICAvKipcclxuICAgKiBTZXJ2aWNlIGbDvHIgRXJyb3IgTG9jYWxpc2F0aW9uXHJcbiAgICovXHJcbiAgcHVibGljIGxuZ1Jlc291cmNlU2VydmljZTogSVNhY0xvY2FsaXNhdGlvblNlcnZpY2U7XHJcbiAgLyoqXHJcbiAgICogQXJyYXkgdm9uIFVwbG9hZHNcclxuICAgKi9cclxuICBwdWJsaWMgdXBsb2FkczogU2FjVXBsb2FkRmlsZVtdO1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gcmVuZGVyZXIgYW5ndWxhciByZW5kZXJpbmcgZW5naW5lXHJcbiAgICogQHBhcmFtIG5nWm9uZSBuZ3pvbmUgZm9yIGhhbmRsaW5nIGV4dGVybmFsIHNjcmlwdHNcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcblxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSA9IGluamVjdG9yLmdldChcclxuICAgICAgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLFxyXG4gICAgICBuZXcgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlKClcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXHJcbiAgICAgIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxyXG4gICAgICBuZXcgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UodGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5pY29uU2VydmljZSA9IGluamVjdG9yLmdldChcclxuICAgICAgU0FDSUNPTl9TRVJWSUNFLFxyXG4gICAgICBuZXcgU2FjRGVmYXVsdEljb25TZXJ2aWNlKClcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy51cGxvYWRzID0gW107XHJcblxyXG4gICAgdGhpcy5vcHRpb25zLmFsbG93ZWRUeXBlcyA9ICcqJztcclxuICAgIHRoaXMub3B0aW9ucy5jb25jdXJyZW5jeSA9IDE7XHJcbiAgICB0aGlzLm9wdGlvbnMudG9rZW4gPSAnc29tZXRva2VuJztcclxuICAgIHRoaXMub3B0aW9ucy5hdXRvVXBsb2FkID0gdGhpcy5fYXV0b3VwbG9hZDtcclxuICAgIHRoaXMub3B0aW9ucy53aXRoQ3JlZGVudGlhbHMgPSB0cnVlO1xyXG4gICAgdGhpcy5vcHRpb25zLmNodW5rU2l6ZSA9IDEwMjQgKiAxNiAqIDg7XHJcbiAgICB0aGlzLm9wdGlvbnMuaGVhZGVycyA9IChmOiBGaWxlKSA9PiAoe1xyXG4gICAgICAnQ29udGVudC1EaXNwb3NpdGlvbic6IGBmaWxlbmFtZT0ke2VuY29kZVVSSShmLm5hbWUpfWAsXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBJbml0IG5ldyBTZXJ2aWNlIEluc3RhbmNlXHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UgPSBuZXcgVXBsb2FkeFNlcnZpY2UoKTtcclxuICAgIHRoaXMudXBsb2FkU2VydmljZS5pbml0KHRoaXMub3B0aW9ucyk7XHJcblxyXG4gICAgLy8gU3Vic2NyaXBlIEV2ZW50IGZvciBTdGF0ZSBjaGFuZ2VzXHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuZXZlbnRzLnN1YnNjcmliZSgodWZpbGU6IFVwbG9hZFN0YXRlKSA9PlxyXG4gICAgICB0aGlzLm9uVXBsb2FkKHVmaWxlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogRXJsYXVidGUgRGF0ZWl0eXBlbiBmw7xyIGRlbiBVcGxvYWQuIEZvcm1hdDogXCIueHh4LC55eXksLnp6elwiXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFsbG93ZWR0eXBlcyh0eXBlczogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hbGxvd2VkdHlwZXMgPSB0eXBlcztcclxuICAgIHRoaXMuc2V0QWxsb3dlZFR5cGVzKHR5cGVzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbGVzIG5hY2ggZGVyIEF1c3dhaGwgYXV0b21hdGlzY2ggaG9jaGxhZGVuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGF1dG91cGxvYWQodjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fYXV0b3VwbG9hZCA9IHY7XHJcbiAgICB0aGlzLm9wdGlvbnMuYXV0b1VwbG9hZCA9IHY7XHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuY29ubmVjdCh0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkcyBrw7ZubmVuIHVudGVyYnJvY2hlbiB3ZXJkZW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZW5hYmxlcGF1c2UodjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZW5hYmxlcGF1c2UgPSB2O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IGRlbiBSZWdpc3RyYXRpb24gRW5kcG9pbnQgZsO8ciBVcGxvYWRzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBlbmRwb2ludCh2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2VuZHBvaW50ID0gdjtcclxuICAgIHRoaXMuc2V0RW5kcG9pbnQodik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJY29uIGZvciBicm93c2UgYnV0dG9uXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBJY29uQnJvd3NlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5VcGxvYWRDb21wb25lbnRCcm93c2VJY29uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogaWNvbiBmb3IgY29udGlub3VzIGJ1dHRvbnNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IEljb25Db250aW51ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVXBsb2FkQ29tcG9uZW50Q29udGludWVJY29uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogaWNvbiBmb3IgZGVsZXRlIGJ1dHRvbnNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IEljb25EZWxldGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlVwbG9hZENvbXBvbmVudERlbGV0ZUljb247XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBpY29uIGZvciBwYXVzZSBidXR0b25zXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBJY29uUGF1c2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlVwbG9hZENvbXBvbmVudFBhdXNlSWNvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGljb24gZm9yIHVwbG9hZCBidXR0b25cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IEljb25VcGxvYWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlVwbG9hZENvbXBvbmVudFVwbG9hZEljb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFsbG93ZWR0eXBlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbG93ZWR0eXBlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXV0b3VwbG9hZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9hdXRvdXBsb2FkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBlbmFibGVwYXVzZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmFibGVwYXVzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZW5kcG9pbnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmRwb2ludDtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBOYW1lIGRlciBEYXRlaSBkaWUgSG9jaGdlbGFkZW4gd2lyZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgZGVzIERhdGVpbmFtZW5zLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBGaWxlbmFtZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgaWYgKHRoaXMudXBsb2Fkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBvZih0aGlzLnVwbG9hZHNbMF0ubmFtZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkTm9GaWxlc1NlbGVjdGVkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGFuIG9iIFF1ZXVlIEVsZW1lbnRlIGJlaW5oYWx0ZXRcclxuICAgKiBAcmV0dXJucyBFbGVtZW50ZSBpbiBkZXIgUXVldWVcclxuICAgKi9cclxuICBwdWJsaWMgSGFzUXVldWVJdGVtKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2Fkcy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBhbiBvYiBlaW4gVXBsb2FkIGFiZ2VzY2hsb3NzZW4gaXN0XHJcbiAgICogQHJldHVybnMgVXBsb2FkIGVyZm9sZ3JlaWNoXHJcbiAgICovXHJcbiAgcHVibGljIEhhc1N1Y2Nlc3NVcGxvYWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy51cGxvYWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICB0aGlzLnVwbG9hZHMuZmlsdGVyKChpdG0pID0+IGl0bS5zdGF0dXMgIT09ICdjb21wbGV0ZScpLmxlbmd0aCA9PT0gMFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHLDvGZ0IG9iIGVpbiBVcGxvYWQgcGF1c2llcnRcclxuICAgKiBAcmV0dXJucyBQYXVzaWVydGVyIFVwbG9hZCBpc3Qgdm9yaGFuZGVuXHJcbiAgICovXHJcbiAgcHVibGljIElzUGF1c2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2Fkcy5maWx0ZXIoKGl0bSkgPT4gaXRtLnN0YXR1cyA9PT0gJ3BhdXNlZCcpLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcsO8ZnQgb2IgaW4gZGVyIFF1ZXVlIEVsZW1lbnRlIGRpZSB6dW0gVXBsb2FkIGJlcmVpdCBzaW5kIHZvcmhhbmRlbiBzaW5kLlxyXG4gICAqIEByZXR1cm5zIEVsZW1lbnRlIGbDvHIgVXBsb2FkIHZvcmhhbmRlblxyXG4gICAqL1xyXG4gIHB1YmxpYyBJc1N0YXRlVG9VcGxvYWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnVwbG9hZHMuZmlsdGVyKFxyXG4gICAgICAgIChpdG0pID0+IGl0bS5zdGF0dXMgPT09ICdhZGRlZCcgfHwgaXRtLnN0YXR1cyA9PT0gJ3BhdXNlZCdcclxuICAgICAgKS5sZW5ndGggPiAwXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHLDvGZ0IG9iIGVpbiBVcGxvYWQgZWluZXMgRmlsZXMgYW0gbGF1ZmVuIGlzdFxyXG4gICAqIEByZXR1cm5zIFVwbG9hZCBpc3QgYW0gbGF1ZmVuXHJcbiAgICovXHJcbiAgcHVibGljIElzVXBsb2FkaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2Fkcy5maWx0ZXIoKGl0bSkgPT4gaXRtLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycpLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRlbiBVcGxvYWRmb3J0c2Nocml0dCB6dXLDvGNrXHJcbiAgICogQHJldHVybnMgVXBsb2FkIEZvcnRzY2hyaXR0LiBXZXJ0IHZvbiAwLTEwMFxyXG4gICAqL1xyXG4gIHB1YmxpYyBQcm9ncmVzcygpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMudXBsb2Fkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVwbG9hZHNbMF0ucHJvZ3Jlc3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbmNlbCBzaW5nbGUgdXBsb2FkXHJcbiAgICogQHBhcmFtIHVwbG9hZElkIElEIG9mIEZpbGUgdG8gY2FuY2VsXHJcbiAgICovXHJcbiAgcHVibGljIGNhbmNlbCh1cGxvYWRJZCkge1xyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbnRyb2woeyBhY3Rpb246ICdjYW5jZWwnLCB1cGxvYWRJZDogdXBsb2FkSWQgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW5jZWwgYWxsIFVwbG9hZGVkIGZpbGVzXHJcbiAgICovXHJcbiAgcHVibGljIGNhbmNlbEFsbCgpIHtcclxuICAgIGlmICh0aGlzLkhhc1F1ZXVlSXRlbSgpID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS5jb250cm9sKHsgYWN0aW9uOiAnY2FuY2VsJyB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlc3Ryb3kgZGVzIENvbnRyb2xzXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMubGlzdGVuZXJGbikge1xyXG4gICAgICB0aGlzLmxpc3RlbmVyRm4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpc2llcnQgZGFzIENvbnRyb2xcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgLy8gSW5pdCBFdmVudCBMaXN0ZW5lciBmb3IgSW5wdXQgRmlsZSBDb250cm9sIGFuZCBIYW5kbGluZyBGaWxlc1xyXG4gICAgdGhpcy5saXN0ZW5lckZuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXHJcbiAgICAgIHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudCxcclxuICAgICAgJ2NoYW5nZScsXHJcbiAgICAgIHRoaXMuZmlsZUxpc3RlbmVyXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuc2V0QWxsb3dlZFR5cGVzKHRoaXMuX2FsbG93ZWR0eXBlcyk7XHJcbiAgICB0aGlzLnNldEVuZHBvaW50KHRoaXMuX2VuZHBvaW50KTtcclxuXHJcbiAgICBpZiAodGhpcy5fZW5kcG9pbnQgPT09IG51bGwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdlbmRwb2ludCBpcyBub3QgZGVmaW5lZCEnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuY29ubmVjdCh0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIEV2ZW50XHJcbiAgICpcclxuICAgKiBAcGFyYW0gdXBsb2Fkc091dFN0cmVhbSBVcGxvYWQgSXRlbVxyXG4gICAqL1xyXG4gIHB1YmxpYyBvblVwbG9hZCh1ZmlsZTogVXBsb2FkU3RhdGUpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy51cGxvYWRzLmZpbmRJbmRleCgoZikgPT4gZi51cGxvYWRJZCA9PT0gdWZpbGUudXBsb2FkSWQpO1xyXG5cclxuICAgIGlmICh1ZmlsZS5zdGF0dXMgPT09ICdhZGRlZCcgfHwgKHVmaWxlLnN0YXR1cyA9PT0gJ3F1ZXVlJyAmJiBpbmRleCA8IDApKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmlzRXh0ZW5zaW9uVmFsaWQodWZpbGUubmFtZSkgJiZcclxuICAgICAgICB0aGlzLmlzRmlsZVNpemVWYWxpZCh1ZmlsZS5zaXplKSAmJlxyXG4gICAgICAgIHRoaXMuQ3VzdG9tQWRkVmFsaWRhdGlvbih1ZmlsZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRzLnB1c2gobmV3IFNhY1VwbG9hZEZpbGUodWZpbGUpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNhbmNlbCh1ZmlsZS51cGxvYWRJZCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc0V4dGVuc2lvblZhbGlkKHVmaWxlLm5hbWUpKSB7XHJcbiAgICAgICAgICB0aGlzLm9uZmlsZWVycm9yLmVtaXQoJ0lOVkFMSURfRVhURU5TSU9OJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5pc0ZpbGVTaXplVmFsaWQodWZpbGUuc2l6ZSkpIHtcclxuICAgICAgICAgIHRoaXMub25maWxlZXJyb3IuZW1pdCgnSU5WQUxJRF9GSUxFU0laRScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh1ZmlsZS5zdGF0dXMgPT09ICdjYW5jZWxsZWQnKSB7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuU2V0VXBsb2FkVmFsdWUobnVsbCk7XHJcbiAgICB9IGVsc2UgaWYgKHVmaWxlLnN0YXR1cyA9PT0gJ2NvbXBsZXRlJykge1xyXG4gICAgICB0aGlzLnVwbG9hZHNbaW5kZXhdLnByb2dyZXNzID0gdWZpbGUucHJvZ3Jlc3M7XHJcbiAgICAgIHRoaXMudXBsb2Fkc1tpbmRleF0uc3RhdHVzID0gdWZpbGUuc3RhdHVzO1xyXG4gICAgICB0aGlzLlNldFVwbG9hZFZhbHVlKHVmaWxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRzW2luZGV4XS5wcm9ncmVzcyA9IHVmaWxlLnByb2dyZXNzO1xyXG4gICAgICAgIHRoaXMudXBsb2Fkc1tpbmRleF0uc3RhdHVzID0gdWZpbGUuc3RhdHVzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5VcGRhdGVGaWxlQ291bnQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbmNlbCBTaW5nbGUgRmlsZVxyXG4gICAqIEBwYXJhbSB1cGxvYWRJZCBJRCBvZiBGaWxlIHRvIENhbmNlbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwYXVzZSh1cGxvYWRJZCkge1xyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbnRyb2woeyBhY3Rpb246ICdwYXVzZScsIHVwbG9hZElkIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGF1c2UgYWxsIFVwbG9hZHNcclxuICAgKi9cclxuICBwdWJsaWMgcGF1c2VBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5Jc1VwbG9hZGluZygpID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS5jb250cm9sKHsgYWN0aW9uOiAncGF1c2UnIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIFNpbmdsZSBGaWxlXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdXBsb2FkSWQgSUQgb2YgRmlsZSB0byBVcGxvYWRcclxuICAgKi9cclxuICBwdWJsaWMgdXBsb2FkKHVwbG9hZElkKSB7XHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuY29udHJvbCh7IGFjdGlvbjogJ3VwbG9hZCcsIHVwbG9hZElkIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIGFsbCBxdWV1ZWQgRmlsZXNcclxuICAgKi9cclxuICBwdWJsaWMgdXBsb2FkQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuSXNTdGF0ZVRvVXBsb2FkKCkgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbnRyb2woeyBhY3Rpb246ICd1cGxvYWQnIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IGRhcyBVcGxvYWQgQ29udHJvbFxyXG4gICAqIEBwYXJhbSBjIENvbnRyb2wgZGFzIHZhbGlkaWVydCB3ZXJkZW4gc29sbFxyXG4gICAqL1xyXG4gIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xyXG4gICAgICBlcnJvciA9IFZhbGlkYXRpb24ucmVxdWlyZWQoXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWRcclxuICAgICAgKShjKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3I7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEFic3RyYWN0IE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSBrYW5uIGbDvHIgQ29udHJvbHMgdmVyd2VuZGV0IHdlcmRlbiwgenVzw6R0emxpY2hlIFZhbGlkaWVydW5nZW4gYmVpIGhpbnp1ZsO8Z2VuIGRlciBGaWxlcyB6dSBtYWNoZW5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmaWxlIEZpbGUgZGFzIGhpbnp1Z2Vmw7xndCB3dXJkZS5cclxuICAgKiBAcmV0dXJucyBWYWxkaWVydW5nIGlzdCBlcmZvbGdyZWljaFxyXG4gICAqL1xyXG4gIHB1YmxpYyBhYnN0cmFjdCBDdXN0b21BZGRWYWxpZGF0aW9uKGZpbGU6IFVwbG9hZFN0YXRlKTogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBNZXRob2RlIHdlbGNoZSBkaWUgVXBsb2FkIElEJ3MgaW4gZGFzIE1vZGVsIHNldHp0IG9kZXIgbMO2c2NodFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZpbGUgVHlwZSB2b24gRmlsZSBJRCdzXHJcbiAgICovXHJcbiAgcHVibGljIGFic3RyYWN0IFNldFVwbG9hZFZhbHVlKGZpbGU6IFVwbG9hZFN0YXRlKTogdm9pZDtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgQWJzdHJhY3QgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG5cclxuICBwcml2YXRlIFVwZGF0ZUZpbGVDb3VudCgpOiB2b2lkIHtcclxuICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSVVwbG9hZENvbnRyb2wpLnVwbG9hZGVkZmlsZWNvdW50ID1cclxuICAgICAgICB0aGlzLlVwbG9hZGVkRmlsZUNvdW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdXBsb2FkZWQgZmlsZXNcclxuICAgKi9cclxuICBwcml2YXRlIFVwbG9hZGVkRmlsZUNvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy51cGxvYWRzLmZpbHRlcigoaXRtKSA9PiBpdG0uc3RhdHVzID09PSAnY29tcGxldGUnKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcsO8ZnQgb2IgZGllIERhdGVpZXJ3ZWl0ZXJ1bmcgZ8O8bHRpZyBpc3RcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmaWxlbmFtZSBEYXRlaW5hbWVcclxuICAgKi9cclxuICBwcml2YXRlIGlzRXh0ZW5zaW9uVmFsaWQoZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuX2FsbG93ZWR0eXBlcyA9PT0gJyonKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpc1ZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBjb25zdCBleHRlbnNpb25zOiBzdHJpbmdbXSA9IHRoaXMuX2FsbG93ZWR0eXBlcy5zcGxpdCgnLCcpO1xyXG5cclxuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoaXRtKSA9PiB7XHJcbiAgICAgIGlmIChmaWxlbmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGl0bS50b0xvd2VyQ2FzZSgpKSkge1xyXG4gICAgICAgIGlzVmFsaWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gaXNWYWxpZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByw7xmdCBvYiBkYXMgRmlsZSBuaWNodCB6dSBncm9zcyBpc3QuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZmlsZXNpemUgTWF4IEZpbGUgU2l6ZSBpbiBCeXRlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgaXNGaWxlU2l6ZVZhbGlkKGZpbGVzaXplOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLm1heGZpbGVzaXplID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLm1heGZpbGVzaXplID49IGZpbGVzaXplO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0enQgZGllIGVybGF1YnRlbiBEYXRlbnR5cGVuIGbDvHIgZGVuIFVwbG9hZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHR5cGVzIEVybGF1YnRlIEZpbGUgRXh0ZW5zaW9uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0QWxsb3dlZFR5cGVzKHR5cGVzOiBzdHJpbmcpIHtcclxuICAgIC8vIFByw7xmZW4gVXBsb2FkSW5wdXQgYmVyZWl0cyBnZWxhZGVuLCBpc3QgTlVMTCB3ZW5uIEV4dGVuc2lvbiBpbSBNYXJrdXAgbmFjaCBOZ01vZGVsIGdlc2V0enQgd2lyZC5cclxuICAgIGlmICh0aGlzLnVwbG9hZElucHV0ICYmIHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcclxuICAgICAgICB0aGlzLnVwbG9hZElucHV0Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgJ2FjY2VwdCcsXHJcbiAgICAgICAgdHlwZXNcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9wdGlvbnMuYWxsb3dlZFR5cGVzID0gdHlwZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXR6dCBkZW4gVXBsb2FkIEVuZHBvaXRcclxuICAgKiBAcGFyYW0gdXJsIFJlZ2lzdGVyIFVSSVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0RW5kcG9pbnQodXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3B0aW9ucy5lbmRwb2ludCA9IHVybDtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBLbGFzc2UgZsO8ciBkZW4gVXBsb2FkIGVpbmVyIERhdGVpIGluIGRlciBVcGxvYWQgQ29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2FjVXBsb2FkRmlsZSB7XHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIERvY3VtZW50IElEXHJcbiAgICovXHJcbiAgcHVibGljIGRvY3VtZW50aWQ6IHN0cmluZztcclxuICAvKipcclxuICAgKiBEYXRlaW5hbWVcclxuICAgKi9cclxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFVwbG9hZCBGb3J0c2Nocml0dFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwcm9ncmVzczogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIFVwbG9hZCBTdGF0dXNcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdHVzOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIElEXHJcbiAgICovXHJcbiAgcHVibGljIHVwbG9hZElkOiBzdHJpbmc7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBLb25zdHJ1a3RvclxyXG4gICAqIEBwYXJhbSB1ZmlsZSBVcGxvYWQgU3RhdHVzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IodWZpbGU6IFVwbG9hZFN0YXRlKSB7XHJcbiAgICB0aGlzLnVwbG9hZElkID0gdWZpbGUudXBsb2FkSWQ7XHJcbiAgICB0aGlzLm5hbWUgPSB1ZmlsZS5uYW1lO1xyXG4gICAgdGhpcy5wcm9ncmVzcyA9IHVmaWxlLnByb2dyZXNzO1xyXG4gICAgdGhpcy5zdGF0dXMgPSB1ZmlsZS5zdGF0dXM7XHJcbiAgICB0aGlzLmRvY3VtZW50aWQgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxufVxyXG5cclxuLy8gI2VuZHJlZ2lvbiBDbGFzc2VzXHJcbiJdfQ==
|
|
137
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMXk4amthZWNtYiIsImFjdHVhbENvdmVyYWdlIiwiRGlyZWN0aXZlIiwiRXZlbnRFbWl0dGVyIiwiSW5wdXQiLCJPdXRwdXQiLCJWaWV3Q2hpbGQiLCJVcGxvYWR4U2VydmljZSIsIm9mIiwiU0FDSUNPTl9TRVJWSUNFIiwiU0FDVkFMSURBVElPTktFWV9TRVJWSUNFIiwiU2FjRGVmYXVsdEljb25TZXJ2aWNlIiwiU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlIiwiU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UiLCJTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSIsIlZhbGlkYXRpb24iLCJTYWNCYXNlTW9kZWxDb250cm9sIiwiU2FjVXBsb2FkQmFzZSIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwicmVuZGVyZXIiLCJuZ1pvbmUiLCJmIiwicyIsIl9hbGxvd2VkdHlwZXMiLCJfYXV0b3VwbG9hZCIsIl9lbmFibGVwYXVzZSIsIl9lbmRwb2ludCIsIm9wdGlvbnMiLCJpc3JlcXVpcmVkIiwibWF4ZmlsZXNpemUiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkIiwidmFsaWRhdGlvbktleVNlcnZpY2UiLCJWYWxpZGF0aW9uRXJyb3JSZXF1aXJlZCIsInZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkIiwib25maWxlZXJyb3IiLCJmaWxlTGlzdGVuZXIiLCJ1cGxvYWRJbnB1dCIsIm5hdGl2ZUVsZW1lbnQiLCJmaWxlcyIsImIiLCJ1cGxvYWRTZXJ2aWNlIiwiaGFuZGxlRmlsZXMiLCJnZXQiLCJsbmdSZXNvdXJjZVNlcnZpY2UiLCJpY29uU2VydmljZSIsInVwbG9hZHMiLCJhbGxvd2VkVHlwZXMiLCJjb25jdXJyZW5jeSIsInRva2VuIiwiYXV0b1VwbG9hZCIsIndpdGhDcmVkZW50aWFscyIsImNodW5rU2l6ZSIsImhlYWRlcnMiLCJlbmNvZGVVUkkiLCJuYW1lIiwiaW5pdCIsImV2ZW50cyIsInN1YnNjcmliZSIsInVmaWxlIiwib25VcGxvYWQiLCJhbGxvd2VkdHlwZXMiLCJ0eXBlcyIsInNldEFsbG93ZWRUeXBlcyIsImF1dG91cGxvYWQiLCJ2IiwiY29ubmVjdCIsImVuYWJsZXBhdXNlIiwiZW5kcG9pbnQiLCJzZXRFbmRwb2ludCIsIkljb25Ccm93c2UiLCJVcGxvYWRDb21wb25lbnRCcm93c2VJY29uIiwiSWNvbkNvbnRpbnVlIiwiVXBsb2FkQ29tcG9uZW50Q29udGludWVJY29uIiwiSWNvbkRlbGV0ZSIsIlVwbG9hZENvbXBvbmVudERlbGV0ZUljb24iLCJJY29uUGF1c2UiLCJVcGxvYWRDb21wb25lbnRQYXVzZUljb24iLCJJY29uVXBsb2FkIiwiVXBsb2FkQ29tcG9uZW50VXBsb2FkSWNvbiIsIkZpbGVuYW1lIiwibGVuZ3RoIiwiR2V0U3RyaW5nIiwiVXBsb2FkTm9GaWxlc1NlbGVjdGVkIiwiSGFzUXVldWVJdGVtIiwiSGFzU3VjY2Vzc1VwbG9hZCIsImZpbHRlciIsIml0bSIsInN0YXR1cyIsIklzUGF1c2VkIiwiSXNTdGF0ZVRvVXBsb2FkIiwiSXNVcGxvYWRpbmciLCJQcm9ncmVzcyIsInByb2dyZXNzIiwiY2FuY2VsIiwidXBsb2FkSWQiLCJjb250cm9sIiwiYWN0aW9uIiwiY2FuY2VsQWxsIiwibmdPbkRlc3Ryb3kiLCJsaXN0ZW5lckZuIiwibmdPbkluaXQiLCJsaXN0ZW4iLCJFcnJvciIsImluZGV4IiwiZmluZEluZGV4IiwiaXNFeHRlbnNpb25WYWxpZCIsImlzRmlsZVNpemVWYWxpZCIsInNpemUiLCJDdXN0b21BZGRWYWxpZGF0aW9uIiwicHVzaCIsIlNhY1VwbG9hZEZpbGUiLCJlbWl0Iiwic3BsaWNlIiwiU2V0VXBsb2FkVmFsdWUiLCJVcGRhdGVGaWxlQ291bnQiLCJwYXVzZSIsInBhdXNlQWxsIiwidXBsb2FkIiwidXBsb2FkQWxsIiwidmFsaWRhdGVEYXRhIiwiYyIsImVycm9yIiwicmVxdWlyZWQiLCJuZ0NvbnRyb2wiLCJ1cGxvYWRlZGZpbGVjb3VudCIsIlVwbG9hZGVkRmlsZUNvdW50IiwiZmlsZW5hbWUiLCJpc1ZhbGlkIiwiZXh0ZW5zaW9ucyIsInNwbGl0IiwiZm9yRWFjaCIsInRvTG93ZXJDYXNlIiwiZW5kc1dpdGgiLCJmaWxlc2l6ZSIsInNldEF0dHJpYnV0ZSIsInVybCIsImRlcHMiLCJpMSIsIlNhY0Zvcm1MYXlvdXRDb21tb24iLCJpMCIsIkluamVjdG9yIiwiUmVuZGVyZXIyIiwiTmdab25lIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJvdXRwdXRzIiwidmlld1F1ZXJpZXMiLCJwcm9wZXJ0eU5hbWUiLCJmaXJzdCIsInByZWRpY2F0ZSIsImRlc2NlbmRhbnRzIiwic3RhdGljIiwidXNlc0luaGVyaXRhbmNlIiwibmdJbXBvcnQiLCJkZWNvcmF0b3JzIiwiZG9jdW1lbnRpZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNldXBsb2FkY29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBOZ1pvbmUsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIElkU2VydmljZSxcclxuICBVUExPQURYX0FKQVgsXHJcbiAgVVBMT0FEWF9GQUNUT1JZX09QVElPTlMsXHJcbiAgVVBMT0FEWF9PUFRJT05TLFxyXG4gIFVwbG9hZFN0YXRlLFxyXG4gIFVwbG9hZHhPcHRpb25zLFxyXG4gIFVwbG9hZHhTZXJ2aWNlLFxyXG59IGZyb20gJ25neC11cGxvYWR4JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2NvbnRyb2xzL2xheW91dC9mb3JtbGF5b3V0JztcclxuaW1wb3J0IHsgSVNhY0ljb25TZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JU2FjSWNvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJU2FjTG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJVXBsb2FkQ29udHJvbCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaXVwbG9hZGNvbnRyb2wnO1xyXG5pbXBvcnQge1xyXG4gIFNBQ0lDT05fU0VSVklDRSxcclxuICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXHJcbiAgU2FjRGVmYXVsdEljb25TZXJ2aWNlLFxyXG4gIFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSxcclxufSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXHJcbiAgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vc2VydmljZXMvc2FjLWxvY2FsaXNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbiB9IGZyb20gJy4uL3ZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBTYWNCYXNlTW9kZWxDb250cm9sIH0gZnJvbSAnLi9iYXNlbW9kZWxjb250cm9sJztcclxuXHJcbi8vICNyZWdpb24gQ2xhc3Nlc1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgS2xhc3NlIGbDvHIgVXBsb2FkZXIgQ29udHJvbFxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTYWNVcGxvYWRCYXNlPFZBTFVFPlxyXG4gIGV4dGVuZHMgU2FjQmFzZU1vZGVsQ29udHJvbDxWQUxVRT5cclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XHJcbntcclxuICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLyoqXHJcbiAgICogRmlsZSBJbnB1dCBDb250cm9sXHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgnZmlsZXMnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIHByaXZhdGUgdXBsb2FkSW5wdXQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVybGF1YnRlIERhdGVpdHlwZW5cclxuICAgKi9cclxuICBwcml2YXRlIF9hbGxvd2VkdHlwZXM6IHN0cmluZyA9ICcqJztcclxuICAvKipcclxuICAgKiBGaWxlcyBhdXRvbWF0aXNjaCBob2NobGFkZW5cclxuICAgKi9cclxuICBwcml2YXRlIF9hdXRvdXBsb2FkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogUGF1c2llcmVuIHZvbiBVcGxvYWRzIGVybGF1YmVuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZW5hYmxlcGF1c2U6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEFQSSBFbmRwb2ludFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2VuZHBvaW50OiBzdHJpbmcgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIFVwbG9hZCBTZXR0aW5nc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgb3B0aW9uczogVXBsb2FkeE9wdGlvbnMgPSB7fTtcclxuXHJcbiAgLyoqXHJcbiAgICogaWNvbiBzZXJ2aWNlIHRvIHJlY2VpdmUgaWNvbnMgZm9yIHVwbG9hZGVyXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGljb25TZXJ2aWNlOiBJU2FjSWNvblNlcnZpY2U7XHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIFNlcnZpY2VcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgdXBsb2FkU2VydmljZTogVXBsb2FkeFNlcnZpY2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBkYXMgQ29udHJvbCBhbHMgUmVxdWlyZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaXNyZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIE1heC4gRGF0ZWlncsO2c3NlIGbDvHIgRmlsZXMgZGllIGhvY2hnZWxhZGVuIHdlcmRlbiBrw7ZubmVuLiAwIGRlYWt0aXZpZXJ0IGRlbiBGaWx0ZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbWF4ZmlsZXNpemU6IG51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGJlaSBDb250cm9sXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlcmVxdWlyZWQ6IHN0cmluZyA9XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlZhbGlkYXRpb25FcnJvclJlcXVpcmVkO1xyXG4gIC8qKlxyXG4gICAqIFJlc291cmNlIEtleSBmw7xyIFZhbGlkYXRpb24gTWVzc2FnZSBSZXF1aXJlZCBpbiBWYWxpZGF0aW9uIFN1bW1hcnlcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB2YWxpZGF0aW9ubWVzc2FnZXN1bW1hcnlyZXF1aXJlZDogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkO1xyXG4gIC8qKlxyXG4gICAqIEV2ZW50IHdlbm4gZWluIEVycm9yIGluIGRlciBLb21wb25lbnRlIGF1c2dlbMO2c3Qgd2lyZC5cclxuICAgKi9cclxuICBAT3V0cHV0KCkgcHVibGljIG9uZmlsZWVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsaW5nIHZvbiBuZXVlbiBGaWxlcyBpbSBJbnB1dCBDb250cm9sXHJcbiAgICovXHJcbiAgcHVibGljIGZpbGVMaXN0ZW5lciA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnVwbG9hZElucHV0Lm5hdGl2ZUVsZW1lbnQuZmlsZXMpIHtcclxuICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmhhbmRsZUZpbGVzKHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudC5maWxlcyk7XHJcbiAgICB9XHJcbiAgfTtcclxuICAvKipcclxuICAgKiBMaXN0ZW5lciBmw7xyIEZpbGVzXHJcbiAgICovXHJcbiAgcHVibGljIGxpc3RlbmVyRm46ICgpID0+IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogU2VydmljZSBmw7xyIEVycm9yIExvY2FsaXNhdGlvblxyXG4gICAqL1xyXG4gIHB1YmxpYyBsbmdSZXNvdXJjZVNlcnZpY2U6IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlO1xyXG4gIC8qKlxyXG4gICAqIEFycmF5IHZvbiBVcGxvYWRzXHJcbiAgICovXHJcbiAgcHVibGljIHVwbG9hZHM6IFNhY1VwbG9hZEZpbGVbXTtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICogQHBhcmFtIGZvcm1sYXlvdXQgU2FjRm9ybUxheW91dENvbW1vbiB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICogQHBhcmFtIHJlbmRlcmVyIGFuZ3VsYXIgcmVuZGVyaW5nIGVuZ2luZVxyXG4gICAqIEBwYXJhbSBuZ1pvbmUgbmd6b25lIGZvciBoYW5kbGluZyBleHRlcm5hbCBzY3JpcHRzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBmb3JtbGF5b3V0OiBTYWNGb3JtTGF5b3V0Q29tbW9uLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge1xyXG4gICAgc3VwZXIoZm9ybWxheW91dCwgaW5qZWN0b3IpO1xyXG5cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXHJcbiAgICAgIFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRWYWxpZGF0aW9uS2V5U2VydmljZSgpXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlKHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UpXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuaWNvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXHJcbiAgICAgIFNBQ0lDT05fU0VSVklDRSxcclxuICAgICAgbmV3IFNhY0RlZmF1bHRJY29uU2VydmljZSgpXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMudXBsb2FkcyA9IFtdO1xyXG5cclxuICAgIHRoaXMub3B0aW9ucy5hbGxvd2VkVHlwZXMgPSAnKic7XHJcbiAgICB0aGlzLm9wdGlvbnMuY29uY3VycmVuY3kgPSAxO1xyXG4gICAgdGhpcy5vcHRpb25zLnRva2VuID0gJ3NvbWV0b2tlbic7XHJcbiAgICB0aGlzLm9wdGlvbnMuYXV0b1VwbG9hZCA9IHRoaXMuX2F1dG91cGxvYWQ7XHJcbiAgICB0aGlzLm9wdGlvbnMud2l0aENyZWRlbnRpYWxzID0gdHJ1ZTtcclxuICAgIHRoaXMub3B0aW9ucy5jaHVua1NpemUgPSAxMDI0ICogMTYgKiA4O1xyXG4gICAgdGhpcy5vcHRpb25zLmhlYWRlcnMgPSAoZjogRmlsZSkgPT4gKHtcclxuICAgICAgJ0NvbnRlbnQtRGlzcG9zaXRpb24nOiBgZmlsZW5hbWU9JHtlbmNvZGVVUkkoZi5uYW1lKX1gLFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gSW5pdCBuZXcgU2VydmljZSBJbnN0YW5jZVxyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlID0gbmV3IFVwbG9hZHhTZXJ2aWNlKCk7XHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuaW5pdCh0aGlzLm9wdGlvbnMpO1xyXG5cclxuICAgIC8vIFN1YnNjcmlwZSBFdmVudCBmb3IgU3RhdGUgY2hhbmdlc1xyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmV2ZW50cy5zdWJzY3JpYmUoKHVmaWxlOiBVcGxvYWRTdGF0ZSkgPT5cclxuICAgICAgdGhpcy5vblVwbG9hZCh1ZmlsZSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8qKlxyXG4gICAqIEVybGF1YnRlIERhdGVpdHlwZW4gZsO8ciBkZW4gVXBsb2FkLiBGb3JtYXQ6IFwiLnh4eCwueXl5LC56enpcIlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhbGxvd2VkdHlwZXModHlwZXM6IHN0cmluZykge1xyXG4gICAgdGhpcy5fYWxsb3dlZHR5cGVzID0gdHlwZXM7XHJcbiAgICB0aGlzLnNldEFsbG93ZWRUeXBlcyh0eXBlcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaWxlcyBuYWNoIGRlciBBdXN3YWhsIGF1dG9tYXRpc2NoIGhvY2hsYWRlblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhdXRvdXBsb2FkKHY6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2F1dG91cGxvYWQgPSB2O1xyXG4gICAgdGhpcy5vcHRpb25zLmF1dG9VcGxvYWQgPSB2O1xyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbm5lY3QodGhpcy5vcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwbG9hZHMga8O2bm5lbiB1bnRlcmJyb2NoZW4gd2VyZGVuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGVuYWJsZXBhdXNlKHY6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2VuYWJsZXBhdXNlID0gdjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaWVydCBkZW4gUmVnaXN0cmF0aW9uIEVuZHBvaW50IGbDvHIgVXBsb2Fkcy5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZW5kcG9pbnQodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9lbmRwb2ludCA9IHY7XHJcbiAgICB0aGlzLnNldEVuZHBvaW50KHYpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSWNvbiBmb3IgYnJvd3NlIGJ1dHRvblxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgSWNvbkJyb3dzZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVXBsb2FkQ29tcG9uZW50QnJvd3NlSWNvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGljb24gZm9yIGNvbnRpbm91cyBidXR0b25zXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBJY29uQ29udGludWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlVwbG9hZENvbXBvbmVudENvbnRpbnVlSWNvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGljb24gZm9yIGRlbGV0ZSBidXR0b25zXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBJY29uRGVsZXRlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5VcGxvYWRDb21wb25lbnREZWxldGVJY29uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogaWNvbiBmb3IgcGF1c2UgYnV0dG9uc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgSWNvblBhdXNlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5VcGxvYWRDb21wb25lbnRQYXVzZUljb247XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBpY29uIGZvciB1cGxvYWQgYnV0dG9uXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBJY29uVXBsb2FkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5VcGxvYWRDb21wb25lbnRVcGxvYWRJY29uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhbGxvd2VkdHlwZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9hbGxvd2VkdHlwZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGF1dG91cGxvYWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXV0b3VwbG9hZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZW5hYmxlcGF1c2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW5hYmxlcGF1c2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGVuZHBvaW50KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW5kcG9pbnQ7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogTmFtZSBkZXIgRGF0ZWkgZGllIEhvY2hnZWxhZGVuIHdpcmRcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGRlcyBEYXRlaW5hbWVucy5cclxuICAgKi9cclxuICBwdWJsaWMgRmlsZW5hbWUoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIGlmICh0aGlzLnVwbG9hZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gb2YodGhpcy51cGxvYWRzWzBdLm5hbWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyhcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlVwbG9hZE5vRmlsZXNTZWxlY3RlZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBhbiBvYiBRdWV1ZSBFbGVtZW50ZSBiZWluaGFsdGV0XHJcbiAgICogQHJldHVybnMgRWxlbWVudGUgaW4gZGVyIFF1ZXVlXHJcbiAgICovXHJcbiAgcHVibGljIEhhc1F1ZXVlSXRlbSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnVwbG9hZHMubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpYnQgYW4gb2IgZWluIFVwbG9hZCBhYmdlc2NobG9zc2VuIGlzdFxyXG4gICAqIEByZXR1cm5zIFVwbG9hZCBlcmZvbGdyZWljaFxyXG4gICAqL1xyXG4gIHB1YmxpYyBIYXNTdWNjZXNzVXBsb2FkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMudXBsb2Fkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgdGhpcy51cGxvYWRzLmZpbHRlcigoaXRtKSA9PiBpdG0uc3RhdHVzICE9PSAnY29tcGxldGUnKS5sZW5ndGggPT09IDBcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByw7xmdCBvYiBlaW4gVXBsb2FkIHBhdXNpZXJ0XHJcbiAgICogQHJldHVybnMgUGF1c2llcnRlciBVcGxvYWQgaXN0IHZvcmhhbmRlblxyXG4gICAqL1xyXG4gIHB1YmxpYyBJc1BhdXNlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnVwbG9hZHMuZmlsdGVyKChpdG0pID0+IGl0bS5zdGF0dXMgPT09ICdwYXVzZWQnKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHLDvGZ0IG9iIGluIGRlciBRdWV1ZSBFbGVtZW50ZSBkaWUgenVtIFVwbG9hZCBiZXJlaXQgc2luZCB2b3JoYW5kZW4gc2luZC5cclxuICAgKiBAcmV0dXJucyBFbGVtZW50ZSBmw7xyIFVwbG9hZCB2b3JoYW5kZW5cclxuICAgKi9cclxuICBwdWJsaWMgSXNTdGF0ZVRvVXBsb2FkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy51cGxvYWRzLmZpbHRlcihcclxuICAgICAgICAoaXRtKSA9PiBpdG0uc3RhdHVzID09PSAnYWRkZWQnIHx8IGl0bS5zdGF0dXMgPT09ICdwYXVzZWQnXHJcbiAgICAgICkubGVuZ3RoID4gMFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByw7xmdCBvYiBlaW4gVXBsb2FkIGVpbmVzIEZpbGVzIGFtIGxhdWZlbiBpc3RcclxuICAgKiBAcmV0dXJucyBVcGxvYWQgaXN0IGFtIGxhdWZlblxyXG4gICAqL1xyXG4gIHB1YmxpYyBJc1VwbG9hZGluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnVwbG9hZHMuZmlsdGVyKChpdG0pID0+IGl0bS5zdGF0dXMgPT09ICd1cGxvYWRpbmcnKS5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBkZW4gVXBsb2FkZm9ydHNjaHJpdHQgenVyw7xja1xyXG4gICAqIEByZXR1cm5zIFVwbG9hZCBGb3J0c2Nocml0dC4gV2VydCB2b24gMC0xMDBcclxuICAgKi9cclxuICBwdWJsaWMgUHJvZ3Jlc3MoKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLnVwbG9hZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy51cGxvYWRzWzBdLnByb2dyZXNzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW5jZWwgc2luZ2xlIHVwbG9hZFxyXG4gICAqIEBwYXJhbSB1cGxvYWRJZCBJRCBvZiBGaWxlIHRvIGNhbmNlbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjYW5jZWwodXBsb2FkSWQpIHtcclxuICAgIHRoaXMudXBsb2FkU2VydmljZS5jb250cm9sKHsgYWN0aW9uOiAnY2FuY2VsJywgdXBsb2FkSWQ6IHVwbG9hZElkIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FuY2VsIGFsbCBVcGxvYWRlZCBmaWxlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBjYW5jZWxBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5IYXNRdWV1ZUl0ZW0oKSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuY29udHJvbCh7IGFjdGlvbjogJ2NhbmNlbCcgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXN0cm95IGRlcyBDb250cm9sc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLmxpc3RlbmVyRm4pIHtcclxuICAgICAgdGhpcy5saXN0ZW5lckZuKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXNpZXJ0IGRhcyBDb250cm9sXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIC8vIEluaXQgRXZlbnQgTGlzdGVuZXIgZm9yIElucHV0IEZpbGUgQ29udHJvbCBhbmQgSGFuZGxpbmcgRmlsZXNcclxuICAgIHRoaXMubGlzdGVuZXJGbiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxyXG4gICAgICB0aGlzLnVwbG9hZElucHV0Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICdjaGFuZ2UnLFxyXG4gICAgICB0aGlzLmZpbGVMaXN0ZW5lclxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnNldEFsbG93ZWRUeXBlcyh0aGlzLl9hbGxvd2VkdHlwZXMpO1xyXG4gICAgdGhpcy5zZXRFbmRwb2ludCh0aGlzLl9lbmRwb2ludCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX2VuZHBvaW50ID09PSBudWxsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignZW5kcG9pbnQgaXMgbm90IGRlZmluZWQhJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbm5lY3QodGhpcy5vcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwbG9hZCBFdmVudFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHVwbG9hZHNPdXRTdHJlYW0gVXBsb2FkIEl0ZW1cclxuICAgKi9cclxuICBwdWJsaWMgb25VcGxvYWQodWZpbGU6IFVwbG9hZFN0YXRlKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudXBsb2Fkcy5maW5kSW5kZXgoKGYpID0+IGYudXBsb2FkSWQgPT09IHVmaWxlLnVwbG9hZElkKTtcclxuXHJcbiAgICBpZiAodWZpbGUuc3RhdHVzID09PSAnYWRkZWQnIHx8ICh1ZmlsZS5zdGF0dXMgPT09ICdxdWV1ZScgJiYgaW5kZXggPCAwKSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5pc0V4dGVuc2lvblZhbGlkKHVmaWxlLm5hbWUpICYmXHJcbiAgICAgICAgdGhpcy5pc0ZpbGVTaXplVmFsaWQodWZpbGUuc2l6ZSkgJiZcclxuICAgICAgICB0aGlzLkN1c3RvbUFkZFZhbGlkYXRpb24odWZpbGUpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMudXBsb2Fkcy5wdXNoKG5ldyBTYWNVcGxvYWRGaWxlKHVmaWxlKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jYW5jZWwodWZpbGUudXBsb2FkSWQpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaXNFeHRlbnNpb25WYWxpZCh1ZmlsZS5uYW1lKSkge1xyXG4gICAgICAgICAgdGhpcy5vbmZpbGVlcnJvci5lbWl0KCdJTlZBTElEX0VYVEVOU0lPTicpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNGaWxlU2l6ZVZhbGlkKHVmaWxlLnNpemUpKSB7XHJcbiAgICAgICAgICB0aGlzLm9uZmlsZWVycm9yLmVtaXQoJ0lOVkFMSURfRklMRVNJWkUnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodWZpbGUuc3RhdHVzID09PSAnY2FuY2VsbGVkJykge1xyXG4gICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgIHRoaXMudXBsb2Fkcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLlNldFVwbG9hZFZhbHVlKG51bGwpO1xyXG4gICAgfSBlbHNlIGlmICh1ZmlsZS5zdGF0dXMgPT09ICdjb21wbGV0ZScpIHtcclxuICAgICAgdGhpcy51cGxvYWRzW2luZGV4XS5wcm9ncmVzcyA9IHVmaWxlLnByb2dyZXNzO1xyXG4gICAgICB0aGlzLnVwbG9hZHNbaW5kZXhdLnN0YXR1cyA9IHVmaWxlLnN0YXR1cztcclxuICAgICAgdGhpcy5TZXRVcGxvYWRWYWx1ZSh1ZmlsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICAgIHRoaXMudXBsb2Fkc1tpbmRleF0ucHJvZ3Jlc3MgPSB1ZmlsZS5wcm9ncmVzcztcclxuICAgICAgICB0aGlzLnVwbG9hZHNbaW5kZXhdLnN0YXR1cyA9IHVmaWxlLnN0YXR1cztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuVXBkYXRlRmlsZUNvdW50KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW5jZWwgU2luZ2xlIEZpbGVcclxuICAgKiBAcGFyYW0gdXBsb2FkSWQgSUQgb2YgRmlsZSB0byBDYW5jZWxcclxuICAgKi9cclxuICBwdWJsaWMgcGF1c2UodXBsb2FkSWQpIHtcclxuICAgIHRoaXMudXBsb2FkU2VydmljZS5jb250cm9sKHsgYWN0aW9uOiAncGF1c2UnLCB1cGxvYWRJZCB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhdXNlIGFsbCBVcGxvYWRzXHJcbiAgICovXHJcbiAgcHVibGljIHBhdXNlQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuSXNVcGxvYWRpbmcoKSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuY29udHJvbCh7IGFjdGlvbjogJ3BhdXNlJyB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwbG9hZCBTaW5nbGUgRmlsZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHVwbG9hZElkIElEIG9mIEZpbGUgdG8gVXBsb2FkXHJcbiAgICovXHJcbiAgcHVibGljIHVwbG9hZCh1cGxvYWRJZCkge1xyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbnRyb2woeyBhY3Rpb246ICd1cGxvYWQnLCB1cGxvYWRJZCB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwbG9hZCBhbGwgcXVldWVkIEZpbGVzXHJcbiAgICovXHJcbiAgcHVibGljIHVwbG9hZEFsbCgpIHtcclxuICAgIGlmICh0aGlzLklzU3RhdGVUb1VwbG9hZCgpID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS5jb250cm9sKHsgYWN0aW9uOiAndXBsb2FkJyB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkaWVydCBkYXMgVXBsb2FkIENvbnRyb2xcclxuICAgKiBAcGFyYW0gYyBDb250cm9sIGRhcyB2YWxpZGllcnQgd2VyZGVuIHNvbGxcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGVEYXRhKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGxldCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLmlzcmVxdWlyZWQpIHtcclxuICAgICAgZXJyb3IgPSBWYWxpZGF0aW9uLnJlcXVpcmVkKFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZCxcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkXHJcbiAgICAgICkoYyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9yO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBBYnN0cmFjdCBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZGUga2FubiBmw7xyIENvbnRyb2xzIHZlcndlbmRldCB3ZXJkZW4sIHp1c8OkdHpsaWNoZSBWYWxpZGllcnVuZ2VuIGJlaSBoaW56dWbDvGdlbiBkZXIgRmlsZXMgenUgbWFjaGVuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZmlsZSBGaWxlIGRhcyBoaW56dWdlZsO8Z3Qgd3VyZGUuXHJcbiAgICogQHJldHVybnMgVmFsZGllcnVuZyBpc3QgZXJmb2xncmVpY2hcclxuICAgKi9cclxuICBwdWJsaWMgYWJzdHJhY3QgQ3VzdG9tQWRkVmFsaWRhdGlvbihmaWxlOiBVcGxvYWRTdGF0ZSk6IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSB3ZWxjaGUgZGllIFVwbG9hZCBJRCdzIGluIGRhcyBNb2RlbCBzZXR6dCBvZGVyIGzDtnNjaHRcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmaWxlIFR5cGUgdm9uIEZpbGUgSUQnc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBhYnN0cmFjdCBTZXRVcGxvYWRWYWx1ZShmaWxlOiBVcGxvYWRTdGF0ZSk6IHZvaWQ7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEFic3RyYWN0IE1ldGhvZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQcml2YXRlIE1ldGhvZHNcclxuXHJcbiAgcHJpdmF0ZSBVcGRhdGVGaWxlQ291bnQoKTogdm9pZCB7XHJcbiAgICAvLyBIQUNLOiBBZGQgYWRkaXRpb24gcHJvcGVydHkgdG8gRm9ybUNvbnRyb2wuIENhbiBiZSBmaXhlZCBpZiBzb2x1dGlvbiBmb3IgdGlja2V0OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xOTY4NlxyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgICh0aGlzLm5nQ29udHJvbCBhcyB1bmtub3duIGFzIElVcGxvYWRDb250cm9sKS51cGxvYWRlZGZpbGVjb3VudCA9XHJcbiAgICAgICAgdGhpcy5VcGxvYWRlZEZpbGVDb3VudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIHVwbG9hZGVkIGZpbGVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBVcGxvYWRlZEZpbGVDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2Fkcy5maWx0ZXIoKGl0bSkgPT4gaXRtLnN0YXR1cyA9PT0gJ2NvbXBsZXRlJykubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHLDvGZ0IG9iIGRpZSBEYXRlaWVyd2VpdGVydW5nIGfDvGx0aWcgaXN0XHJcbiAgICpcclxuICAgKiBAcGFyYW0gZmlsZW5hbWUgRGF0ZWluYW1lXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc0V4dGVuc2lvblZhbGlkKGZpbGVuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLl9hbGxvd2VkdHlwZXMgPT09ICcqJykge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaXNWYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgY29uc3QgZXh0ZW5zaW9uczogc3RyaW5nW10gPSB0aGlzLl9hbGxvd2VkdHlwZXMuc3BsaXQoJywnKTtcclxuXHJcbiAgICBleHRlbnNpb25zLmZvckVhY2goKGl0bSkgPT4ge1xyXG4gICAgICBpZiAoZmlsZW5hbWUudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChpdG0udG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgICBpc1ZhbGlkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGlzVmFsaWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcsO8ZnQgb2IgZGFzIEZpbGUgbmljaHQgenUgZ3Jvc3MgaXN0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZpbGVzaXplIE1heCBGaWxlIFNpemUgaW4gQnl0ZXNcclxuICAgKi9cclxuICBwcml2YXRlIGlzRmlsZVNpemVWYWxpZChmaWxlc2l6ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5tYXhmaWxlc2l6ZSA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5tYXhmaWxlc2l6ZSA+PSBmaWxlc2l6ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHp0IGRpZSBlcmxhdWJ0ZW4gRGF0ZW50eXBlbiBmw7xyIGRlbiBVcGxvYWRcclxuICAgKlxyXG4gICAqIEBwYXJhbSB0eXBlcyBFcmxhdWJ0ZSBGaWxlIEV4dGVuc2lvbnNcclxuICAgKi9cclxuICBwcml2YXRlIHNldEFsbG93ZWRUeXBlcyh0eXBlczogc3RyaW5nKSB7XHJcbiAgICAvLyBQcsO8ZmVuIFVwbG9hZElucHV0IGJlcmVpdHMgZ2VsYWRlbiwgaXN0IE5VTEwgd2VubiBFeHRlbnNpb24gaW0gTWFya3VwIG5hY2ggTmdNb2RlbCBnZXNldHp0IHdpcmQuXHJcbiAgICBpZiAodGhpcy51cGxvYWRJbnB1dCAmJiB0aGlzLnVwbG9hZElucHV0Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXHJcbiAgICAgICAgdGhpcy51cGxvYWRJbnB1dC5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICdhY2NlcHQnLFxyXG4gICAgICAgIHR5cGVzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vcHRpb25zLmFsbG93ZWRUeXBlcyA9IHR5cGVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0enQgZGVuIFVwbG9hZCBFbmRwb2l0XHJcbiAgICogQHBhcmFtIHVybCBSZWdpc3RlciBVUklcclxuICAgKi9cclxuICBwcml2YXRlIHNldEVuZHBvaW50KHVybDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMuZW5kcG9pbnQgPSB1cmw7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG59XHJcblxyXG4vKipcclxuICogS2xhc3NlIGbDvHIgZGVuIFVwbG9hZCBlaW5lciBEYXRlaSBpbiBkZXIgVXBsb2FkIENvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFNhY1VwbG9hZEZpbGUge1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBEb2N1bWVudCBJRFxyXG4gICAqL1xyXG4gIHB1YmxpYyBkb2N1bWVudGlkOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogRGF0ZWluYW1lXHJcbiAgICovXHJcbiAgcHVibGljIG5hbWU6IHN0cmluZztcclxuICAvKipcclxuICAgKiBVcGxvYWQgRm9ydHNjaHJpdHRcclxuICAgKi9cclxuICBwdWJsaWMgcHJvZ3Jlc3M6IG51bWJlcjtcclxuICAvKipcclxuICAgKiBVcGxvYWQgU3RhdHVzXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXR1czogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFVwbG9hZCBJRFxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGxvYWRJZDogc3RyaW5nO1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogS29uc3RydWt0b3JcclxuICAgKiBAcGFyYW0gdWZpbGUgVXBsb2FkIFN0YXR1c1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHVmaWxlOiBVcGxvYWRTdGF0ZSkge1xyXG4gICAgdGhpcy51cGxvYWRJZCA9IHVmaWxlLnVwbG9hZElkO1xyXG4gICAgdGhpcy5uYW1lID0gdWZpbGUubmFtZTtcclxuICAgIHRoaXMucHJvZ3Jlc3MgPSB1ZmlsZS5wcm9ncmVzcztcclxuICAgIHRoaXMuc3RhdHVzID0gdWZpbGUuc3RhdHVzO1xyXG4gICAgdGhpcy5kb2N1bWVudGlkID0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcbn1cclxuXHJcbi8vICNlbmRyZWdpb24gQ2xhc3Nlc1xyXG4iXSwibWFwcGluZ3MiOiJzbWlEQXdJRTtBQUFBQSxjQUFBLFNBQUFBLENBQUEsU0FBQUMsY0FBQSxXQUFBQSxjQUFBLEVBQUFELGNBQUEsR0F4SUYsT0FDRUUsU0FBUyxDQUVUQyxZQUFZLENBRVpDLEtBQUssQ0FJTEMsTUFBTSxDQUVOQyxTQUFTLEtBQ0osZUFBZSxDQUV0QixPQU9FQyxjQUFjLEtBQ1QsYUFBYSxDQUNwQixPQUFxQkMsRUFBRSxLQUFRLE1BQU0sQ0FLckMsT0FDRUMsZUFBZSxDQUNmQyx3QkFBd0IsQ0FDeEJDLHFCQUFxQixDQUNyQkMsOEJBQThCLEtBQ3pCLGFBQWEsQ0FDcEIsT0FDRUMsdUJBQXVCLENBQ3ZCQyw2QkFBNkIsS0FDeEIsc0NBQXNDLENBQzdDLE9BQVNDLFVBQVUsS0FBUSxlQUFlLENBQzFDLE9BQVNDLG1CQUFtQixLQUFRLG9CQUFvQixDLGtGQUV4RDtBQUVBOztHQUdBLEtBQ3NCLENBQUFDLGFBQ3BCLFFBQVEsQ0FBQUQsbUJBQTBCLENBc0ZsQztBQUVBO0FBRUE7Ozs7OztPQU9BRSxZQUNFQyxVQUErQixDQUMvQkMsUUFBa0IsQ0FDVkMsUUFBbUIsQ0FDbkJD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
|
|
136
|
+
*/constructor(ufile){cov_1y8jkaecmb().f[48]++;cov_1y8jkaecmb().s[132]++;this.uploadId=ufile.uploadId;cov_1y8jkaecmb().s[133]++;this.name=ufile.name;cov_1y8jkaecmb().s[134]++;this.progress=ufile.progress;cov_1y8jkaecmb().s[135]++;this.status=ufile.status;cov_1y8jkaecmb().s[136]++;this.documentid=null;}}//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZXVwbG9hZGNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb21tb24vYmFzZXVwbG9hZGNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBRVosS0FBSyxFQUlMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQU9MLGNBQWMsR0FDZixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXRDLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsOEJBQThCLEdBQy9CLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsNkJBQTZCLEdBQzlCLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBRXpELGtCQUFrQjtBQUVsQjs7R0FFRztBQUNILE1BQ3NCLGFBQ3BCLFNBQVEsbUJBQTBCO0lBa0ZsQyx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7Ozs7T0FNRztJQUNILFlBQ0UsVUFBK0IsRUFDL0IsUUFBa0IsRUFDVixRQUFtQixFQUNuQixNQUFjO1FBRXRCLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFIcEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdEZ4Qjs7V0FFRztRQUNLLGtCQUFhLEdBQVcsR0FBRyxDQUFDO1FBQ3BDOztXQUVHO1FBQ0ssZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDckM7O1dBRUc7UUFDSyxpQkFBWSxHQUFZLElBQUksQ0FBQztRQUNyQzs7V0FFRztRQUNLLGNB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RztJQUNLLFdBQVcsQ0FBQyxHQUFXO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUM5QixDQUFDOytHQWppQm1CLGFBQWE7bUdBQWIsYUFBYTs7U0FBYixhQUFhOzRGQUFiLGFBQWE7a0JBRGxDLFNBQVM7OEtBV0EsV0FBVztzQkFEbEIsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQWdDcEIsVUFBVTtzQkFBekIsS0FBSztnQkFJVSxXQUFXO3NCQUExQixLQUFLO2dCQUlVLHlCQUF5QjtzQkFBeEMsS0FBSztnQkFNQyxnQ0FBZ0M7c0JBRHRDLEtBQUs7Z0JBTVcsV0FBVztzQkFBM0IsTUFBTTtnQkFrRkksWUFBWTtzQkFEdEIsS0FBSztnQkFVSyxVQUFVO3NCQURwQixLQUFLO2dCQVdLLFdBQVc7c0JBRHJCLEtBQUs7Z0JBU0ssUUFBUTtzQkFEbEIsS0FBSzs7QUE4WFI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQXdCeEIsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUFZLEtBQWtCO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBOZ1pvbmUsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIElkU2VydmljZSxcclxuICBVUExPQURYX0FKQVgsXHJcbiAgVVBMT0FEWF9GQUNUT1JZX09QVElPTlMsXHJcbiAgVVBMT0FEWF9PUFRJT05TLFxyXG4gIFVwbG9hZFN0YXRlLFxyXG4gIFVwbG9hZHhPcHRpb25zLFxyXG4gIFVwbG9hZHhTZXJ2aWNlLFxyXG59IGZyb20gJ25neC11cGxvYWR4JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2NvbnRyb2xzL2xheW91dC9mb3JtbGF5b3V0JztcclxuaW1wb3J0IHsgSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNMb2NhbGlzYXRpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgSVVwbG9hZENvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2l1cGxvYWRjb250cm9sJztcclxuaW1wb3J0IHtcclxuICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXHJcbiAgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlLFxyXG59IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtcclxuICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcclxuICBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSxcclxufSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtbG9jYWxpc2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG5cclxuLy8gI3JlZ2lvbiBDbGFzc2VzXHJcblxyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBVcGxvYWRlciBDb250cm9sXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY1VwbG9hZEJhc2U8VkFMVUU+XHJcbiAgZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPFZBTFVFPlxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBGaWxlIElucHV0IENvbnRyb2xcclxuICAgKi9cclxuICBAVmlld0NoaWxkKCdmaWxlcycsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHJpdmF0ZSB1cGxvYWRJbnB1dDogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICogRXJsYXVidGUgRGF0ZWl0eXBlblxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2FsbG93ZWR0eXBlczogc3RyaW5nID0gJyonO1xyXG4gIC8qKlxyXG4gICAqIEZpbGVzIGF1dG9tYXRpc2NoIGhvY2hsYWRlblxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2F1dG91cGxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBQYXVzaWVyZW4gdm9uIFVwbG9hZHMgZXJsYXViZW5cclxuICAgKi9cclxuICBwcml2YXRlIF9lbmFibGVwYXVzZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQVBJIEVuZHBvaW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZW5kcG9pbnQ6IHN0cmluZyA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIFNldHRpbmdzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvcHRpb25zOiBVcGxvYWR4T3B0aW9ucyA9IHt9O1xyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWQgU2VydmljZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCB1cGxvYWRTZXJ2aWNlOiBVcGxvYWR4U2VydmljZTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IGRhcyBDb250cm9sIGFscyBSZXF1aXJlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogTWF4LiBEYXRlaWdyw7Zzc2UgZsO8ciBGaWxlcyBkaWUgaG9jaGdlbGFkZW4gd2VyZGVuIGvDtm5uZW4uIDAgZGVha3RpdmllcnQgZGVuIEZpbHRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhmaWxlc2l6ZTogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkOiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XHJcbiAgLyoqXHJcbiAgICogRXZlbnQgd2VubiBlaW4gRXJyb3IgaW4gZGVyIEtvbXBvbmVudGUgYXVzZ2Vsw7ZzdCB3aXJkLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25maWxlZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxpbmcgdm9uIG5ldWVuIEZpbGVzIGltIElucHV0IENvbnRyb2xcclxuICAgKi9cclxuICBwdWJsaWMgZmlsZUxpc3RlbmVyID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudC5maWxlcykge1xyXG4gICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuaGFuZGxlRmlsZXModGhpcy51cGxvYWRJbnB1dC5uYXRpdmVFbGVtZW50LmZpbGVzKTtcclxuICAgIH1cclxuICB9O1xyXG4gIC8qKlxyXG4gICAqIExpc3RlbmVyIGbDvHIgRmlsZXNcclxuICAgKi9cclxuICBwdWJsaWMgbGlzdGVuZXJGbjogKCkgPT4gdm9pZDtcclxuICAvKipcclxuICAgKiBTZXJ2aWNlIGbDvHIgRXJyb3IgTG9jYWxpc2F0aW9uXHJcbiAgICovXHJcbiAgcHVibGljIGxuZ1Jlc291cmNlU2VydmljZTogSVNhY0xvY2FsaXNhdGlvblNlcnZpY2U7XHJcbiAgLyoqXHJcbiAgICogQXJyYXkgdm9uIFVwbG9hZHNcclxuICAgKi9cclxuICBwdWJsaWMgdXBsb2FkczogU2FjVXBsb2FkRmlsZVtdO1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gcmVuZGVyZXIgYW5ndWxhciByZW5kZXJpbmcgZW5naW5lXHJcbiAgICogQHBhcmFtIG5nWm9uZSBuZ3pvbmUgZm9yIGhhbmRsaW5nIGV4dGVybmFsIHNjcmlwdHNcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcblxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSA9IGluamVjdG9yLmdldChcclxuICAgICAgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLFxyXG4gICAgICBuZXcgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlKClcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXHJcbiAgICAgIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxyXG4gICAgICBuZXcgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UodGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy51cGxvYWRzID0gW107XHJcblxyXG4gICAgdGhpcy5vcHRpb25zLmFsbG93ZWRUeXBlcyA9ICcqJztcclxuICAgIHRoaXMub3B0aW9ucy5jb25jdXJyZW5jeSA9IDE7XHJcbiAgICB0aGlzLm9wdGlvbnMudG9rZW4gPSAnc29tZXRva2VuJztcclxuICAgIHRoaXMub3B0aW9ucy5hdXRvVXBsb2FkID0gdGhpcy5fYXV0b3VwbG9hZDtcclxuICAgIHRoaXMub3B0aW9ucy53aXRoQ3JlZGVudGlhbHMgPSB0cnVlO1xyXG4gICAgdGhpcy5vcHRpb25zLmNodW5rU2l6ZSA9IDEwMjQgKiAxNiAqIDg7XHJcbiAgICB0aGlzLm9wdGlvbnMuaGVhZGVycyA9IChmOiBGaWxlKSA9PiAoe1xyXG4gICAgICAnQ29udGVudC1EaXNwb3NpdGlvbic6IGBmaWxlbmFtZT0ke2VuY29kZVVSSShmLm5hbWUpfWAsXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBJbml0IG5ldyBTZXJ2aWNlIEluc3RhbmNlXHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UgPSBuZXcgVXBsb2FkeFNlcnZpY2UoKTtcclxuICAgIHRoaXMudXBsb2FkU2VydmljZS5pbml0KHRoaXMub3B0aW9ucyk7XHJcblxyXG4gICAgLy8gU3Vic2NyaXBlIEV2ZW50IGZvciBTdGF0ZSBjaGFuZ2VzXHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuZXZlbnRzLnN1YnNjcmliZSgodWZpbGU6IFVwbG9hZFN0YXRlKSA9PlxyXG4gICAgICB0aGlzLm9uVXBsb2FkKHVmaWxlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogRXJsYXVidGUgRGF0ZWl0eXBlbiBmw7xyIGRlbiBVcGxvYWQuIEZvcm1hdDogXCIueHh4LC55eXksLnp6elwiXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFsbG93ZWR0eXBlcyh0eXBlczogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hbGxvd2VkdHlwZXMgPSB0eXBlcztcclxuICAgIHRoaXMuc2V0QWxsb3dlZFR5cGVzKHR5cGVzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbGVzIG5hY2ggZGVyIEF1c3dhaGwgYXV0b21hdGlzY2ggaG9jaGxhZGVuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGF1dG91cGxvYWQodjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fYXV0b3VwbG9hZCA9IHY7XHJcbiAgICB0aGlzLm9wdGlvbnMuYXV0b1VwbG9hZCA9IHY7XHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuY29ubmVjdCh0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkcyBrw7ZubmVuIHVudGVyYnJvY2hlbiB3ZXJkZW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZW5hYmxlcGF1c2UodjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZW5hYmxlcGF1c2UgPSB2O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IGRlbiBSZWdpc3RyYXRpb24gRW5kcG9pbnQgZsO8ciBVcGxvYWRzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBlbmRwb2ludCh2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2VuZHBvaW50ID0gdjtcclxuICAgIHRoaXMuc2V0RW5kcG9pbnQodik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJY29uIGZvciBicm93c2UgYnV0dG9uXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBJY29uQnJvd3NlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5VcGxvYWRDb21wb25lbnRCcm93c2VJY29uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogaWNvbiBmb3IgY29udGlub3VzIGJ1dHRvbnNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IEljb25Db250aW51ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVXBsb2FkQ29tcG9uZW50Q29udGludWVJY29uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogaWNvbiBmb3IgZGVsZXRlIGJ1dHRvbnNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IEljb25EZWxldGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlVwbG9hZENvbXBvbmVudERlbGV0ZUljb247XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBpY29uIGZvciBwYXVzZSBidXR0b25zXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBJY29uUGF1c2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlVwbG9hZENvbXBvbmVudFBhdXNlSWNvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGljb24gZm9yIHVwbG9hZCBidXR0b25cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IEljb25VcGxvYWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlVwbG9hZENvbXBvbmVudFVwbG9hZEljb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFsbG93ZWR0eXBlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbG93ZWR0eXBlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXV0b3VwbG9hZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9hdXRvdXBsb2FkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBlbmFibGVwYXVzZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmFibGVwYXVzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZW5kcG9pbnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmRwb2ludDtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBOYW1lIGRlciBEYXRlaSBkaWUgSG9jaGdlbGFkZW4gd2lyZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgZGVzIERhdGVpbmFtZW5zLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBGaWxlbmFtZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgaWYgKHRoaXMudXBsb2Fkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBvZih0aGlzLnVwbG9hZHNbMF0ubmFtZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkTm9GaWxlc1NlbGVjdGVkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGFuIG9iIFF1ZXVlIEVsZW1lbnRlIGJlaW5oYWx0ZXRcclxuICAgKiBAcmV0dXJucyBFbGVtZW50ZSBpbiBkZXIgUXVldWVcclxuICAgKi9cclxuICBwdWJsaWMgSGFzUXVldWVJdGVtKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2Fkcy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBhbiBvYiBlaW4gVXBsb2FkIGFiZ2VzY2hsb3NzZW4gaXN0XHJcbiAgICogQHJldHVybnMgVXBsb2FkIGVyZm9sZ3JlaWNoXHJcbiAgICovXHJcbiAgcHVibGljIEhhc1N1Y2Nlc3NVcGxvYWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy51cGxvYWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICB0aGlzLnVwbG9hZHMuZmlsdGVyKChpdG0pID0+IGl0bS5zdGF0dXMgIT09ICdjb21wbGV0ZScpLmxlbmd0aCA9PT0gMFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHLDvGZ0IG9iIGVpbiBVcGxvYWQgcGF1c2llcnRcclxuICAgKiBAcmV0dXJucyBQYXVzaWVydGVyIFVwbG9hZCBpc3Qgdm9yaGFuZGVuXHJcbiAgICovXHJcbiAgcHVibGljIElzUGF1c2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2Fkcy5maWx0ZXIoKGl0bSkgPT4gaXRtLnN0YXR1cyA9PT0gJ3BhdXNlZCcpLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcsO8ZnQgb2IgaW4gZGVyIFF1ZXVlIEVsZW1lbnRlIGRpZSB6dW0gVXBsb2FkIGJlcmVpdCBzaW5kIHZvcmhhbmRlbiBzaW5kLlxyXG4gICAqIEByZXR1cm5zIEVsZW1lbnRlIGbDvHIgVXBsb2FkIHZvcmhhbmRlblxyXG4gICAqL1xyXG4gIHB1YmxpYyBJc1N0YXRlVG9VcGxvYWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnVwbG9hZHMuZmlsdGVyKFxyXG4gICAgICAgIChpdG0pID0+IGl0bS5zdGF0dXMgPT09ICdhZGRlZCcgfHwgaXRtLnN0YXR1cyA9PT0gJ3BhdXNlZCdcclxuICAgICAgKS5sZW5ndGggPiAwXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHLDvGZ0IG9iIGVpbiBVcGxvYWQgZWluZXMgRmlsZXMgYW0gbGF1ZmVuIGlzdFxyXG4gICAqIEByZXR1cm5zIFVwbG9hZCBpc3QgYW0gbGF1ZmVuXHJcbiAgICovXHJcbiAgcHVibGljIElzVXBsb2FkaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2Fkcy5maWx0ZXIoKGl0bSkgPT4gaXRtLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycpLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRlbiBVcGxvYWRmb3J0c2Nocml0dCB6dXLDvGNrXHJcbiAgICogQHJldHVybnMgVXBsb2FkIEZvcnRzY2hyaXR0LiBXZXJ0IHZvbiAwLTEwMFxyXG4gICAqL1xyXG4gIHB1YmxpYyBQcm9ncmVzcygpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMudXBsb2Fkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVwbG9hZHNbMF0ucHJvZ3Jlc3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbmNlbCBzaW5nbGUgdXBsb2FkXHJcbiAgICogQHBhcmFtIHVwbG9hZElkIElEIG9mIEZpbGUgdG8gY2FuY2VsXHJcbiAgICovXHJcbiAgcHVibGljIGNhbmNlbCh1cGxvYWRJZCkge1xyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbnRyb2woeyBhY3Rpb246ICdjYW5jZWwnLCB1cGxvYWRJZDogdXBsb2FkSWQgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW5jZWwgYWxsIFVwbG9hZGVkIGZpbGVzXHJcbiAgICovXHJcbiAgcHVibGljIGNhbmNlbEFsbCgpIHtcclxuICAgIGlmICh0aGlzLkhhc1F1ZXVlSXRlbSgpID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS5jb250cm9sKHsgYWN0aW9uOiAnY2FuY2VsJyB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlc3Ryb3kgZGVzIENvbnRyb2xzXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMubGlzdGVuZXJGbikge1xyXG4gICAgICB0aGlzLmxpc3RlbmVyRm4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpc2llcnQgZGFzIENvbnRyb2xcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgLy8gSW5pdCBFdmVudCBMaXN0ZW5lciBmb3IgSW5wdXQgRmlsZSBDb250cm9sIGFuZCBIYW5kbGluZyBGaWxlc1xyXG4gICAgdGhpcy5saXN0ZW5lckZuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXHJcbiAgICAgIHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudCxcclxuICAgICAgJ2NoYW5nZScsXHJcbiAgICAgIHRoaXMuZmlsZUxpc3RlbmVyXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuc2V0QWxsb3dlZFR5cGVzKHRoaXMuX2FsbG93ZWR0eXBlcyk7XHJcbiAgICB0aGlzLnNldEVuZHBvaW50KHRoaXMuX2VuZHBvaW50KTtcclxuXHJcbiAgICBpZiAodGhpcy5fZW5kcG9pbnQgPT09IG51bGwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdlbmRwb2ludCBpcyBub3QgZGVmaW5lZCEnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuY29ubmVjdCh0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIEV2ZW50XHJcbiAgICpcclxuICAgKiBAcGFyYW0gdXBsb2Fkc091dFN0cmVhbSBVcGxvYWQgSXRlbVxyXG4gICAqL1xyXG4gIHB1YmxpYyBvblVwbG9hZCh1ZmlsZTogVXBsb2FkU3RhdGUpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy51cGxvYWRzLmZpbmRJbmRleCgoZikgPT4gZi51cGxvYWRJZCA9PT0gdWZpbGUudXBsb2FkSWQpO1xyXG5cclxuICAgIGlmICh1ZmlsZS5zdGF0dXMgPT09ICdhZGRlZCcgfHwgKHVmaWxlLnN0YXR1cyA9PT0gJ3F1ZXVlJyAmJiBpbmRleCA8IDApKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmlzRXh0ZW5zaW9uVmFsaWQodWZpbGUubmFtZSkgJiZcclxuICAgICAgICB0aGlzLmlzRmlsZVNpemVWYWxpZCh1ZmlsZS5zaXplKSAmJlxyXG4gICAgICAgIHRoaXMuQ3VzdG9tQWRkVmFsaWRhdGlvbih1ZmlsZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRzLnB1c2gobmV3IFNhY1VwbG9hZEZpbGUodWZpbGUpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNhbmNlbCh1ZmlsZS51cGxvYWRJZCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc0V4dGVuc2lvblZhbGlkKHVmaWxlLm5hbWUpKSB7XHJcbiAgICAgICAgICB0aGlzLm9uZmlsZWVycm9yLmVtaXQoJ0lOVkFMSURfRVhURU5TSU9OJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5pc0ZpbGVTaXplVmFsaWQodWZpbGUuc2l6ZSkpIHtcclxuICAgICAgICAgIHRoaXMub25maWxlZXJyb3IuZW1pdCgnSU5WQUxJRF9GSUxFU0laRScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh1ZmlsZS5zdGF0dXMgPT09ICdjYW5jZWxsZWQnKSB7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuU2V0VXBsb2FkVmFsdWUobnVsbCk7XHJcbiAgICB9IGVsc2UgaWYgKHVmaWxlLnN0YXR1cyA9PT0gJ2NvbXBsZXRlJykge1xyXG4gICAgICB0aGlzLnVwbG9hZHNbaW5kZXhdLnByb2dyZXNzID0gdWZpbGUucHJvZ3Jlc3M7XHJcbiAgICAgIHRoaXMudXBsb2Fkc1tpbmRleF0uc3RhdHVzID0gdWZpbGUuc3RhdHVzO1xyXG4gICAgICB0aGlzLlNldFVwbG9hZFZhbHVlKHVmaWxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRzW2luZGV4XS5wcm9ncmVzcyA9IHVmaWxlLnByb2dyZXNzO1xyXG4gICAgICAgIHRoaXMudXBsb2Fkc1tpbmRleF0uc3RhdHVzID0gdWZpbGUuc3RhdHVzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5VcGRhdGVGaWxlQ291bnQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbmNlbCBTaW5nbGUgRmlsZVxyXG4gICAqIEBwYXJhbSB1cGxvYWRJZCBJRCBvZiBGaWxlIHRvIENhbmNlbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwYXVzZSh1cGxvYWRJZCkge1xyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbnRyb2woeyBhY3Rpb246ICdwYXVzZScsIHVwbG9hZElkIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGF1c2UgYWxsIFVwbG9hZHNcclxuICAgKi9cclxuICBwdWJsaWMgcGF1c2VBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5Jc1VwbG9hZGluZygpID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS5jb250cm9sKHsgYWN0aW9uOiAncGF1c2UnIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIFNpbmdsZSBGaWxlXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdXBsb2FkSWQgSUQgb2YgRmlsZSB0byBVcGxvYWRcclxuICAgKi9cclxuICBwdWJsaWMgdXBsb2FkKHVwbG9hZElkKSB7XHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuY29udHJvbCh7IGFjdGlvbjogJ3VwbG9hZCcsIHVwbG9hZElkIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIGFsbCBxdWV1ZWQgRmlsZXNcclxuICAgKi9cclxuICBwdWJsaWMgdXBsb2FkQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuSXNTdGF0ZVRvVXBsb2FkKCkgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbnRyb2woeyBhY3Rpb246ICd1cGxvYWQnIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IGRhcyBVcGxvYWQgQ29udHJvbFxyXG4gICAqIEBwYXJhbSBjIENvbnRyb2wgZGFzIHZhbGlkaWVydCB3ZXJkZW4gc29sbFxyXG4gICAqL1xyXG4gIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xyXG4gICAgICBlcnJvciA9IFZhbGlkYXRpb24ucmVxdWlyZWQoXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWRcclxuICAgICAgKShjKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3I7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEFic3RyYWN0IE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSBrYW5uIGbDvHIgQ29udHJvbHMgdmVyd2VuZGV0IHdlcmRlbiwgenVzw6R0emxpY2hlIFZhbGlkaWVydW5nZW4gYmVpIGhpbnp1ZsO8Z2VuIGRlciBGaWxlcyB6dSBtYWNoZW5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmaWxlIEZpbGUgZGFzIGhpbnp1Z2Vmw7xndCB3dXJkZS5cclxuICAgKiBAcmV0dXJucyBWYWxkaWVydW5nIGlzdCBlcmZvbGdyZWljaFxyXG4gICAqL1xyXG4gIHB1YmxpYyBhYnN0cmFjdCBDdXN0b21BZGRWYWxpZGF0aW9uKGZpbGU6IFVwbG9hZFN0YXRlKTogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBNZXRob2RlIHdlbGNoZSBkaWUgVXBsb2FkIElEJ3MgaW4gZGFzIE1vZGVsIHNldHp0IG9kZXIgbMO2c2NodFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZpbGUgVHlwZSB2b24gRmlsZSBJRCdzXHJcbiAgICovXHJcbiAgcHVibGljIGFic3RyYWN0IFNldFVwbG9hZFZhbHVlKGZpbGU6IFVwbG9hZFN0YXRlKTogdm9pZDtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgQWJzdHJhY3QgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG5cclxuICBwcml2YXRlIFVwZGF0ZUZpbGVDb3VudCgpOiB2b2lkIHtcclxuICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSVVwbG9hZENvbnRyb2wpLnVwbG9hZGVkZmlsZWNvdW50ID1cclxuICAgICAgICB0aGlzLlVwbG9hZGVkRmlsZUNvdW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdXBsb2FkZWQgZmlsZXNcclxuICAgKi9cclxuICBwcml2YXRlIFVwbG9hZGVkRmlsZUNvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy51cGxvYWRzLmZpbHRlcigoaXRtKSA9PiBpdG0uc3RhdHVzID09PSAnY29tcGxldGUnKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcsO8ZnQgb2IgZGllIERhdGVpZXJ3ZWl0ZXJ1bmcgZ8O8bHRpZyBpc3RcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmaWxlbmFtZSBEYXRlaW5hbWVcclxuICAgKi9cclxuICBwcml2YXRlIGlzRXh0ZW5zaW9uVmFsaWQoZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuX2FsbG93ZWR0eXBlcyA9PT0gJyonKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpc1ZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBjb25zdCBleHRlbnNpb25zOiBzdHJpbmdbXSA9IHRoaXMuX2FsbG93ZWR0eXBlcy5zcGxpdCgnLCcpO1xyXG5cclxuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoaXRtKSA9PiB7XHJcbiAgICAgIGlmIChmaWxlbmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGl0bS50b0xvd2VyQ2FzZSgpKSkge1xyXG4gICAgICAgIGlzVmFsaWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gaXNWYWxpZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByw7xmdCBvYiBkYXMgRmlsZSBuaWNodCB6dSBncm9zcyBpc3QuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZmlsZXNpemUgTWF4IEZpbGUgU2l6ZSBpbiBCeXRlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgaXNGaWxlU2l6ZVZhbGlkKGZpbGVzaXplOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLm1heGZpbGVzaXplID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLm1heGZpbGVzaXplID49IGZpbGVzaXplO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0enQgZGllIGVybGF1YnRlbiBEYXRlbnR5cGVuIGbDvHIgZGVuIFVwbG9hZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHR5cGVzIEVybGF1YnRlIEZpbGUgRXh0ZW5zaW9uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0QWxsb3dlZFR5cGVzKHR5cGVzOiBzdHJpbmcpIHtcclxuICAgIC8vIFByw7xmZW4gVXBsb2FkSW5wdXQgYmVyZWl0cyBnZWxhZGVuLCBpc3QgTlVMTCB3ZW5uIEV4dGVuc2lvbiBpbSBNYXJrdXAgbmFjaCBOZ01vZGVsIGdlc2V0enQgd2lyZC5cclxuICAgIGlmICh0aGlzLnVwbG9hZElucHV0ICYmIHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcclxuICAgICAgICB0aGlzLnVwbG9hZElucHV0Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgJ2FjY2VwdCcsXHJcbiAgICAgICAgdHlwZXNcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9wdGlvbnMuYWxsb3dlZFR5cGVzID0gdHlwZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXR6dCBkZW4gVXBsb2FkIEVuZHBvaXRcclxuICAgKiBAcGFyYW0gdXJsIFJlZ2lzdGVyIFVSSVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0RW5kcG9pbnQodXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3B0aW9ucy5lbmRwb2ludCA9IHVybDtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBLbGFzc2UgZsO8ciBkZW4gVXBsb2FkIGVpbmVyIERhdGVpIGluIGRlciBVcGxvYWQgQ29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2FjVXBsb2FkRmlsZSB7XHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIERvY3VtZW50IElEXHJcbiAgICovXHJcbiAgcHVibGljIGRvY3VtZW50aWQ6IHN0cmluZztcclxuICAvKipcclxuICAgKiBEYXRlaW5hbWVcclxuICAgKi9cclxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFVwbG9hZCBGb3J0c2Nocml0dFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwcm9ncmVzczogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIFVwbG9hZCBTdGF0dXNcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdHVzOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIElEXHJcbiAgICovXHJcbiAgcHVibGljIHVwbG9hZElkOiBzdHJpbmc7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBLb25zdHJ1a3RvclxyXG4gICAqIEBwYXJhbSB1ZmlsZSBVcGxvYWQgU3RhdHVzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IodWZpbGU6IFVwbG9hZFN0YXRlKSB7XHJcbiAgICB0aGlzLnVwbG9hZElkID0gdWZpbGUudXBsb2FkSWQ7XHJcbiAgICB0aGlzLm5hbWUgPSB1ZmlsZS5uYW1lO1xyXG4gICAgdGhpcy5wcm9ncmVzcyA9IHVmaWxlLnByb2dyZXNzO1xyXG4gICAgdGhpcy5zdGF0dXMgPSB1ZmlsZS5zdGF0dXM7XHJcbiAgICB0aGlzLmRvY3VtZW50aWQgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxufVxyXG5cclxuLy8gI2VuZHJlZ2lvbiBDbGFzc2VzXHJcbiJdfQ==
|
|
137
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMXk4amthZWNtYiIsImFjdHVhbENvdmVyYWdlIiwiRGlyZWN0aXZlIiwiRXZlbnRFbWl0dGVyIiwiSW5wdXQiLCJPdXRwdXQiLCJWaWV3Q2hpbGQiLCJVcGxvYWR4U2VydmljZSIsIm9mIiwiU0FDVkFMSURBVElPTktFWV9TRVJWSUNFIiwiU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlIiwiU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UiLCJTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSIsIlZhbGlkYXRpb24iLCJTYWNCYXNlTW9kZWxDb250cm9sIiwiU2FjVXBsb2FkQmFzZSIsImNvbnN0cnVjdG9yIiwiZm9ybWxheW91dCIsImluamVjdG9yIiwicmVuZGVyZXIiLCJuZ1pvbmUiLCJmIiwicyIsIl9hbGxvd2VkdHlwZXMiLCJfYXV0b3VwbG9hZCIsIl9lbmFibGVwYXVzZSIsIl9lbmRwb2ludCIsIm9wdGlvbnMiLCJpc3JlcXVpcmVkIiwibWF4ZmlsZXNpemUiLCJ2YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkIiwidmFsaWRhdGlvbktleVNlcnZpY2UiLCJWYWxpZGF0aW9uRXJyb3JSZXF1aXJlZCIsInZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkIiwiVmFsaWRhdGlvbkVycm9yU3VtbWFyeVJlcXVpcmVkIiwib25maWxlZXJyb3IiLCJmaWxlTGlzdGVuZXIiLCJ1cGxvYWRJbnB1dCIsIm5hdGl2ZUVsZW1lbnQiLCJmaWxlcyIsImIiLCJ1cGxvYWRTZXJ2aWNlIiwiaGFuZGxlRmlsZXMiLCJnZXQiLCJsbmdSZXNvdXJjZVNlcnZpY2UiLCJ1cGxvYWRzIiwiYWxsb3dlZFR5cGVzIiwiY29uY3VycmVuY3kiLCJ0b2tlbiIsImF1dG9VcGxvYWQiLCJ3aXRoQ3JlZGVudGlhbHMiLCJjaHVua1NpemUiLCJoZWFkZXJzIiwiZW5jb2RlVVJJIiwibmFtZSIsImluaXQiLCJldmVudHMiLCJzdWJzY3JpYmUiLCJ1ZmlsZSIsIm9uVXBsb2FkIiwiYWxsb3dlZHR5cGVzIiwidHlwZXMiLCJzZXRBbGxvd2VkVHlwZXMiLCJhdXRvdXBsb2FkIiwidiIsImNvbm5lY3QiLCJlbmFibGVwYXVzZSIsImVuZHBvaW50Iiwic2V0RW5kcG9pbnQiLCJJY29uQnJvd3NlIiwiaWNvblNlcnZpY2UiLCJVcGxvYWRDb21wb25lbnRCcm93c2VJY29uIiwiSWNvbkNvbnRpbnVlIiwiVXBsb2FkQ29tcG9uZW50Q29udGludWVJY29uIiwiSWNvbkRlbGV0ZSIsIlVwbG9hZENvbXBvbmVudERlbGV0ZUljb24iLCJJY29uUGF1c2UiLCJVcGxvYWRDb21wb25lbnRQYXVzZUljb24iLCJJY29uVXBsb2FkIiwiVXBsb2FkQ29tcG9uZW50VXBsb2FkSWNvbiIsIkZpbGVuYW1lIiwibGVuZ3RoIiwiR2V0U3RyaW5nIiwiVXBsb2FkTm9GaWxlc1NlbGVjdGVkIiwiSGFzUXVldWVJdGVtIiwiSGFzU3VjY2Vzc1VwbG9hZCIsImZpbHRlciIsIml0bSIsInN0YXR1cyIsIklzUGF1c2VkIiwiSXNTdGF0ZVRvVXBsb2FkIiwiSXNVcGxvYWRpbmciLCJQcm9ncmVzcyIsInByb2dyZXNzIiwiY2FuY2VsIiwidXBsb2FkSWQiLCJjb250cm9sIiwiYWN0aW9uIiwiY2FuY2VsQWxsIiwibmdPbkRlc3Ryb3kiLCJsaXN0ZW5lckZuIiwibmdPbkluaXQiLCJsaXN0ZW4iLCJFcnJvciIsImluZGV4IiwiZmluZEluZGV4IiwiaXNFeHRlbnNpb25WYWxpZCIsImlzRmlsZVNpemVWYWxpZCIsInNpemUiLCJDdXN0b21BZGRWYWxpZGF0aW9uIiwicHVzaCIsIlNhY1VwbG9hZEZpbGUiLCJlbWl0Iiwic3BsaWNlIiwiU2V0VXBsb2FkVmFsdWUiLCJVcGRhdGVGaWxlQ291bnQiLCJwYXVzZSIsInBhdXNlQWxsIiwidXBsb2FkIiwidXBsb2FkQWxsIiwidmFsaWRhdGVEYXRhIiwiYyIsImVycm9yIiwicmVxdWlyZWQiLCJuZ0NvbnRyb2wiLCJ1cGxvYWRlZGZpbGVjb3VudCIsIlVwbG9hZGVkRmlsZUNvdW50IiwiZmlsZW5hbWUiLCJpc1ZhbGlkIiwiZXh0ZW5zaW9ucyIsInNwbGl0IiwiZm9yRWFjaCIsInRvTG93ZXJDYXNlIiwiZW5kc1dpdGgiLCJmaWxlc2l6ZSIsInNldEF0dHJpYnV0ZSIsInVybCIsImRlcHMiLCJpMSIsIlNhY0Zvcm1MYXlvdXRDb21tb24iLCJpMCIsIkluamVjdG9yIiwiUmVuZGVyZXIyIiwiTmdab25lIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJvdXRwdXRzIiwidmlld1F1ZXJpZXMiLCJwcm9wZXJ0eU5hbWUiLCJmaXJzdCIsInByZWRpY2F0ZSIsImRlc2NlbmRhbnRzIiwic3RhdGljIiwidXNlc0luaGVyaXRhbmNlIiwibmdJbXBvcnQiLCJkZWNvcmF0b3JzIiwiZG9jdW1lbnRpZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbW1vbi9iYXNldXBsb2FkY29udHJvbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBOZ1pvbmUsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIElkU2VydmljZSxcclxuICBVUExPQURYX0FKQVgsXHJcbiAgVVBMT0FEWF9GQUNUT1JZX09QVElPTlMsXHJcbiAgVVBMT0FEWF9PUFRJT05TLFxyXG4gIFVwbG9hZFN0YXRlLFxyXG4gIFVwbG9hZHhPcHRpb25zLFxyXG4gIFVwbG9hZHhTZXJ2aWNlLFxyXG59IGZyb20gJ25neC11cGxvYWR4JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2FjRm9ybUxheW91dENvbW1vbiB9IGZyb20gJy4uL2NvbnRyb2xzL2xheW91dC9mb3JtbGF5b3V0JztcclxuaW1wb3J0IHsgSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lTYWNMb2NhbGlzYXRpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgSVVwbG9hZENvbnRyb2wgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2l1cGxvYWRjb250cm9sJztcclxuaW1wb3J0IHtcclxuICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXHJcbiAgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlLFxyXG59IGZyb20gJy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtcclxuICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcclxuICBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSxcclxufSBmcm9tICcuLi9zZXJ2aWNlcy9zYWMtbG9jYWxpc2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uIH0gZnJvbSAnLi4vdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IFNhY0Jhc2VNb2RlbENvbnRyb2wgfSBmcm9tICcuL2Jhc2Vtb2RlbGNvbnRyb2wnO1xyXG5cclxuLy8gI3JlZ2lvbiBDbGFzc2VzXHJcblxyXG4vKipcclxuICogQmFzZSBLbGFzc2UgZsO8ciBVcGxvYWRlciBDb250cm9sXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY1VwbG9hZEJhc2U8VkFMVUU+XHJcbiAgZXh0ZW5kcyBTYWNCYXNlTW9kZWxDb250cm9sPFZBTFVFPlxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gIC8vICNyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvKipcclxuICAgKiBGaWxlIElucHV0IENvbnRyb2xcclxuICAgKi9cclxuICBAVmlld0NoaWxkKCdmaWxlcycsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHJpdmF0ZSB1cGxvYWRJbnB1dDogRWxlbWVudFJlZjtcclxuXHJcbiAgLyoqXHJcbiAgICogRXJsYXVidGUgRGF0ZWl0eXBlblxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2FsbG93ZWR0eXBlczogc3RyaW5nID0gJyonO1xyXG4gIC8qKlxyXG4gICAqIEZpbGVzIGF1dG9tYXRpc2NoIGhvY2hsYWRlblxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2F1dG91cGxvYWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBQYXVzaWVyZW4gdm9uIFVwbG9hZHMgZXJsYXViZW5cclxuICAgKi9cclxuICBwcml2YXRlIF9lbmFibGVwYXVzZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQVBJIEVuZHBvaW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfZW5kcG9pbnQ6IHN0cmluZyA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIFNldHRpbmdzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvcHRpb25zOiBVcGxvYWR4T3B0aW9ucyA9IHt9O1xyXG5cclxuICAvKipcclxuICAgKiBVcGxvYWQgU2VydmljZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCB1cGxvYWRTZXJ2aWNlOiBVcGxvYWR4U2VydmljZTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IGRhcyBDb250cm9sIGFscyBSZXF1aXJlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogTWF4LiBEYXRlaWdyw7Zzc2UgZsO8ciBGaWxlcyBkaWUgaG9jaGdlbGFkZW4gd2VyZGVuIGvDtm5uZW4uIDAgZGVha3RpdmllcnQgZGVuIEZpbHRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhmaWxlc2l6ZTogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBSZXNvdXJjZSBLZXkgZsO8ciBWYWxpZGF0aW9uIE1lc3NhZ2UgUmVxdWlyZWQgYmVpIENvbnRyb2xcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbm1lc3NhZ2VyZXF1aXJlZDogc3RyaW5nID1cclxuICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVmFsaWRhdGlvbkVycm9yUmVxdWlyZWQ7XHJcbiAgLyoqXHJcbiAgICogUmVzb3VyY2UgS2V5IGbDvHIgVmFsaWRhdGlvbiBNZXNzYWdlIFJlcXVpcmVkIGluIFZhbGlkYXRpb24gU3VtbWFyeVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHZhbGlkYXRpb25tZXNzYWdlc3VtbWFyeXJlcXVpcmVkOiBzdHJpbmcgPVxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZS5WYWxpZGF0aW9uRXJyb3JTdW1tYXJ5UmVxdWlyZWQ7XHJcbiAgLyoqXHJcbiAgICogRXZlbnQgd2VubiBlaW4gRXJyb3IgaW4gZGVyIEtvbXBvbmVudGUgYXVzZ2Vsw7ZzdCB3aXJkLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25maWxlZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxpbmcgdm9uIG5ldWVuIEZpbGVzIGltIElucHV0IENvbnRyb2xcclxuICAgKi9cclxuICBwdWJsaWMgZmlsZUxpc3RlbmVyID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudC5maWxlcykge1xyXG4gICAgICB0aGlzLnVwbG9hZFNlcnZpY2UuaGFuZGxlRmlsZXModGhpcy51cGxvYWRJbnB1dC5uYXRpdmVFbGVtZW50LmZpbGVzKTtcclxuICAgIH1cclxuICB9O1xyXG4gIC8qKlxyXG4gICAqIExpc3RlbmVyIGbDvHIgRmlsZXNcclxuICAgKi9cclxuICBwdWJsaWMgbGlzdGVuZXJGbjogKCkgPT4gdm9pZDtcclxuICAvKipcclxuICAgKiBTZXJ2aWNlIGbDvHIgRXJyb3IgTG9jYWxpc2F0aW9uXHJcbiAgICovXHJcbiAgcHVibGljIGxuZ1Jlc291cmNlU2VydmljZTogSVNhY0xvY2FsaXNhdGlvblNlcnZpY2U7XHJcbiAgLyoqXHJcbiAgICogQXJyYXkgdm9uIFVwbG9hZHNcclxuICAgKi9cclxuICBwdWJsaWMgdXBsb2FkczogU2FjVXBsb2FkRmlsZVtdO1xyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcclxuXHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybWxheW91dCBTYWNGb3JtTGF5b3V0Q29tbW9uIHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gcmVuZGVyZXIgYW5ndWxhciByZW5kZXJpbmcgZW5naW5lXHJcbiAgICogQHBhcmFtIG5nWm9uZSBuZ3pvbmUgZm9yIGhhbmRsaW5nIGV4dGVybmFsIHNjcmlwdHNcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGZvcm1sYXlvdXQ6IFNhY0Zvcm1MYXlvdXRDb21tb24sXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtbGF5b3V0LCBpbmplY3Rvcik7XHJcblxyXG4gICAgdGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSA9IGluamVjdG9yLmdldChcclxuICAgICAgU0FDVkFMSURBVElPTktFWV9TRVJWSUNFLFxyXG4gICAgICBuZXcgU2FjRGVmYXVsdFZhbGlkYXRpb25LZXlTZXJ2aWNlKClcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXHJcbiAgICAgIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxyXG4gICAgICBuZXcgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UodGhpcy52YWxpZGF0aW9uS2V5U2VydmljZSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy51cGxvYWRzID0gW107XHJcblxyXG4gICAgdGhpcy5vcHRpb25zLmFsbG93ZWRUeXBlcyA9ICcqJztcclxuICAgIHRoaXMub3B0aW9ucy5jb25jdXJyZW5jeSA9IDE7XHJcbiAgICB0aGlzLm9wdGlvbnMudG9rZW4gPSAnc29tZXRva2VuJztcclxuICAgIHRoaXMub3B0aW9ucy5hdXRvVXBsb2FkID0gdGhpcy5fYXV0b3VwbG9hZDtcclxuICAgIHRoaXMub3B0aW9ucy53aXRoQ3JlZGVudGlhbHMgPSB0cnVlO1xyXG4gICAgdGhpcy5vcHRpb25zLmNodW5rU2l6ZSA9IDEwMjQgKiAxNiAqIDg7XHJcbiAgICB0aGlzLm9wdGlvbnMuaGVhZGVycyA9IChmOiBGaWxlKSA9PiAoe1xyXG4gICAgICAnQ29udGVudC1EaXNwb3NpdGlvbic6IGBmaWxlbmFtZT0ke2VuY29kZVVSSShmLm5hbWUpfWAsXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBJbml0IG5ldyBTZXJ2aWNlIEluc3RhbmNlXHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UgPSBuZXcgVXBsb2FkeFNlcnZpY2UoKTtcclxuICAgIHRoaXMudXBsb2FkU2VydmljZS5pbml0KHRoaXMub3B0aW9ucyk7XHJcblxyXG4gICAgLy8gU3Vic2NyaXBlIEV2ZW50IGZvciBTdGF0ZSBjaGFuZ2VzXHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuZXZlbnRzLnN1YnNjcmliZSgodWZpbGU6IFVwbG9hZFN0YXRlKSA9PlxyXG4gICAgICB0aGlzLm9uVXBsb2FkKHVmaWxlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogRXJsYXVidGUgRGF0ZWl0eXBlbiBmw7xyIGRlbiBVcGxvYWQuIEZvcm1hdDogXCIueHh4LC55eXksLnp6elwiXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFsbG93ZWR0eXBlcyh0eXBlczogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9hbGxvd2VkdHlwZXMgPSB0eXBlcztcclxuICAgIHRoaXMuc2V0QWxsb3dlZFR5cGVzKHR5cGVzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbGVzIG5hY2ggZGVyIEF1c3dhaGwgYXV0b21hdGlzY2ggaG9jaGxhZGVuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGF1dG91cGxvYWQodjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fYXV0b3VwbG9hZCA9IHY7XHJcbiAgICB0aGlzLm9wdGlvbnMuYXV0b1VwbG9hZCA9IHY7XHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuY29ubmVjdCh0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkcyBrw7ZubmVuIHVudGVyYnJvY2hlbiB3ZXJkZW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZW5hYmxlcGF1c2UodjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZW5hYmxlcGF1c2UgPSB2O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pZXJ0IGRlbiBSZWdpc3RyYXRpb24gRW5kcG9pbnQgZsO8ciBVcGxvYWRzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBlbmRwb2ludCh2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2VuZHBvaW50ID0gdjtcclxuICAgIHRoaXMuc2V0RW5kcG9pbnQodik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJY29uIGZvciBicm93c2UgYnV0dG9uXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBJY29uQnJvd3NlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pY29uU2VydmljZS5VcGxvYWRDb21wb25lbnRCcm93c2VJY29uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogaWNvbiBmb3IgY29udGlub3VzIGJ1dHRvbnNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IEljb25Db250aW51ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuVXBsb2FkQ29tcG9uZW50Q29udGludWVJY29uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogaWNvbiBmb3IgZGVsZXRlIGJ1dHRvbnNcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IEljb25EZWxldGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlVwbG9hZENvbXBvbmVudERlbGV0ZUljb247XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBpY29uIGZvciBwYXVzZSBidXR0b25zXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBJY29uUGF1c2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlVwbG9hZENvbXBvbmVudFBhdXNlSWNvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGljb24gZm9yIHVwbG9hZCBidXR0b25cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IEljb25VcGxvYWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmljb25TZXJ2aWNlLlVwbG9hZENvbXBvbmVudFVwbG9hZEljb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFsbG93ZWR0eXBlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbG93ZWR0eXBlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXV0b3VwbG9hZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9hdXRvdXBsb2FkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBlbmFibGVwYXVzZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmFibGVwYXVzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZW5kcG9pbnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmRwb2ludDtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLy8gI3JlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvKipcclxuICAgKiBOYW1lIGRlciBEYXRlaSBkaWUgSG9jaGdlbGFkZW4gd2lyZFxyXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgZGVzIERhdGVpbmFtZW5zLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBGaWxlbmFtZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgaWYgKHRoaXMudXBsb2Fkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBvZih0aGlzLnVwbG9hZHNbMF0ubmFtZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbktleVNlcnZpY2UuVXBsb2FkTm9GaWxlc1NlbGVjdGVkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGFuIG9iIFF1ZXVlIEVsZW1lbnRlIGJlaW5oYWx0ZXRcclxuICAgKiBAcmV0dXJucyBFbGVtZW50ZSBpbiBkZXIgUXVldWVcclxuICAgKi9cclxuICBwdWJsaWMgSGFzUXVldWVJdGVtKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2Fkcy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBhbiBvYiBlaW4gVXBsb2FkIGFiZ2VzY2hsb3NzZW4gaXN0XHJcbiAgICogQHJldHVybnMgVXBsb2FkIGVyZm9sZ3JlaWNoXHJcbiAgICovXHJcbiAgcHVibGljIEhhc1N1Y2Nlc3NVcGxvYWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy51cGxvYWRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICB0aGlzLnVwbG9hZHMuZmlsdGVyKChpdG0pID0+IGl0bS5zdGF0dXMgIT09ICdjb21wbGV0ZScpLmxlbmd0aCA9PT0gMFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHLDvGZ0IG9iIGVpbiBVcGxvYWQgcGF1c2llcnRcclxuICAgKiBAcmV0dXJucyBQYXVzaWVydGVyIFVwbG9hZCBpc3Qgdm9yaGFuZGVuXHJcbiAgICovXHJcbiAgcHVibGljIElzUGF1c2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2Fkcy5maWx0ZXIoKGl0bSkgPT4gaXRtLnN0YXR1cyA9PT0gJ3BhdXNlZCcpLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcsO8ZnQgb2IgaW4gZGVyIFF1ZXVlIEVsZW1lbnRlIGRpZSB6dW0gVXBsb2FkIGJlcmVpdCBzaW5kIHZvcmhhbmRlbiBzaW5kLlxyXG4gICAqIEByZXR1cm5zIEVsZW1lbnRlIGbDvHIgVXBsb2FkIHZvcmhhbmRlblxyXG4gICAqL1xyXG4gIHB1YmxpYyBJc1N0YXRlVG9VcGxvYWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnVwbG9hZHMuZmlsdGVyKFxyXG4gICAgICAgIChpdG0pID0+IGl0bS5zdGF0dXMgPT09ICdhZGRlZCcgfHwgaXRtLnN0YXR1cyA9PT0gJ3BhdXNlZCdcclxuICAgICAgKS5sZW5ndGggPiAwXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHLDvGZ0IG9iIGVpbiBVcGxvYWQgZWluZXMgRmlsZXMgYW0gbGF1ZmVuIGlzdFxyXG4gICAqIEByZXR1cm5zIFVwbG9hZCBpc3QgYW0gbGF1ZmVuXHJcbiAgICovXHJcbiAgcHVibGljIElzVXBsb2FkaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2Fkcy5maWx0ZXIoKGl0bSkgPT4gaXRtLnN0YXR1cyA9PT0gJ3VwbG9hZGluZycpLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRlbiBVcGxvYWRmb3J0c2Nocml0dCB6dXLDvGNrXHJcbiAgICogQHJldHVybnMgVXBsb2FkIEZvcnRzY2hyaXR0LiBXZXJ0IHZvbiAwLTEwMFxyXG4gICAqL1xyXG4gIHB1YmxpYyBQcm9ncmVzcygpOiBudW1iZXIge1xyXG4gICAgaWYgKHRoaXMudXBsb2Fkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnVwbG9hZHNbMF0ucHJvZ3Jlc3M7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbmNlbCBzaW5nbGUgdXBsb2FkXHJcbiAgICogQHBhcmFtIHVwbG9hZElkIElEIG9mIEZpbGUgdG8gY2FuY2VsXHJcbiAgICovXHJcbiAgcHVibGljIGNhbmNlbCh1cGxvYWRJZCkge1xyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbnRyb2woeyBhY3Rpb246ICdjYW5jZWwnLCB1cGxvYWRJZDogdXBsb2FkSWQgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYW5jZWwgYWxsIFVwbG9hZGVkIGZpbGVzXHJcbiAgICovXHJcbiAgcHVibGljIGNhbmNlbEFsbCgpIHtcclxuICAgIGlmICh0aGlzLkhhc1F1ZXVlSXRlbSgpID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS5jb250cm9sKHsgYWN0aW9uOiAnY2FuY2VsJyB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlc3Ryb3kgZGVzIENvbnRyb2xzXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMubGlzdGVuZXJGbikge1xyXG4gICAgICB0aGlzLmxpc3RlbmVyRm4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpc2llcnQgZGFzIENvbnRyb2xcclxuICAgKi9cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgLy8gSW5pdCBFdmVudCBMaXN0ZW5lciBmb3IgSW5wdXQgRmlsZSBDb250cm9sIGFuZCBIYW5kbGluZyBGaWxlc1xyXG4gICAgdGhpcy5saXN0ZW5lckZuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXHJcbiAgICAgIHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudCxcclxuICAgICAgJ2NoYW5nZScsXHJcbiAgICAgIHRoaXMuZmlsZUxpc3RlbmVyXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuc2V0QWxsb3dlZFR5cGVzKHRoaXMuX2FsbG93ZWR0eXBlcyk7XHJcbiAgICB0aGlzLnNldEVuZHBvaW50KHRoaXMuX2VuZHBvaW50KTtcclxuXHJcbiAgICBpZiAodGhpcy5fZW5kcG9pbnQgPT09IG51bGwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdlbmRwb2ludCBpcyBub3QgZGVmaW5lZCEnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuY29ubmVjdCh0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIEV2ZW50XHJcbiAgICpcclxuICAgKiBAcGFyYW0gdXBsb2Fkc091dFN0cmVhbSBVcGxvYWQgSXRlbVxyXG4gICAqL1xyXG4gIHB1YmxpYyBvblVwbG9hZCh1ZmlsZTogVXBsb2FkU3RhdGUpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy51cGxvYWRzLmZpbmRJbmRleCgoZikgPT4gZi51cGxvYWRJZCA9PT0gdWZpbGUudXBsb2FkSWQpO1xyXG5cclxuICAgIGlmICh1ZmlsZS5zdGF0dXMgPT09ICdhZGRlZCcgfHwgKHVmaWxlLnN0YXR1cyA9PT0gJ3F1ZXVlJyAmJiBpbmRleCA8IDApKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmlzRXh0ZW5zaW9uVmFsaWQodWZpbGUubmFtZSkgJiZcclxuICAgICAgICB0aGlzLmlzRmlsZVNpemVWYWxpZCh1ZmlsZS5zaXplKSAmJlxyXG4gICAgICAgIHRoaXMuQ3VzdG9tQWRkVmFsaWRhdGlvbih1ZmlsZSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRzLnB1c2gobmV3IFNhY1VwbG9hZEZpbGUodWZpbGUpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNhbmNlbCh1ZmlsZS51cGxvYWRJZCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc0V4dGVuc2lvblZhbGlkKHVmaWxlLm5hbWUpKSB7XHJcbiAgICAgICAgICB0aGlzLm9uZmlsZWVycm9yLmVtaXQoJ0lOVkFMSURfRVhURU5TSU9OJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5pc0ZpbGVTaXplVmFsaWQodWZpbGUuc2l6ZSkpIHtcclxuICAgICAgICAgIHRoaXMub25maWxlZXJyb3IuZW1pdCgnSU5WQUxJRF9GSUxFU0laRScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh1ZmlsZS5zdGF0dXMgPT09ICdjYW5jZWxsZWQnKSB7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuU2V0VXBsb2FkVmFsdWUobnVsbCk7XHJcbiAgICB9IGVsc2UgaWYgKHVmaWxlLnN0YXR1cyA9PT0gJ2NvbXBsZXRlJykge1xyXG4gICAgICB0aGlzLnVwbG9hZHNbaW5kZXhdLnByb2dyZXNzID0gdWZpbGUucHJvZ3Jlc3M7XHJcbiAgICAgIHRoaXMudXBsb2Fkc1tpbmRleF0uc3RhdHVzID0gdWZpbGUuc3RhdHVzO1xyXG4gICAgICB0aGlzLlNldFVwbG9hZFZhbHVlKHVmaWxlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRzW2luZGV4XS5wcm9ncmVzcyA9IHVmaWxlLnByb2dyZXNzO1xyXG4gICAgICAgIHRoaXMudXBsb2Fkc1tpbmRleF0uc3RhdHVzID0gdWZpbGUuc3RhdHVzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5VcGRhdGVGaWxlQ291bnQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbmNlbCBTaW5nbGUgRmlsZVxyXG4gICAqIEBwYXJhbSB1cGxvYWRJZCBJRCBvZiBGaWxlIHRvIENhbmNlbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwYXVzZSh1cGxvYWRJZCkge1xyXG4gICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbnRyb2woeyBhY3Rpb246ICdwYXVzZScsIHVwbG9hZElkIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGF1c2UgYWxsIFVwbG9hZHNcclxuICAgKi9cclxuICBwdWJsaWMgcGF1c2VBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5Jc1VwbG9hZGluZygpID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkU2VydmljZS5jb250cm9sKHsgYWN0aW9uOiAncGF1c2UnIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIFNpbmdsZSBGaWxlXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdXBsb2FkSWQgSUQgb2YgRmlsZSB0byBVcGxvYWRcclxuICAgKi9cclxuICBwdWJsaWMgdXBsb2FkKHVwbG9hZElkKSB7XHJcbiAgICB0aGlzLnVwbG9hZFNlcnZpY2UuY29udHJvbCh7IGFjdGlvbjogJ3VwbG9hZCcsIHVwbG9hZElkIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIGFsbCBxdWV1ZWQgRmlsZXNcclxuICAgKi9cclxuICBwdWJsaWMgdXBsb2FkQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuSXNTdGF0ZVRvVXBsb2FkKCkgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmNvbnRyb2woeyBhY3Rpb246ICd1cGxvYWQnIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRpZXJ0IGRhcyBVcGxvYWQgQ29udHJvbFxyXG4gICAqIEBwYXJhbSBjIENvbnRyb2wgZGFzIHZhbGlkaWVydCB3ZXJkZW4gc29sbFxyXG4gICAqL1xyXG4gIHB1YmxpYyB2YWxpZGF0ZURhdGEoYzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgbGV0IGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNyZXF1aXJlZCkge1xyXG4gICAgICBlcnJvciA9IFZhbGlkYXRpb24ucmVxdWlyZWQoXHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9ubWVzc2FnZXJlcXVpcmVkLFxyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbm1lc3NhZ2VzdW1tYXJ5cmVxdWlyZWRcclxuICAgICAgKShjKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3I7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEFic3RyYWN0IE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kZSBrYW5uIGbDvHIgQ29udHJvbHMgdmVyd2VuZGV0IHdlcmRlbiwgenVzw6R0emxpY2hlIFZhbGlkaWVydW5nZW4gYmVpIGhpbnp1ZsO8Z2VuIGRlciBGaWxlcyB6dSBtYWNoZW5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBmaWxlIEZpbGUgZGFzIGhpbnp1Z2Vmw7xndCB3dXJkZS5cclxuICAgKiBAcmV0dXJucyBWYWxkaWVydW5nIGlzdCBlcmZvbGdyZWljaFxyXG4gICAqL1xyXG4gIHB1YmxpYyBhYnN0cmFjdCBDdXN0b21BZGRWYWxpZGF0aW9uKGZpbGU6IFVwbG9hZFN0YXRlKTogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBNZXRob2RlIHdlbGNoZSBkaWUgVXBsb2FkIElEJ3MgaW4gZGFzIE1vZGVsIHNldHp0IG9kZXIgbMO2c2NodFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZpbGUgVHlwZSB2b24gRmlsZSBJRCdzXHJcbiAgICovXHJcbiAgcHVibGljIGFic3RyYWN0IFNldFVwbG9hZFZhbHVlKGZpbGU6IFVwbG9hZFN0YXRlKTogdm9pZDtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgQWJzdHJhY3QgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xyXG5cclxuICBwcml2YXRlIFVwZGF0ZUZpbGVDb3VudCgpOiB2b2lkIHtcclxuICAgIC8vIEhBQ0s6IEFkZCBhZGRpdGlvbiBwcm9wZXJ0eSB0byBGb3JtQ29udHJvbC4gQ2FuIGJlIGZpeGVkIGlmIHNvbHV0aW9uIGZvciB0aWNrZXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzE5Njg2XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgKHRoaXMubmdDb250cm9sIGFzIHVua25vd24gYXMgSVVwbG9hZENvbnRyb2wpLnVwbG9hZGVkZmlsZWNvdW50ID1cclxuICAgICAgICB0aGlzLlVwbG9hZGVkRmlsZUNvdW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdXBsb2FkZWQgZmlsZXNcclxuICAgKi9cclxuICBwcml2YXRlIFVwbG9hZGVkRmlsZUNvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy51cGxvYWRzLmZpbHRlcigoaXRtKSA9PiBpdG0uc3RhdHVzID09PSAnY29tcGxldGUnKS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcsO8ZnQgb2IgZGllIERhdGVpZXJ3ZWl0ZXJ1bmcgZ8O8bHRpZyBpc3RcclxuICAgKlxyXG4gICAqIEBwYXJhbSBmaWxlbmFtZSBEYXRlaW5hbWVcclxuICAgKi9cclxuICBwcml2YXRlIGlzRXh0ZW5zaW9uVmFsaWQoZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuX2FsbG93ZWR0eXBlcyA9PT0gJyonKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpc1ZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBjb25zdCBleHRlbnNpb25zOiBzdHJpbmdbXSA9IHRoaXMuX2FsbG93ZWR0eXBlcy5zcGxpdCgnLCcpO1xyXG5cclxuICAgIGV4dGVuc2lvbnMuZm9yRWFjaCgoaXRtKSA9PiB7XHJcbiAgICAgIGlmIChmaWxlbmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKGl0bS50b0xvd2VyQ2FzZSgpKSkge1xyXG4gICAgICAgIGlzVmFsaWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gaXNWYWxpZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByw7xmdCBvYiBkYXMgRmlsZSBuaWNodCB6dSBncm9zcyBpc3QuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZmlsZXNpemUgTWF4IEZpbGUgU2l6ZSBpbiBCeXRlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgaXNGaWxlU2l6ZVZhbGlkKGZpbGVzaXplOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLm1heGZpbGVzaXplID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLm1heGZpbGVzaXplID49IGZpbGVzaXplO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0enQgZGllIGVybGF1YnRlbiBEYXRlbnR5cGVuIGbDvHIgZGVuIFVwbG9hZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHR5cGVzIEVybGF1YnRlIEZpbGUgRXh0ZW5zaW9uc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0QWxsb3dlZFR5cGVzKHR5cGVzOiBzdHJpbmcpIHtcclxuICAgIC8vIFByw7xmZW4gVXBsb2FkSW5wdXQgYmVyZWl0cyBnZWxhZGVuLCBpc3QgTlVMTCB3ZW5uIEV4dGVuc2lvbiBpbSBNYXJrdXAgbmFjaCBOZ01vZGVsIGdlc2V0enQgd2lyZC5cclxuICAgIGlmICh0aGlzLnVwbG9hZElucHV0ICYmIHRoaXMudXBsb2FkSW5wdXQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcclxuICAgICAgICB0aGlzLnVwbG9hZElucHV0Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgJ2FjY2VwdCcsXHJcbiAgICAgICAgdHlwZXNcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9wdGlvbnMuYWxsb3dlZFR5cGVzID0gdHlwZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXR6dCBkZW4gVXBsb2FkIEVuZHBvaXRcclxuICAgKiBAcGFyYW0gdXJsIFJlZ2lzdGVyIFVSSVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0RW5kcG9pbnQodXJsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3B0aW9ucy5lbmRwb2ludCA9IHVybDtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBLbGFzc2UgZsO8ciBkZW4gVXBsb2FkIGVpbmVyIERhdGVpIGluIGRlciBVcGxvYWQgQ29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2FjVXBsb2FkRmlsZSB7XHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIERvY3VtZW50IElEXHJcbiAgICovXHJcbiAgcHVibGljIGRvY3VtZW50aWQ6IHN0cmluZztcclxuICAvKipcclxuICAgKiBEYXRlaW5hbWVcclxuICAgKi9cclxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFVwbG9hZCBGb3J0c2Nocml0dFxyXG4gICAqL1xyXG4gIHB1YmxpYyBwcm9ncmVzczogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIFVwbG9hZCBTdGF0dXNcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdHVzOiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVXBsb2FkIElEXHJcbiAgICovXHJcbiAgcHVibGljIHVwbG9hZElkOiBzdHJpbmc7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBLb25zdHJ1a3RvclxyXG4gICAqIEBwYXJhbSB1ZmlsZSBVcGxvYWQgU3RhdHVzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IodWZpbGU6IFVwbG9hZFN0YXRlKSB7XHJcbiAgICB0aGlzLnVwbG9hZElkID0gdWZpbGUudXBsb2FkSWQ7XHJcbiAgICB0aGlzLm5hbWUgPSB1ZmlsZS5uYW1lO1xyXG4gICAgdGhpcy5wcm9ncmVzcyA9IHVmaWxlLnByb2dyZXNzO1xyXG4gICAgdGhpcy5zdGF0dXMgPSB1ZmlsZS5zdGF0dXM7XHJcbiAgICB0aGlzLmRvY3VtZW50aWQgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcclxufVxyXG5cclxuLy8gI2VuZHJlZ2lvbiBDbGFzc2Vz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
|