@bluedynamics/cdk8s-plone 0.1.31 → 0.1.32

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/.jsii CHANGED
@@ -1770,7 +1770,7 @@
1770
1770
  },
1771
1771
  "locationInModule": {
1772
1772
  "filename": "src/vinylcache.ts",
1773
- "line": 350
1773
+ "line": 403
1774
1774
  },
1775
1775
  "parameters": [
1776
1776
  {
@@ -1796,7 +1796,7 @@
1796
1796
  "kind": "class",
1797
1797
  "locationInModule": {
1798
1798
  "filename": "src/vinylcache.ts",
1799
- "line": 343
1799
+ "line": 396
1800
1800
  },
1801
1801
  "name": "PloneVinylCache",
1802
1802
  "properties": [
@@ -1809,7 +1809,7 @@
1809
1809
  "immutable": true,
1810
1810
  "locationInModule": {
1811
1811
  "filename": "src/vinylcache.ts",
1812
- "line": 348
1812
+ "line": 401
1813
1813
  },
1814
1814
  "name": "vinylCacheServiceName",
1815
1815
  "type": {
@@ -1831,7 +1831,7 @@
1831
1831
  "kind": "interface",
1832
1832
  "locationInModule": {
1833
1833
  "filename": "src/vinylcache.ts",
1834
- "line": 124
1834
+ "line": 163
1835
1835
  },
1836
1836
  "name": "PloneVinylCacheOptions",
1837
1837
  "properties": [
@@ -1845,7 +1845,7 @@
1845
1845
  "immutable": true,
1846
1846
  "locationInModule": {
1847
1847
  "filename": "src/vinylcache.ts",
1848
- "line": 129
1848
+ "line": 168
1849
1849
  },
1850
1850
  "name": "plone",
1851
1851
  "type": {
@@ -1862,7 +1862,7 @@
1862
1862
  "immutable": true,
1863
1863
  "locationInModule": {
1864
1864
  "filename": "src/vinylcache.ts",
1865
- "line": 172
1865
+ "line": 225
1866
1866
  },
1867
1867
  "name": "director",
1868
1868
  "optional": true,
@@ -1881,7 +1881,7 @@
1881
1881
  "immutable": true,
1882
1882
  "locationInModule": {
1883
1883
  "filename": "src/vinylcache.ts",
1884
- "line": 136
1884
+ "line": 175
1885
1885
  },
1886
1886
  "name": "extraBackends",
1887
1887
  "optional": true,
@@ -1904,7 +1904,7 @@
1904
1904
  "immutable": true,
1905
1905
  "locationInModule": {
1906
1906
  "filename": "src/vinylcache.ts",
1907
- "line": 238
1907
+ "line": 291
1908
1908
  },
1909
1909
  "name": "image",
1910
1910
  "optional": true,
@@ -1922,7 +1922,7 @@
1922
1922
  "immutable": true,
1923
1923
  "locationInModule": {
1924
1924
  "filename": "src/vinylcache.ts",
1925
- "line": 226
1925
+ "line": 279
1926
1926
  },
1927
1927
  "name": "invalidation",
1928
1928
  "optional": true,
@@ -1940,7 +1940,7 @@
1940
1940
  "immutable": true,
1941
1941
  "locationInModule": {
1942
1942
  "filename": "src/vinylcache.ts",
1943
- "line": 160
1943
+ "line": 199
1944
1944
  },
1945
1945
  "name": "limitCpu",
1946
1946
  "optional": true,
@@ -1958,7 +1958,7 @@
1958
1958
  "immutable": true,
1959
1959
  "locationInModule": {
1960
1960
  "filename": "src/vinylcache.ts",
1961
- "line": 166
1961
+ "line": 205
1962
1962
  },
1963
1963
  "name": "limitMemory",
1964
1964
  "optional": true,
@@ -1976,7 +1976,7 @@
1976
1976
  "immutable": true,
1977
1977
  "locationInModule": {
1978
1978
  "filename": "src/vinylcache.ts",
1979
- "line": 232
1979
+ "line": 285
1980
1980
  },
1981
1981
  "name": "monitoring",
1982
1982
  "optional": true,
@@ -1995,7 +1995,7 @@
1995
1995
  "immutable": true,
1996
1996
  "locationInModule": {
1997
1997
  "filename": "src/vinylcache.ts",
1998
- "line": 251
1998
+ "line": 304
1999
1999
  },
2000
2000
  "name": "nodeSelector",
2001
2001
  "optional": true,
@@ -2018,7 +2018,7 @@
2018
2018
  "immutable": true,
2019
2019
  "locationInModule": {
2020
2020
  "filename": "src/vinylcache.ts",
2021
- "line": 142
2021
+ "line": 181
2022
2022
  },
2023
2023
  "name": "replicas",
2024
2024
  "optional": true,
@@ -2036,7 +2036,7 @@
2036
2036
  "immutable": true,
2037
2037
  "locationInModule": {
2038
2038
  "filename": "src/vinylcache.ts",
2039
- "line": 148
2039
+ "line": 187
2040
2040
  },
2041
2041
  "name": "requestCpu",
2042
2042
  "optional": true,
@@ -2054,7 +2054,7 @@
2054
2054
  "immutable": true,
2055
2055
  "locationInModule": {
2056
2056
  "filename": "src/vinylcache.ts",
2057
- "line": 154
2057
+ "line": 193
2058
2058
  },
2059
2059
  "name": "requestMemory",
2060
2060
  "optional": true,
@@ -2073,7 +2073,7 @@
2073
2073
  "immutable": true,
2074
2074
  "locationInModule": {
2075
2075
  "filename": "src/vinylcache.ts",
2076
- "line": 181
2076
+ "line": 234
2077
2077
  },
2078
2078
  "name": "shardBy",
2079
2079
  "optional": true,
@@ -2092,7 +2092,7 @@
2092
2092
  "immutable": true,
2093
2093
  "locationInModule": {
2094
2094
  "filename": "src/vinylcache.ts",
2095
- "line": 191
2095
+ "line": 244
2096
2096
  },
2097
2097
  "name": "shardHealthy",
2098
2098
  "optional": true,
@@ -2111,7 +2111,7 @@
2111
2111
  "immutable": true,
2112
2112
  "locationInModule": {
2113
2113
  "filename": "src/vinylcache.ts",
2114
- "line": 199
2114
+ "line": 252
2115
2115
  },
2116
2116
  "name": "shardRampup",
2117
2117
  "optional": true,
@@ -2130,7 +2130,7 @@
2130
2130
  "immutable": true,
2131
2131
  "locationInModule": {
2132
2132
  "filename": "src/vinylcache.ts",
2133
- "line": 206
2133
+ "line": 259
2134
2134
  },
2135
2135
  "name": "shardReplicas",
2136
2136
  "optional": true,
@@ -2138,6 +2138,31 @@
2138
2138
  "primitive": "number"
2139
2139
  }
2140
2140
  },
2141
+ {
2142
+ "abstract": true,
2143
+ "docs": {
2144
+ "default": "- no storage configured; operator uses varnishd default (~100MB malloc)",
2145
+ "example": "storage: [{ name: 's0', type: 'malloc', size: '1Gi' }]",
2146
+ "remarks": "Each entry becomes a `-s <name>=<type>,<options>` argument to varnishd.\nIf omitted, the operator ships varnishd with its stock default (~100 MB\nmalloc) — almost always too small. Set an explicit malloc size at least\nmatching the pod's memory request to use the allocated memory for caching.",
2147
+ "stability": "stable",
2148
+ "summary": "Varnish storage backends (`spec.storage`)."
2149
+ },
2150
+ "immutable": true,
2151
+ "locationInModule": {
2152
+ "filename": "src/vinylcache.ts",
2153
+ "line": 219
2154
+ },
2155
+ "name": "storage",
2156
+ "optional": true,
2157
+ "type": {
2158
+ "collection": {
2159
+ "elementtype": {
2160
+ "fqn": "@bluedynamics/cdk8s-plone.VinylCacheStorage"
2161
+ },
2162
+ "kind": "array"
2163
+ }
2164
+ }
2165
+ },
2141
2166
  {
2142
2167
  "abstract": true,
2143
2168
  "docs": {
@@ -2148,7 +2173,7 @@
2148
2173
  "immutable": true,
2149
2174
  "locationInModule": {
2150
2175
  "filename": "src/vinylcache.ts",
2151
- "line": 244
2176
+ "line": 297
2152
2177
  },
2153
2178
  "name": "tolerations",
2154
2179
  "optional": true,
@@ -2171,7 +2196,7 @@
2171
2196
  "immutable": true,
2172
2197
  "locationInModule": {
2173
2198
  "filename": "src/vinylcache.ts",
2174
- "line": 323
2199
+ "line": 376
2175
2200
  },
2176
2201
  "name": "vclBackendErrorSnippet",
2177
2202
  "optional": true,
@@ -2189,7 +2214,7 @@
2189
2214
  "immutable": true,
2190
2215
  "locationInModule": {
2191
2216
  "filename": "src/vinylcache.ts",
2192
- "line": 317
2217
+ "line": 370
2193
2218
  },
2194
2219
  "name": "vclBackendFetchSnippet",
2195
2220
  "optional": true,
@@ -2208,7 +2233,7 @@
2208
2233
  "immutable": true,
2209
2234
  "locationInModule": {
2210
2235
  "filename": "src/vinylcache.ts",
2211
- "line": 220
2236
+ "line": 273
2212
2237
  },
2213
2238
  "name": "vclBackendResponseSnippet",
2214
2239
  "optional": true,
@@ -2226,7 +2251,7 @@
2226
2251
  "immutable": true,
2227
2252
  "locationInModule": {
2228
2253
  "filename": "src/vinylcache.ts",
2229
- "line": 257
2254
+ "line": 310
2230
2255
  },
2231
2256
  "name": "vclDeliverSnippet",
2232
2257
  "optional": true,
@@ -2244,7 +2269,7 @@
2244
2269
  "immutable": true,
2245
2270
  "locationInModule": {
2246
2271
  "filename": "src/vinylcache.ts",
2247
- "line": 311
2272
+ "line": 364
2248
2273
  },
2249
2274
  "name": "vclFiniSnippet",
2250
2275
  "optional": true,
@@ -2262,7 +2287,7 @@
2262
2287
  "immutable": true,
2263
2288
  "locationInModule": {
2264
2289
  "filename": "src/vinylcache.ts",
2265
- "line": 299
2290
+ "line": 352
2266
2291
  },
2267
2292
  "name": "vclHashSnippet",
2268
2293
  "optional": true,
@@ -2280,7 +2305,7 @@
2280
2305
  "immutable": true,
2281
2306
  "locationInModule": {
2282
2307
  "filename": "src/vinylcache.ts",
2283
- "line": 263
2308
+ "line": 316
2284
2309
  },
2285
2310
  "name": "vclHitSnippet",
2286
2311
  "optional": true,
@@ -2298,7 +2323,7 @@
2298
2323
  "immutable": true,
2299
2324
  "locationInModule": {
2300
2325
  "filename": "src/vinylcache.ts",
2301
- "line": 305
2326
+ "line": 358
2302
2327
  },
2303
2328
  "name": "vclInitSnippet",
2304
2329
  "optional": true,
@@ -2316,7 +2341,7 @@
2316
2341
  "immutable": true,
2317
2342
  "locationInModule": {
2318
2343
  "filename": "src/vinylcache.ts",
2319
- "line": 269
2344
+ "line": 322
2320
2345
  },
2321
2346
  "name": "vclMissSnippet",
2322
2347
  "optional": true,
@@ -2334,7 +2359,7 @@
2334
2359
  "immutable": true,
2335
2360
  "locationInModule": {
2336
2361
  "filename": "src/vinylcache.ts",
2337
- "line": 275
2362
+ "line": 328
2338
2363
  },
2339
2364
  "name": "vclPassSnippet",
2340
2365
  "optional": true,
@@ -2352,7 +2377,7 @@
2352
2377
  "immutable": true,
2353
2378
  "locationInModule": {
2354
2379
  "filename": "src/vinylcache.ts",
2355
- "line": 281
2380
+ "line": 334
2356
2381
  },
2357
2382
  "name": "vclPipeSnippet",
2358
2383
  "optional": true,
@@ -2370,7 +2395,7 @@
2370
2395
  "immutable": true,
2371
2396
  "locationInModule": {
2372
2397
  "filename": "src/vinylcache.ts",
2373
- "line": 293
2398
+ "line": 346
2374
2399
  },
2375
2400
  "name": "vclPurgeSnippet",
2376
2401
  "optional": true,
@@ -2389,7 +2414,7 @@
2389
2414
  "immutable": true,
2390
2415
  "locationInModule": {
2391
2416
  "filename": "src/vinylcache.ts",
2392
- "line": 213
2417
+ "line": 266
2393
2418
  },
2394
2419
  "name": "vclRecvSnippet",
2395
2420
  "optional": true,
@@ -2407,7 +2432,7 @@
2407
2432
  "immutable": true,
2408
2433
  "locationInModule": {
2409
2434
  "filename": "src/vinylcache.ts",
2410
- "line": 287
2435
+ "line": 340
2411
2436
  },
2412
2437
  "name": "vclSynthSnippet",
2413
2438
  "optional": true,
@@ -2429,7 +2454,7 @@
2429
2454
  "kind": "interface",
2430
2455
  "locationInModule": {
2431
2456
  "filename": "src/vinylcache.ts",
2432
- "line": 59
2457
+ "line": 62
2433
2458
  },
2434
2459
  "name": "VinylCacheBackend",
2435
2460
  "properties": [
@@ -2443,7 +2468,7 @@
2443
2468
  "immutable": true,
2444
2469
  "locationInModule": {
2445
2470
  "filename": "src/vinylcache.ts",
2446
- "line": 63
2471
+ "line": 66
2447
2472
  },
2448
2473
  "name": "name",
2449
2474
  "type": {
@@ -2459,7 +2484,7 @@
2459
2484
  "immutable": true,
2460
2485
  "locationInModule": {
2461
2486
  "filename": "src/vinylcache.ts",
2462
- "line": 73
2487
+ "line": 76
2463
2488
  },
2464
2489
  "name": "port",
2465
2490
  "type": {
@@ -2475,7 +2500,7 @@
2475
2500
  "immutable": true,
2476
2501
  "locationInModule": {
2477
2502
  "filename": "src/vinylcache.ts",
2478
- "line": 68
2503
+ "line": 71
2479
2504
  },
2480
2505
  "name": "serviceName",
2481
2506
  "type": {
@@ -2492,7 +2517,7 @@
2492
2517
  "immutable": true,
2493
2518
  "locationInModule": {
2494
2519
  "filename": "src/vinylcache.ts",
2495
- "line": 79
2520
+ "line": 82
2496
2521
  },
2497
2522
  "name": "probe",
2498
2523
  "optional": true,
@@ -2511,7 +2536,7 @@
2511
2536
  "immutable": true,
2512
2537
  "locationInModule": {
2513
2538
  "filename": "src/vinylcache.ts",
2514
- "line": 85
2539
+ "line": 88
2515
2540
  },
2516
2541
  "name": "weight",
2517
2542
  "optional": true,
@@ -2533,7 +2558,7 @@
2533
2558
  "kind": "interface",
2534
2559
  "locationInModule": {
2535
2560
  "filename": "src/vinylcache.ts",
2536
- "line": 18
2561
+ "line": 21
2537
2562
  },
2538
2563
  "name": "VinylCacheBackendProbe",
2539
2564
  "properties": [
@@ -2547,7 +2572,7 @@
2547
2572
  "immutable": true,
2548
2573
  "locationInModule": {
2549
2574
  "filename": "src/vinylcache.ts",
2550
- "line": 53
2575
+ "line": 56
2551
2576
  },
2552
2577
  "name": "expectedResponse",
2553
2578
  "optional": true,
@@ -2565,7 +2590,7 @@
2565
2590
  "immutable": true,
2566
2591
  "locationInModule": {
2567
2592
  "filename": "src/vinylcache.ts",
2568
- "line": 29
2593
+ "line": 32
2569
2594
  },
2570
2595
  "name": "interval",
2571
2596
  "optional": true,
@@ -2583,7 +2608,7 @@
2583
2608
  "immutable": true,
2584
2609
  "locationInModule": {
2585
2610
  "filename": "src/vinylcache.ts",
2586
- "line": 47
2611
+ "line": 50
2587
2612
  },
2588
2613
  "name": "threshold",
2589
2614
  "optional": true,
@@ -2601,7 +2626,7 @@
2601
2626
  "immutable": true,
2602
2627
  "locationInModule": {
2603
2628
  "filename": "src/vinylcache.ts",
2604
- "line": 35
2629
+ "line": 38
2605
2630
  },
2606
2631
  "name": "timeout",
2607
2632
  "optional": true,
@@ -2619,7 +2644,7 @@
2619
2644
  "immutable": true,
2620
2645
  "locationInModule": {
2621
2646
  "filename": "src/vinylcache.ts",
2622
- "line": 23
2647
+ "line": 26
2623
2648
  },
2624
2649
  "name": "url",
2625
2650
  "optional": true,
@@ -2637,7 +2662,7 @@
2637
2662
  "immutable": true,
2638
2663
  "locationInModule": {
2639
2664
  "filename": "src/vinylcache.ts",
2640
- "line": 41
2665
+ "line": 44
2641
2666
  },
2642
2667
  "name": "window",
2643
2668
  "optional": true,
@@ -2648,6 +2673,96 @@
2648
2673
  ],
2649
2674
  "symbolId": "src/vinylcache:VinylCacheBackendProbe"
2650
2675
  },
2676
+ "@bluedynamics/cdk8s-plone.VinylCacheStorage": {
2677
+ "assembly": "@bluedynamics/cdk8s-plone",
2678
+ "datatype": true,
2679
+ "docs": {
2680
+ "remarks": "Maps to `spec.storage[]` on the VinylCache CRD. The operator emits one\n`-s <name>=<type>,<options>` argument per entry to varnishd.\n\nWithout any storage entry the operator falls back to the varnishd default\n(~100 MB malloc), which is almost always too small for real workloads.",
2681
+ "stability": "stable",
2682
+ "summary": "A Varnish storage backend configuration."
2683
+ },
2684
+ "fqn": "@bluedynamics/cdk8s-plone.VinylCacheStorage",
2685
+ "kind": "interface",
2686
+ "locationInModule": {
2687
+ "filename": "src/vinylcache.ts",
2688
+ "line": 100
2689
+ },
2690
+ "name": "VinylCacheStorage",
2691
+ "properties": [
2692
+ {
2693
+ "abstract": true,
2694
+ "docs": {
2695
+ "remarks": "Must be unique within the VinylCache and match `^[a-zA-Z][a-zA-Z0-9_]*$`.",
2696
+ "stability": "stable",
2697
+ "summary": "Internal storage identifier used in the varnishd `-s` argument."
2698
+ },
2699
+ "immutable": true,
2700
+ "locationInModule": {
2701
+ "filename": "src/vinylcache.ts",
2702
+ "line": 105
2703
+ },
2704
+ "name": "name",
2705
+ "type": {
2706
+ "primitive": "string"
2707
+ }
2708
+ },
2709
+ {
2710
+ "abstract": true,
2711
+ "docs": {
2712
+ "remarks": "Only \"malloc\" and \"file\" are permitted by the\nadmission webhook.",
2713
+ "stability": "stable",
2714
+ "summary": "Storage backend type."
2715
+ },
2716
+ "immutable": true,
2717
+ "locationInModule": {
2718
+ "filename": "src/vinylcache.ts",
2719
+ "line": 111
2720
+ },
2721
+ "name": "type",
2722
+ "type": {
2723
+ "primitive": "string"
2724
+ }
2725
+ },
2726
+ {
2727
+ "abstract": true,
2728
+ "docs": {
2729
+ "default": "- required for type \"file\"",
2730
+ "remarks": "Ignored for malloc.",
2731
+ "stability": "stable",
2732
+ "summary": "Filesystem path for file-type storage."
2733
+ },
2734
+ "immutable": true,
2735
+ "locationInModule": {
2736
+ "filename": "src/vinylcache.ts",
2737
+ "line": 124
2738
+ },
2739
+ "name": "path",
2740
+ "optional": true,
2741
+ "type": {
2742
+ "primitive": "string"
2743
+ }
2744
+ },
2745
+ {
2746
+ "abstract": true,
2747
+ "docs": {
2748
+ "default": "- required for both malloc and file",
2749
+ "stability": "stable",
2750
+ "summary": "Storage allocation as a Kubernetes resource quantity (e.g. \"1Gi\", \"500M\"). Required for malloc; required for file."
2751
+ },
2752
+ "immutable": true,
2753
+ "locationInModule": {
2754
+ "filename": "src/vinylcache.ts",
2755
+ "line": 118
2756
+ },
2757
+ "name": "size",
2758
+ "optional": true,
2759
+ "type": {
2760
+ "primitive": "string"
2761
+ }
2762
+ }
2763
+ ],
2764
+ "symbolId": "src/vinylcache:VinylCacheStorage"
2765
+ },
2651
2766
  "@bluedynamics/cdk8s-plone.VinylCacheToleration": {
2652
2767
  "assembly": "@bluedynamics/cdk8s-plone",
2653
2768
  "datatype": true,
@@ -2659,7 +2774,7 @@
2659
2774
  "kind": "interface",
2660
2775
  "locationInModule": {
2661
2776
  "filename": "src/vinylcache.ts",
2662
- "line": 91
2777
+ "line": 130
2663
2778
  },
2664
2779
  "name": "VinylCacheToleration",
2665
2780
  "properties": [
@@ -2672,7 +2787,7 @@
2672
2787
  "immutable": true,
2673
2788
  "locationInModule": {
2674
2789
  "filename": "src/vinylcache.ts",
2675
- "line": 95
2790
+ "line": 134
2676
2791
  },
2677
2792
  "name": "key",
2678
2793
  "type": {
@@ -2689,7 +2804,7 @@
2689
2804
  "immutable": true,
2690
2805
  "locationInModule": {
2691
2806
  "filename": "src/vinylcache.ts",
2692
- "line": 113
2807
+ "line": 152
2693
2808
  },
2694
2809
  "name": "effect",
2695
2810
  "optional": true,
@@ -2707,7 +2822,7 @@
2707
2822
  "immutable": true,
2708
2823
  "locationInModule": {
2709
2824
  "filename": "src/vinylcache.ts",
2710
- "line": 101
2825
+ "line": 140
2711
2826
  },
2712
2827
  "name": "operator",
2713
2828
  "optional": true,
@@ -2725,7 +2840,7 @@
2725
2840
  "immutable": true,
2726
2841
  "locationInModule": {
2727
2842
  "filename": "src/vinylcache.ts",
2728
- "line": 107
2843
+ "line": 146
2729
2844
  },
2730
2845
  "name": "value",
2731
2846
  "optional": true,
@@ -2737,6 +2852,6 @@
2737
2852
  "symbolId": "src/vinylcache:VinylCacheToleration"
2738
2853
  }
2739
2854
  },
2740
- "version": "0.1.31",
2741
- "fingerprint": "DfZRICJpeVu1djonNCdX/hOFxrPq8dB12aL/F8F4W1c="
2855
+ "version": "0.1.32",
2856
+ "fingerprint": "UtpnYb4U3+2cbpSPwGNwdRDrnD4wpEZhJk90IEqXe88="
2742
2857
  }
package/API.md CHANGED
@@ -1798,6 +1798,7 @@ const ploneVinylCacheOptions: PloneVinylCacheOptions = { ... }
1798
1798
  | <code><a href="#@bluedynamics/cdk8s-plone.PloneVinylCacheOptions.property.shardHealthy">shardHealthy</a></code> | <code>string</code> | Shard director: which backends the director considers when selecting a shard. |
1799
1799
  | <code><a href="#@bluedynamics/cdk8s-plone.PloneVinylCacheOptions.property.shardRampup">shardRampup</a></code> | <code>string</code> | Shard director: time after adding a backend before it receives its full share of traffic, preventing thundering-herd. |
1800
1800
  | <code><a href="#@bluedynamics/cdk8s-plone.PloneVinylCacheOptions.property.shardReplicas">shardReplicas</a></code> | <code>number</code> | Shard director: number of Ketama replicas per backend in the hash ring. |
1801
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneVinylCacheOptions.property.storage">storage</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.VinylCacheStorage">VinylCacheStorage</a>[]</code> | Varnish storage backends (`spec.storage`). |
1801
1802
  | <code><a href="#@bluedynamics/cdk8s-plone.PloneVinylCacheOptions.property.tolerations">tolerations</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.VinylCacheToleration">VinylCacheToleration</a>[]</code> | Tolerations for the Varnish pods. |
1802
1803
  | <code><a href="#@bluedynamics/cdk8s-plone.PloneVinylCacheOptions.property.vclBackendErrorSnippet">vclBackendErrorSnippet</a></code> | <code>string</code> | Custom VCL snippet for vcl_backend_error subroutine. |
1803
1804
  | <code><a href="#@bluedynamics/cdk8s-plone.PloneVinylCacheOptions.property.vclBackendFetchSnippet">vclBackendFetchSnippet</a></code> | <code>string</code> | Custom VCL snippet for vcl_backend_fetch subroutine. |
@@ -2042,6 +2043,31 @@ Only applied when director is "shard".
2042
2043
 
2043
2044
  ---
2044
2045
 
2046
+ ##### `storage`<sup>Optional</sup> <a name="storage" id="@bluedynamics/cdk8s-plone.PloneVinylCacheOptions.property.storage"></a>
2047
+
2048
+ ```typescript
2049
+ public readonly storage: VinylCacheStorage[];
2050
+ ```
2051
+
2052
+ - *Type:* <a href="#@bluedynamics/cdk8s-plone.VinylCacheStorage">VinylCacheStorage</a>[]
2053
+ - *Default:* no storage configured; operator uses varnishd default (~100MB malloc)
2054
+
2055
+ Varnish storage backends (`spec.storage`).
2056
+
2057
+ Each entry becomes a `-s <name>=<type>,<options>` argument to varnishd.
2058
+ If omitted, the operator ships varnishd with its stock default (~100 MB
2059
+ malloc) — almost always too small. Set an explicit malloc size at least
2060
+ matching the pod's memory request to use the allocated memory for caching.
2061
+
2062
+ ---
2063
+
2064
+ *Example*
2065
+
2066
+ ```typescript
2067
+ storage: [{ name: 's0', type: 'malloc', size: '1Gi' }]
2068
+ ```
2069
+
2070
+
2045
2071
  ##### `tolerations`<sup>Optional</sup> <a name="tolerations" id="@bluedynamics/cdk8s-plone.PloneVinylCacheOptions.property.tolerations"></a>
2046
2072
 
2047
2073
  ```typescript
@@ -2434,6 +2460,92 @@ Number of most recent probes to consider.
2434
2460
 
2435
2461
  ---
2436
2462
 
2463
+ ### VinylCacheStorage <a name="VinylCacheStorage" id="@bluedynamics/cdk8s-plone.VinylCacheStorage"></a>
2464
+
2465
+ A Varnish storage backend configuration.
2466
+
2467
+ Maps to `spec.storage[]` on the VinylCache CRD. The operator emits one
2468
+ `-s <name>=<type>,<options>` argument per entry to varnishd.
2469
+
2470
+ Without any storage entry the operator falls back to the varnishd default
2471
+ (~100 MB malloc), which is almost always too small for real workloads.
2472
+
2473
+ #### Initializer <a name="Initializer" id="@bluedynamics/cdk8s-plone.VinylCacheStorage.Initializer"></a>
2474
+
2475
+ ```typescript
2476
+ import { VinylCacheStorage } from '@bluedynamics/cdk8s-plone'
2477
+
2478
+ const vinylCacheStorage: VinylCacheStorage = { ... }
2479
+ ```
2480
+
2481
+ #### Properties <a name="Properties" id="Properties"></a>
2482
+
2483
+ | **Name** | **Type** | **Description** |
2484
+ | --- | --- | --- |
2485
+ | <code><a href="#@bluedynamics/cdk8s-plone.VinylCacheStorage.property.name">name</a></code> | <code>string</code> | Internal storage identifier used in the varnishd `-s` argument. |
2486
+ | <code><a href="#@bluedynamics/cdk8s-plone.VinylCacheStorage.property.type">type</a></code> | <code>string</code> | Storage backend type. |
2487
+ | <code><a href="#@bluedynamics/cdk8s-plone.VinylCacheStorage.property.path">path</a></code> | <code>string</code> | Filesystem path for file-type storage. |
2488
+ | <code><a href="#@bluedynamics/cdk8s-plone.VinylCacheStorage.property.size">size</a></code> | <code>string</code> | Storage allocation as a Kubernetes resource quantity (e.g. "1Gi", "500M"). Required for malloc; required for file. |
2489
+
2490
+ ---
2491
+
2492
+ ##### `name`<sup>Required</sup> <a name="name" id="@bluedynamics/cdk8s-plone.VinylCacheStorage.property.name"></a>
2493
+
2494
+ ```typescript
2495
+ public readonly name: string;
2496
+ ```
2497
+
2498
+ - *Type:* string
2499
+
2500
+ Internal storage identifier used in the varnishd `-s` argument.
2501
+
2502
+ Must be unique within the VinylCache and match `^[a-zA-Z][a-zA-Z0-9_]*$`.
2503
+
2504
+ ---
2505
+
2506
+ ##### `type`<sup>Required</sup> <a name="type" id="@bluedynamics/cdk8s-plone.VinylCacheStorage.property.type"></a>
2507
+
2508
+ ```typescript
2509
+ public readonly type: string;
2510
+ ```
2511
+
2512
+ - *Type:* string
2513
+
2514
+ Storage backend type.
2515
+
2516
+ Only "malloc" and "file" are permitted by the
2517
+ admission webhook.
2518
+
2519
+ ---
2520
+
2521
+ ##### `path`<sup>Optional</sup> <a name="path" id="@bluedynamics/cdk8s-plone.VinylCacheStorage.property.path"></a>
2522
+
2523
+ ```typescript
2524
+ public readonly path: string;
2525
+ ```
2526
+
2527
+ - *Type:* string
2528
+ - *Default:* required for type "file"
2529
+
2530
+ Filesystem path for file-type storage.
2531
+
2532
+ Ignored for malloc.
2533
+
2534
+ ---
2535
+
2536
+ ##### `size`<sup>Optional</sup> <a name="size" id="@bluedynamics/cdk8s-plone.VinylCacheStorage.property.size"></a>
2537
+
2538
+ ```typescript
2539
+ public readonly size: string;
2540
+ ```
2541
+
2542
+ - *Type:* string
2543
+ - *Default:* required for both malloc and file
2544
+
2545
+ Storage allocation as a Kubernetes resource quantity (e.g. "1Gi", "500M"). Required for malloc; required for file.
2546
+
2547
+ ---
2548
+
2437
2549
  ### VinylCacheToleration <a name="VinylCacheToleration" id="@bluedynamics/cdk8s-plone.VinylCacheToleration"></a>
2438
2550
 
2439
2551
  A Kubernetes toleration for the Varnish pods.
@@ -66,6 +66,33 @@ kubectl get pods -n <namespace> -l app.kubernetes.io/managed-by=cloud-vinyl
66
66
 
67
67
  ## Customization
68
68
 
69
+ ### Sizing the Cache Storage
70
+
71
+ Without an explicit `storage` entry, the operator ships varnishd with its
72
+ stock default (~100 MB malloc) — almost always too small. Set a malloc size
73
+ below the pod's memory limit, leaving headroom for varnishd overhead:
74
+
75
+ ```typescript
76
+ new PloneVinylCache(chart, 'cache', {
77
+ plone: plone,
78
+ requestMemory: '512Mi',
79
+ limitMemory: '2Gi',
80
+ storage: [
81
+ { name: 's0', type: 'malloc', size: '1500M' },
82
+ ],
83
+ });
84
+ ```
85
+
86
+ For larger working sets you can combine an in-memory tier with a file-backed
87
+ tier (requires a writable volume mount at the given path):
88
+
89
+ ```typescript
90
+ storage: [
91
+ { name: 'mem', type: 'malloc', size: '500M' },
92
+ { name: 'disk', type: 'file', path: '/var/lib/varnish/disk.bin', size: '10Gi' },
93
+ ]
94
+ ```
95
+
69
96
  ### Custom VCL
70
97
 
71
98
  Override the default Plone VCL snippets for custom caching logic:
@@ -307,6 +307,7 @@ Requires the [cloud-vinyl operator](https://github.com/bluedynamics/cloud-vinyl)
307
307
  | `limitCpu` | `string` | No | `500m` | CPU limit |
308
308
  | `requestMemory` | `string` | No | `256Mi` | Memory request |
309
309
  | `limitMemory` | `string` | No | `512Mi` | Memory limit |
310
+ | `storage` | `VinylCacheStorage[]` | No | - | Varnish storage backends. If omitted, the operator falls back to the varnishd default (~100 MB malloc), which is almost always too small. |
310
311
  | `director` | `string` | No | `shard` | Director type: shard, round_robin, random, hash |
311
312
  | `vclRecvSnippet` | `string` | No | built-in | Custom VCL snippet for vcl_recv |
312
313
  | `vclBackendResponseSnippet` | `string` | No | built-in | Custom VCL snippet for vcl_backend_response |
@@ -314,6 +315,15 @@ Requires the [cloud-vinyl operator](https://github.com/bluedynamics/cloud-vinyl)
314
315
  | `monitoring` | `boolean` | No | `false` | Enable Prometheus metrics and ServiceMonitor |
315
316
  | `tolerations` | `VinylCacheToleration[]` | No | - | Node tolerations for Varnish pods |
316
317
 
318
+ **`VinylCacheStorage` fields:**
319
+
320
+ | Property | Type | Required | Description |
321
+ |----------|------|----------|-------------|
322
+ | `name` | `string` | Yes | Internal storage identifier (must match `^[a-zA-Z][a-zA-Z0-9_]*$`) |
323
+ | `type` | `'malloc' \| 'file'` | Yes | Storage backend type |
324
+ | `size` | `string` | Yes | Kubernetes resource quantity (e.g. `"1Gi"`, `"500M"`) |
325
+ | `path` | `string` | for `file` | Filesystem path for file-type storage |
326
+
317
327
  **Example:**
318
328
  ```typescript
319
329
  const cache = new PloneVinylCache(chart, 'cache', {
@@ -343,6 +353,19 @@ new PloneVinylCache(chart, 'cache', {
343
353
  });
344
354
  ```
345
355
 
356
+ **Storage sizing:**
357
+ ```typescript
358
+ new PloneVinylCache(chart, 'cache', {
359
+ plone: ploneInstance,
360
+ limitMemory: '2Gi',
361
+ storage: [
362
+ { name: 's0', type: 'malloc', size: '1500M' },
363
+ ],
364
+ });
365
+ ```
366
+
367
+ Without an explicit `storage` entry, varnishd runs with its stock default (~100 MB malloc) regardless of the container's memory limit. Size malloc storage below the pod's memory limit to leave headroom for varnishd overhead and transient allocations.
368
+
346
369
  **vs PloneHttpcache:**
347
370
  - `PloneHttpcache` deploys Varnish via mittwald Helm chart (self-contained, no operator needed)
348
371
  - `PloneVinylCache` creates a VinylCache CR managed by the cloud-vinyl operator (requires operator in cluster)
package/lib/httpcache.js CHANGED
@@ -118,5 +118,5 @@ class PloneHttpcache extends constructs_1.Construct {
118
118
  }
119
119
  exports.PloneHttpcache = PloneHttpcache;
120
120
  _a = JSII_RTTI_SYMBOL_1;
121
- PloneHttpcache[_a] = { fqn: "@bluedynamics/cdk8s-plone.PloneHttpcache", version: "0.1.31" };
121
+ PloneHttpcache[_a] = { fqn: "@bluedynamics/cdk8s-plone.PloneHttpcache", version: "0.1.32" };
122
122
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cGNhY2hlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2h0dHBjYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsaUNBQTZCO0FBQzdCLDJDQUF1QztBQXdKdkM7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsc0JBQVM7SUFPM0MsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUE4QjtRQUN0RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksVUFBa0IsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLElBQUksT0FBZSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUM5RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFDbkMsQ0FBQztZQUNELFVBQVUsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ2xDLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDNUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxZQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUM1Qyx1REFBdUQ7WUFDdkQsSUFBSSxFQUFFLDBCQUEwQjtZQUNoQyxLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLE9BQU8sRUFBRSxPQUFPLENBQUMsWUFBWTtZQUM3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QUFJLGdCQUFnQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUNwRCxDQUFDOztBQS9GSCx3Q0FnR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgSGVsbSB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUGxvbmUgfSBmcm9tICcuL3Bsb25lJztcblxuLyoqXG4gKiBBbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBwYXNzIHRvIHRoZSBrdWJlLWh0dHBjYWNoZSBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cGNhY2hlRW52VmFyIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBLdWJlcm5ldGVzIHRvbGVyYXRpb24gZm9yIHRoZSBWYXJuaXNoIHBvZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cGNhY2hlVG9sZXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgdGFpbnQga2V5IHRvIHRvbGVyYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRvciAoRXF1YWwgb3IgRXhpc3RzKS5cbiAgICogQGRlZmF1bHQgJ0VxdWFsJ1xuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0b3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWludCB2YWx1ZSB0byBtYXRjaCAod2hlbiBvcGVyYXRvciBpcyBFcXVhbCkuXG4gICAqIEBkZWZhdWx0IC0gbm8gdmFsdWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFpbnQgZWZmZWN0IHRvIHRvbGVyYXRlIChOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlLCBOb0V4ZWN1dGUpLlxuICAgKiBAZGVmYXVsdCAtIHRvbGVyYXRlIGFsbCBlZmZlY3RzXG4gICAqL1xuICByZWFkb25seSBlZmZlY3Q/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBQbG9uZUh0dHBjYWNoZSAoVmFybmlzaCBjYWNoaW5nIGxheWVyKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG9uZUh0dHBjYWNoZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIFBsb25lIGNvbnN0cnVjdCB0byBhdHRhY2ggdGhlIEhUVFAgY2FjaGUgdG8uXG4gICAqIFRoZSBjYWNoZSB3aWxsIGF1dG9tYXRpY2FsbHkgY29ubmVjdCB0byB0aGUgYmFja2VuZCBhbmQgZnJvbnRlbmQgc2VydmljZXMuXG4gICAqL1xuICByZWFkb25seSBwbG9uZTogUGxvbmU7XG5cbiAgLyoqXG4gICAqIFZhcm5pc2ggVkNMIGNvbmZpZ3VyYXRpb24gYXMgYSBzdHJpbmcuXG4gICAqIElmIHByb3ZpZGVkLCB0aGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB2YXJuaXNoVmNsRmlsZS5cbiAgICogQGRlZmF1bHQgLSBsb2FkZWQgZnJvbSB2YXJuaXNoVmNsRmlsZSBvciBkZWZhdWx0IGNvbmZpZyBmaWxlXG4gICAqL1xuICByZWFkb25seSB2YXJuaXNoVmNsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIGEgVmFybmlzaCBWQ0wgY29uZmlndXJhdGlvbiBmaWxlLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIHVzZXMgdGhlIGRlZmF1bHQgVkNMIGZpbGUgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkuXG4gICAqIEBkZWZhdWx0IC0gdXNlcyBkZWZhdWx0IGNvbmZpZy92YXJuaXNoLnRwbC52Y2xcbiAgICovXG4gIHJlYWRvbmx5IHZhcm5pc2hWY2xGaWxlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIGFuIGV4aXN0aW5nIEt1YmVybmV0ZXMgc2VjcmV0IGNvbnRhaW5pbmcgVmFybmlzaCBhZG1pbiBjcmVkZW50aWFscy5cbiAgICogVGhlIHNlY3JldCBzaG91bGQgYmUgY3JlYXRlZCBzZXBhcmF0ZWx5IGluIHRoZSBzYW1lIG5hbWVzcGFjZS5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWQgKG5vIGV4aXN0aW5nIHNlY3JldClcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nU2VjcmV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDUFUgbGltaXQgZm9yIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJzUwMG0nXG4gICAqL1xuICByZWFkb25seSBsaW1pdENwdT86IHN0cmluZztcblxuICAvKipcbiAgICogTWVtb3J5IGxpbWl0IGZvciBWYXJuaXNoIHBvZHMuXG4gICAqIEBkZWZhdWx0ICc1MDBNaSdcbiAgICovXG4gIHJlYWRvbmx5IGxpbWl0TWVtb3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDUFUgcmVxdWVzdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnMTAwbSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RDcHU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1lbW9yeSByZXF1ZXN0IGZvciBWYXJuaXNoIHBvZHMuXG4gICAqIEBkZWZhdWx0ICcxMDBNaSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RNZW1vcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBQcm9tZXRoZXVzIFNlcnZpY2VNb25pdG9yIGZvciBtZXRyaWNzIGNvbGxlY3Rpb24uXG4gICAqIFJlcXVpcmVzIFByb21ldGhldXMgT3BlcmF0b3IgdG8gYmUgaW5zdGFsbGVkIGluIHRoZSBjbHVzdGVyLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZW1vbml0b3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIFByb21ldGhldXMgZXhwb3J0ZXIgZm9yIFZhcm5pc2ggbWV0cmljcy5cbiAgICogV2hlbiBlbmFibGVkLCB0aGUgZXhwb3J0ZXIgc2lkZWNhciBjb250YWluZXIgd2lsbCBiZSBkZXBsb3llZCBhbG9uZ3NpZGUgVmFybmlzaC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhwb3J0ZXJFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmVyc2lvbiBvZiB0aGUga3ViZS1odHRwY2FjaGUgSGVsbSBjaGFydCB0byB1c2UuXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBsYXRlc3QgdmVyc2lvbiBmcm9tIHRoZSByZXBvc2l0b3J5IHdpbGwgYmUgdXNlZC5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIChsYXRlc3QpXG4gICAqL1xuICByZWFkb25seSBjaGFydFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZlcnNpb24gb2YgdGhlIGt1YmUtaHR0cGNhY2hlIENvbnRhaW5lciBJbWFnZSB0byB1c2UuXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBsYXRlc3QgdmVyc2lvbiBmcm9tIHRoZSByZXBvc2l0b3J5IHdpbGwgYmUgdXNlZC5cbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkIChjaGFydFZlcnNpb24gPSB3aXRoIGVhY2ggY2hhcnQgcmVsZWFzZSB0aGVyZSBpcyBhbiBpbWFnZSByZWxlYXNlIHRvbyApXG4gICAqL1xuICByZWFkb25seSBhcHBWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgVmFybmlzaCBwb2QgcmVwbGljYXMgdG8gcnVuLlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSByZXBsaWNhcz86IG51bWJlcjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gcGFzcyB0byB0aGUga3ViZS1odHRwY2FjaGUgY29udGFpbmVyLlxuICAgKiBUaGVzZSBhcmUgYXBwZW5kZWQgdG8gdGhlIGJ1aWx0LWluIGVudiB2YXJzIChCQUNLRU5EX1NFUlZJQ0VfTkFNRSwgZXRjLilcbiAgICogYW5kIGNhbiBiZSByZWZlcmVuY2VkIGluIFZDTCB0ZW1wbGF0ZXMgdXNpbmcgR28gdGVtcGxhdGUgc3ludGF4OiB7eyAuRW52LlZBUl9OQU1FIH19XG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBlbnYgdmFyc1xuICAgKi9cbiAgcmVhZG9ubHkgZXh0cmFFbnZWYXJzPzogSHR0cGNhY2hlRW52VmFyW107XG5cbiAgLyoqXG4gICAqIFRvbGVyYXRpb25zIGZvciB0aGUgVmFybmlzaCBwb2RzLlxuICAgKiBVc2UgdGhpcyB0byBhbGxvdyBzY2hlZHVsaW5nIG9uIG5vZGVzIHdpdGggc3BlY2lmaWMgdGFpbnRzLFxuICAgKiBlLmcuIG5vZGVzIHRhaW50ZWQgd2l0aCBrdWJlcm5ldGVzLmlvL2FyY2g9YW1kNjQ6Tm9TY2hlZHVsZS5cbiAgICogQGRlZmF1bHQgLSBubyB0b2xlcmF0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgdG9sZXJhdGlvbnM/OiBIdHRwY2FjaGVUb2xlcmF0aW9uW107XG59XG5cbi8qKlxuICogUGxvbmVIdHRwY2FjaGUgY29uc3RydWN0IGZvciBkZXBsb3lpbmcgVmFybmlzaCBIVFRQIGNhY2hpbmcgbGF5ZXIuXG4gKlxuICogVXNlcyB0aGUgbWl0dHdhbGQva3ViZS1odHRwY2FjaGUgSGVsbSBjaGFydCB0byBkZXBsb3kgVmFybmlzaCBhcyBhXG4gKiBjYWNoaW5nIHByb3h5IGluIGZyb250IG9mIFBsb25lIGJhY2tlbmQgYW5kL29yIGZyb250ZW5kIHNlcnZpY2VzLlxuICpcbiAqIFRoZSBjYWNoZSBhdXRvbWF0aWNhbGx5IGNvbm5lY3RzIHRvIHRoZSBQbG9uZSBzZXJ2aWNlcyBhbmQgcHJvdmlkZXNcbiAqIEhUVFAgY2FjaGUgaW52YWxpZGF0aW9uIGNhcGFiaWxpdGllcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcGxvbmUgPSBuZXcgUGxvbmUoY2hhcnQsICdwbG9uZScpO1xuICogY29uc3QgY2FjaGUgPSBuZXcgUGxvbmVIdHRwY2FjaGUoY2hhcnQsICdjYWNoZScsIHtcbiAqICAgcGxvbmU6IHBsb25lLFxuICogICBleGlzdGluZ1NlY3JldDogJ3Zhcm5pc2gtc2VjcmV0JyxcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgUGxvbmVIdHRwY2FjaGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgVmFybmlzaCBzZXJ2aWNlIGNyZWF0ZWQgYnkgdGhlIEhlbG0gY2hhcnQuXG4gICAqIFVzZSB0aGlzIHRvIHJlZmVyZW5jZSB0aGUgY2FjaGUgc2VydmljZSBmcm9tIGluZ3Jlc3Mgb3Igb3RoZXIgY29uc3RydWN0cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBodHRwY2FjaGVTZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBsb25lSHR0cGNhY2hlT3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgbGV0IHZhcm5pc2hWY2w6IHN0cmluZztcbiAgICBpZiAoIW9wdGlvbnMudmFybmlzaFZjbCkge1xuICAgICAgbGV0IHZjbFBhdGg6IHN0cmluZztcbiAgICAgIGlmICghb3B0aW9ucy52YXJuaXNoVmNsRmlsZSkge1xuICAgICAgICB2Y2xQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ2NvbmZpZycsICd2YXJuaXNoLnRwbC52Y2wnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZjbFBhdGggPSBvcHRpb25zLnZhcm5pc2hWY2xGaWxlO1xuICAgICAgfVxuICAgICAgdmFybmlzaFZjbCA9IGZzLnJlYWRGaWxlU3luYyh2Y2xQYXRoLCAndXRmOCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXJuaXNoVmNsID0gb3B0aW9ucy52YXJuaXNoVmNsO1xuICAgIH1cbiAgICBjb25zdCBpbWFnZVRhZyA9IG9wdGlvbnMuYXBwVmVyc2lvbiA/PyBvcHRpb25zLmNoYXJ0VmVyc2lvbjtcbiAgICBjb25zdCBodHRwY2FjaGUgPSBuZXcgSGVsbSh0aGlzLCAnaHR0cGNhY2hlJywge1xuICAgICAgLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9taXR0d2FsZC9rdWJlLWh0dHBjYWNoZS9jaGFydFxuICAgICAgcmVwbzogJ2h0dHBzOi8vaGVsbS5taXR0d2FsZC5kZScsXG4gICAgICBjaGFydDogJ2t1YmUtaHR0cGNhY2hlJyxcbiAgICAgIHZlcnNpb246IG9wdGlvbnMuY2hhcnRWZXJzaW9uLFxuICAgICAgdmFsdWVzOiB7XG4gICAgICAgIHJlcGxpY2FDb3VudDogb3B0aW9ucy5yZXBsaWNhcyA/PyAyLFxuICAgICAgICAuLi4oaW1hZ2VUYWcgJiYgeyBpbWFnZTogeyB0YWc6IGltYWdlVGFnIH0gfSksXG4gICAgICAgIGNhY2hlOiB7XG4gICAgICAgICAgYmFja2VuZFNlcnZpY2U6IG9wdGlvbnMucGxvbmUuYmFja2VuZFNlcnZpY2VOYW1lLFxuICAgICAgICAgIGZyb250ZW5kV2F0Y2g6IGZhbHNlLFxuICAgICAgICAgIGJhY2tlbmRXYXRjaDogdHJ1ZSxcbiAgICAgICAgICBleGlzdGluZ1NlY3JldDogb3B0aW9ucy5leGlzdGluZ1NlY3JldCA/PyB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFdvcmthcm91bmQ6IHVwc3RyZWFtIGNoYXJ0IGFjY2VwdHMgYmFja2VuZFBvcnROYW1lIGJ1dCBuZXZlclxuICAgICAgICAvLyByZW5kZXJzIGl0IGFzIENMSSBhcmcuIFBhc3MgdmlhIGNhY2hlRXh0cmFBcmdzIGluc3RlYWQuXG4gICAgICAgIGNhY2hlRXh0cmFBcmdzOiAnLSAtYmFja2VuZC1wb3J0bmFtZT1iYWNrZW5kLWh0dHAnLFxuICAgICAgICB2Y2xUZW1wbGF0ZTogdmFybmlzaFZjbCxcbiAgICAgICAgZXh0cmFFbnZWYXJzOiBbXG4gICAgICAgICAgeyBuYW1lOiAnQkFDS0VORF9TRVJWSUNFX05BTUUnLCB2YWx1ZTogb3B0aW9ucy5wbG9uZS5iYWNrZW5kU2VydmljZU5hbWUgfSxcbiAgICAgICAgICB7IG5hbWU6ICdCQUNLRU5EX1NFUlZJQ0VfUE9SVCcsIHZhbHVlOiAnODA4MCcgfSxcbiAgICAgICAgICB7IG5hbWU6ICdCQUNLRU5EX1NJVEVfSUQnLCB2YWx1ZTogb3B0aW9ucy5wbG9uZS5zaXRlSWQgfSxcbiAgICAgICAgICB7IG5hbWU6ICdGUk9OVEVORF9TRVJWSUNFX05BTUUnLCB2YWx1ZTogb3B0aW9ucy5wbG9uZS5mcm9udGVuZFNlcnZpY2VOYW1lIH0sXG4gICAgICAgICAgeyBuYW1lOiAnRlJPTlRFTkRfU0VSVklDRV9QT1JUJywgdmFsdWU6ICczMDAwJyB9LFxuICAgICAgICAgIC4uLihvcHRpb25zLmV4dHJhRW52VmFycyA/PyBbXSksXG4gICAgICAgIF0sXG4gICAgICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWl0dHdhbGQva3ViZS1odHRwY2FjaGUvaXNzdWVzLzI1M1xuICAgICAgICBub2RlU2VsZWN0b3I6IHtcbiAgICAgICAgICAna3ViZXJuZXRlcy5pby9hcmNoJzogJ2FtZDY0JyxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uKG9wdGlvbnMudG9sZXJhdGlvbnMgJiYgeyB0b2xlcmF0aW9uczogb3B0aW9ucy50b2xlcmF0aW9ucyB9KSxcbiAgICAgICAgcmVzb3VyY2VzOiB7XG4gICAgICAgICAgbGltaXRzOiB7XG4gICAgICAgICAgICBjcHU6IG9wdGlvbnMubGltaXRDcHUgfHwgJzUwMG0nLFxuICAgICAgICAgICAgbWVtb3J5OiBvcHRpb25zLmxpbWl0TWVtb3J5IHx8ICc1MDBNaScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1ZXN0czoge1xuICAgICAgICAgICAgY3B1OiBvcHRpb25zLnJlcXVlc3RDcHUgfHwgJzEwMG0nLFxuICAgICAgICAgICAgbWVtb3J5OiBvcHRpb25zLnJlcXVlc3RNZW1vcnkgfHwgJzEwME1pJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByYmFjOiB7XG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZXhwb3J0ZXI6IHtcbiAgICAgICAgICBlbmFibGVkOiBvcHRpb25zLmV4cG9ydGVyRW5hYmxlZCA/PyB0cnVlLFxuICAgICAgICAgIHJlc291cmNlczoge1xuICAgICAgICAgICAgbGltaXRzOiB7XG4gICAgICAgICAgICAgIGNwdTogJzEwMG0nLFxuICAgICAgICAgICAgICBtZW1vcnk6ICcxMDBNaScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVxdWVzdHM6IHtcbiAgICAgICAgICAgICAgY3B1OiAnMTBtJyxcbiAgICAgICAgICAgICAgbWVtb3J5OiAnNTBNaScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHNlcnZpY2VNb25pdG9yOiB7XG4gICAgICAgICAgZW5hYmxlZDogb3B0aW9ucy5zZXJ2aWNlbW9uaXRvciB8fCBmYWxzZSxcbiAgICAgICAgICBzY3JhcGVTaWduYWxsZXI6IG9wdGlvbnMuc2VydmljZW1vbml0b3IgfHwgZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGh0dHBjYWNoZVNlcnZpY2UgPSBodHRwY2FjaGUuYXBpT2JqZWN0cy5maW5kKChjb25zdHJ1Y3QpID0+IHtcbiAgICAgIGlmICgoY29uc3RydWN0LmtpbmQgPT09ICdTZXJ2aWNlJykgJiYgKGNvbnN0cnVjdC5tZXRhZGF0YS5uYW1lPy5lbmRzV2l0aCgna3ViZS1odHRwY2FjaGUnKSkpIHtcbiAgICAgICAgcmV0dXJuIGNvbnN0cnVjdC5uYW1lO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KTtcbiAgICBpZiAoaHR0cGNhY2hlU2VydmljZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGh0dHBjYWNoZSBzZXJ2aWNlJyk7XG4gICAgfVxuICAgIHRoaXMuaHR0cGNhY2hlU2VydmljZU5hbWUgPSBodHRwY2FjaGVTZXJ2aWNlLm5hbWU7XG4gIH1cbn0iXX0=
package/lib/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { Plone, PloneOptions, PloneBaseOptions, PloneVariant, PloneSecurityContext, PloneCapabilities } from './plone';
2
2
  export { PloneHttpcache, PloneHttpcacheOptions, HttpcacheEnvVar, HttpcacheToleration } from './httpcache';
3
- export { PloneVinylCache, PloneVinylCacheOptions, VinylCacheToleration, VinylCacheBackend, VinylCacheBackendProbe } from './vinylcache';
3
+ export { PloneVinylCache, PloneVinylCacheOptions, VinylCacheToleration, VinylCacheBackend, VinylCacheBackendProbe, VinylCacheStorage } from './vinylcache';
package/lib/index.js CHANGED
@@ -8,4 +8,4 @@ var httpcache_1 = require("./httpcache");
8
8
  Object.defineProperty(exports, "PloneHttpcache", { enumerable: true, get: function () { return httpcache_1.PloneHttpcache; } });
9
9
  var vinylcache_1 = require("./vinylcache");
10
10
  Object.defineProperty(exports, "PloneVinylCache", { enumerable: true, get: function () { return vinylcache_1.PloneVinylCache; } });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQXVIO0FBQTlHLDhGQUFBLEtBQUssT0FBQTtBQUFrQyxxR0FBQSxZQUFZLE9BQUE7QUFDNUQseUNBQTBHO0FBQWpHLDJHQUFBLGNBQWMsT0FBQTtBQUN2QiwyQ0FBd0k7QUFBL0gsNkdBQUEsZUFBZSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgUGxvbmUsIFBsb25lT3B0aW9ucywgUGxvbmVCYXNlT3B0aW9ucywgUGxvbmVWYXJpYW50LCBQbG9uZVNlY3VyaXR5Q29udGV4dCwgUGxvbmVDYXBhYmlsaXRpZXMgfSBmcm9tICcuL3Bsb25lJztcbmV4cG9ydCB7IFBsb25lSHR0cGNhY2hlLCBQbG9uZUh0dHBjYWNoZU9wdGlvbnMsIEh0dHBjYWNoZUVudlZhciwgSHR0cGNhY2hlVG9sZXJhdGlvbiB9IGZyb20gJy4vaHR0cGNhY2hlJztcbmV4cG9ydCB7IFBsb25lVmlueWxDYWNoZSwgUGxvbmVWaW55bENhY2hlT3B0aW9ucywgVmlueWxDYWNoZVRvbGVyYXRpb24sIFZpbnlsQ2FjaGVCYWNrZW5kLCBWaW55bENhY2hlQmFja2VuZFByb2JlIH0gZnJvbSAnLi92aW55bGNhY2hlJztcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsaUNBQXVIO0FBQTlHLDhGQUFBLEtBQUssT0FBQTtBQUFrQyxxR0FBQSxZQUFZLE9BQUE7QUFDNUQseUNBQTBHO0FBQWpHLDJHQUFBLGNBQWMsT0FBQTtBQUN2QiwyQ0FBMko7QUFBbEosNkdBQUEsZUFBZSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgUGxvbmUsIFBsb25lT3B0aW9ucywgUGxvbmVCYXNlT3B0aW9ucywgUGxvbmVWYXJpYW50LCBQbG9uZVNlY3VyaXR5Q29udGV4dCwgUGxvbmVDYXBhYmlsaXRpZXMgfSBmcm9tICcuL3Bsb25lJztcbmV4cG9ydCB7IFBsb25lSHR0cGNhY2hlLCBQbG9uZUh0dHBjYWNoZU9wdGlvbnMsIEh0dHBjYWNoZUVudlZhciwgSHR0cGNhY2hlVG9sZXJhdGlvbiB9IGZyb20gJy4vaHR0cGNhY2hlJztcbmV4cG9ydCB7IFBsb25lVmlueWxDYWNoZSwgUGxvbmVWaW55bENhY2hlT3B0aW9ucywgVmlueWxDYWNoZVRvbGVyYXRpb24sIFZpbnlsQ2FjaGVCYWNrZW5kLCBWaW55bENhY2hlQmFja2VuZFByb2JlLCBWaW55bENhY2hlU3RvcmFnZSB9IGZyb20gJy4vdmlueWxjYWNoZSc7XG4iXX0=
package/lib/plone.js CHANGED
@@ -262,5 +262,5 @@ class Plone extends constructs_1.Construct {
262
262
  }
263
263
  exports.Plone = Plone;
264
264
  _a = JSII_RTTI_SYMBOL_1;
265
- Plone[_a] = { fqn: "@bluedynamics/cdk8s-plone.Plone", version: "0.1.31" };
265
+ Plone[_a] = { fqn: "@bluedynamics/cdk8s-plone.Plone", version: "0.1.32" };
266
266
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGxvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBOEI7QUFDOUIsdUNBQXVDO0FBQ3ZDLDJDQUF1QztBQUN2Qyw2Q0FBdUU7QUFDdkUsdUNBQTRDO0FBRTVDLDJFQUF3RztBQUN4Ryx1Q0FBeUM7QUF3UnpDOztHQUVHO0FBQ0gsSUFBWSxZQVlYO0FBWkQsV0FBWSxZQUFZO0lBQ3RCOzs7T0FHRztJQUNILCtCQUFlLENBQUE7SUFFZjs7O09BR0c7SUFDSCx1Q0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBWlcsWUFBWSw0QkFBWixZQUFZLFFBWXZCO0FBZ0REOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQWEsS0FBTSxTQUFRLHNCQUFTO0lBdUJsQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFVBQXdCLEVBQUU7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFFckQsMkVBQTJFO1FBQzNFLFVBQVU7UUFDVixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxNQUFNLGFBQWEsR0FBRztZQUNwQix3QkFBd0IsRUFBRSxlQUFlO1lBQ3pDLDZCQUE2QixFQUFFLFNBQVM7WUFDeEMsMkJBQTJCLEVBQUUsT0FBTyxDQUFDLE9BQU8sSUFBSSxXQUFXO1NBQzVELENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFekIsVUFBVTtRQUNWLElBQUksY0FBYyxHQUEyQjtZQUMz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b0JBQ1IsV0FBVyxFQUFFO3dCQUNYLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUM7cUJBQ25FO2lCQUNGO2dCQUNELFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO3dCQUNuQyxHQUFHLENBQUMsVUFBVSxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDO3dCQUM3QyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7d0JBQ2pCLFFBQVEsRUFBRSxLQUFLO3FCQUNoQjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF6UEgsc0JBMFBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmFtZXMgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgKiBhcyBrcGx1cyBmcm9tICdjZGs4cy1wbHVzLTMwJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUGxvbmVEZXBsb3ltZW50LCBQbG9uZURlcGxveW1lbnRPcHRpb25zIH0gZnJvbSAnLi9kZXBsb3ltZW50JztcbmltcG9ydCB7IEludE9yU3RyaW5nIH0gZnJvbSAnLi9pbXBvcnRzL2s4cyc7XG5pbXBvcnQgKiBhcyBrOHMgZnJvbSAnLi9pbXBvcnRzL2s4cyc7XG5pbXBvcnQgeyBTZXJ2aWNlTW9uaXRvciwgU2VydmljZU1vbml0b3JTcGVjRW5kcG9pbnRzVGFyZ2V0UG9ydCB9IGZyb20gJy4vaW1wb3J0cy9tb25pdG9yaW5nLmNvcmVvcy5jb20nO1xuaW1wb3J0IHsgUGxvbmVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlJztcblxuLyoqXG4gKiBMaW51eCBjYXBhYmlsaXRpZXMgdG8gYWRkIG9yIGRyb3Agb24gYSBjb250YWluZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvbmVDYXBhYmlsaXRpZXMge1xuICAvKipcbiAgICogQ2FwYWJpbGl0aWVzIHRvIGFkZCAoZS5nLiAnU1lTX1BUUkFDRScsICdORVRfQURNSU4nKS5cbiAgICogQGRlZmF1bHQgLSBubyBjYXBhYmlsaXRpZXMgYWRkZWRcbiAgICovXG4gIHJlYWRvbmx5IGFkZD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBDYXBhYmlsaXRpZXMgdG8gZHJvcCAoZS5nLiAnQUxMJywgJ05FVF9SQVcnKS5cbiAgICogQGRlZmF1bHQgLSBubyBjYXBhYmlsaXRpZXMgZHJvcHBlZFxuICAgKi9cbiAgcmVhZG9ubHkgZHJvcD86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFNlY3VyaXR5IGNvbnRleHQgZm9yIGEgUGxvbmUgY29udGFpbmVyLlxuICogQ29udHJvbHMgcHJpdmlsZWdlIGFuZCBhY2Nlc3Mgc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxvbmVTZWN1cml0eUNvbnRleHQge1xuICAvKipcbiAgICogTGludXggY2FwYWJpbGl0aWVzIHRvIGFkZCBvciBkcm9wLlxuICAgKiBAZXhhbXBsZSB7IGFkZDogWydTWVNfUFRSQUNFJ10gfVxuICAgKiBAZGVmYXVsdCAtIG5vIGNhcGFiaWxpdHkgY2hhbmdlc1xuICAgKi9cbiAgcmVhZG9ubHkgY2FwYWJpbGl0aWVzPzogUGxvbmVDYXBhYmlsaXRpZXM7XG5cbiAgLyoqXG4gICAqIFJ1biB0aGUgY29udGFpbmVyIGFzIGEgc3BlY2lmaWMgdXNlciBJRC5cbiAgICogQGRlZmF1bHQgLSBjb250YWluZXIgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgcnVuQXNVc2VyPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBSdW4gdGhlIGNvbnRhaW5lciBhcyBhIHNwZWNpZmljIGdyb3VwIElELlxuICAgKiBAZGVmYXVsdCAtIGNvbnRhaW5lciBkZWZhdWx0XG4gICAqL1xuICByZWFkb25seSBydW5Bc0dyb3VwPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBSZXF1aXJlIHRoZSBjb250YWluZXIgdG8gcnVuIGFzIG5vbi1yb290LlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgcnVuQXNOb25Sb290PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTW91bnQgdGhlIHJvb3QgZmlsZXN5c3RlbSBhcyByZWFkLW9ubHkuXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSByZWFkT25seVJvb3RGaWxlc3lzdGVtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWxsb3cgcHJpdmlsZWdlIGVzY2FsYXRpb24gZm9yIHRoZSBjb250YWluZXIgcHJvY2Vzcy5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJ1biB0aGUgY29udGFpbmVyIGluIHByaXZpbGVnZWQgbW9kZS5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IHByaXZpbGVnZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEJhc2Ugb3B0aW9ucyBmb3IgUGxvbmUgYmFja2VuZCBvciBmcm9udGVuZCBjb25maWd1cmF0aW9uLlxuICogVGhlc2Ugb3B0aW9ucyBjb250cm9sIGNvbnRhaW5lciBpbWFnZSwgcmVwbGljYSBjb3VudCwgcmVzb3VyY2UgbGltaXRzLFxuICogZW52aXJvbm1lbnQgdmFyaWFibGVzLCBhbmQgaGVhbHRoIHByb2Jlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG9uZUJhc2VPcHRpb25zIHtcbiAgLyoqXG4gICAqIENvbnRhaW5lciBpbWFnZSB0byB1c2UgZm9yIHRoZSBkZXBsb3ltZW50LlxuICAgKiBAZXhhbXBsZSAncGxvbmUvcGxvbmUtYmFja2VuZDo2LjAuMTAnIG9yICdwbG9uZS9wbG9uZS1mcm9udGVuZDoxNi4wLjAnXG4gICAqIEBkZWZhdWx0IC0gJ3Bsb25lL3Bsb25lLWJhY2tlbmQ6bGF0ZXN0JyBmb3IgYmFja2VuZCwgJ3Bsb25lL3Bsb25lLWZyb250ZW5kOmxhdGVzdCcgZm9yIGZyb250ZW5kXG4gICAqL1xuICByZWFkb25seSBpbWFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW1hZ2UgcHVsbCBwb2xpY3kgZm9yIHRoZSBjb250YWluZXIuXG4gICAqIEBkZWZhdWx0ICdJZk5vdFByZXNlbnQnXG4gICAqL1xuICByZWFkb25seSBpbWFnZVB1bGxQb2xpY3k/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBwb2QgcmVwbGljYXMgdG8gcnVuLlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSByZXBsaWNhcz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgcG9kcyB0aGF0IGNhbiBiZSB1bmF2YWlsYWJsZSBkdXJpbmcgdXBkYXRlcy5cbiAgICogQ2FuIGJlIGFuIGFic29sdXRlIG51bWJlciAoZS5nLiwgMSkgb3IgYSBwZXJjZW50YWdlIChlLmcuLCAnNTAlJykuXG4gICAqIFVzZWQgaW4gUG9kRGlzcnVwdGlvbkJ1ZGdldCBpZiBzcGVjaWZpZWQuXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkIChub3Qgc2V0KVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4VW5hdmFpbGFibGU/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gbnVtYmVyIG9mIHBvZHMgdGhhdCBtdXN0IGJlIGF2YWlsYWJsZSBkdXJpbmcgdXBkYXRlcy5cbiAgICogQ2FuIGJlIGFuIGFic29sdXRlIG51bWJlciAoZS5nLiwgMSkgb3IgYSBwZXJjZW50YWdlIChlLmcuLCAnNTAlJykuXG4gICAqIFVzZWQgaW4gUG9kRGlzcnVwdGlvbkJ1ZGdldCBpZiBzcGVjaWZpZWQuXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkIChub3Qgc2V0KVxuICAgKi9cbiAgcmVhZG9ubHkgbWluQXZhaWxhYmxlPzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDUFUgbGltaXQgZm9yIHRoZSBjb250YWluZXIuXG4gICAqIEBleGFtcGxlICc1MDBtJyBvciAnMScgb3IgJzIwMDBtJ1xuICAgKiBAZGVmYXVsdCAnNTAwbScgZm9yIGJvdGggYmFja2VuZCBhbmQgZnJvbnRlbmRcbiAgICovXG4gIHJlYWRvbmx5IGxpbWl0Q3B1Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNZW1vcnkgbGltaXQgZm9yIHRoZSBjb250YWluZXIuXG4gICAqIEBleGFtcGxlICc1MTJNaScgb3IgJzFHaSdcbiAgICogQGRlZmF1bHQgJzUxMk1pJyBmb3IgYmFja2VuZCwgJzFHaScgZm9yIGZyb250ZW5kXG4gICAqL1xuICByZWFkb25seSBsaW1pdE1lbW9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogQ1BVIHJlcXVlc3QgZm9yIHRoZSBjb250YWluZXIuXG4gICAqIEBleGFtcGxlICcyMDBtJyBvciAnMC41J1xuICAgKiBAZGVmYXVsdCAnMjAwbSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RDcHU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1lbW9yeSByZXF1ZXN0IGZvciB0aGUgY29udGFpbmVyLlxuICAgKiBAZXhhbXBsZSAnMjU2TWknIG9yICc1MTJNaSdcbiAgICogQGRlZmF1bHQgJzI1Nk1pJ1xuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdE1lbW9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBpbiB0aGUgY29udGFpbmVyLlxuICAgKiBVc2UgY2RrOHMtcGx1cy0zMCBFbnYgY2xhc3MgdG8gZGVmaW5lIHZhcmlhYmxlcyBhbmQgc291cmNlcy5cbiAgICogQGRlZmF1bHQgLSB1bmRlZmluZWQgKG5vIGFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzKVxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBrcGx1cy5FbnY7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSByZWFkaW5lc3MgcHJvYmUgZm9yIHRoZSBjb250YWluZXIuXG4gICAqIFJlYWRpbmVzcyBwcm9iZXMgZGV0ZXJtaW5lIHdoZW4gYSBjb250YWluZXIgaXMgcmVhZHkgdG8gYWNjZXB0IHRyYWZmaWMuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJlYWRpbmVzc0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciBjb250YWluZXIgc3RhcnQgYmVmb3JlIHJlYWRpbmVzcyBwcm9iZSBpcyBpbml0aWF0ZWQuXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICByZWFkb25seSByZWFkaW5lc3NJbml0aWFsRGVsYXlTZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcmVhZGluZXNzIHByb2JlIHRpbWVzIG91dC5cbiAgICogQGRlZmF1bHQgMTVcbiAgICovXG4gIHJlYWRvbmx5IHJlYWRpbmVzc1RpbWVvdXRTZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBIb3cgb2Z0ZW4gKGluIHNlY29uZHMpIHRvIHBlcmZvcm0gdGhlIHJlYWRpbmVzcyBwcm9iZS5cbiAgICogQGRlZmF1bHQgMTBcbiAgICovXG4gIHJlYWRvbmx5IHJlYWRpbmVzc1BlcmlvZFNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcmVhZGluZXNzIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgc3VjY2Vzc2Z1bC5cbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgcmVhZGluZXNzU3VjY2Vzc1RocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogTWluaW11bSBjb25zZWN1dGl2ZSBmYWlsdXJlcyBmb3IgdGhlIHJlYWRpbmVzcyBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZC5cbiAgICogQGRlZmF1bHQgM1xuICAgKi9cbiAgcmVhZG9ubHkgcmVhZGluZXNzRmFpbHVyZVRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogRW5hYmxlIGxpdmVuZXNzIHByb2JlIGZvciB0aGUgY29udGFpbmVyLlxuICAgKiBMaXZlbmVzcyBwcm9iZXMgZGV0ZXJtaW5lIHdoZW4gdG8gcmVzdGFydCBhIGNvbnRhaW5lci5cbiAgICogUmVjb21tZW5kZWQ6IHRydWUgZm9yIGZyb250ZW5kLCBmYWxzZSBmb3IgYmFja2VuZCAoWm9wZSBoYXMgaXRzIG93biByZWNvdmVyeSkuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBsaXZlbmVzc0VuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciBjb250YWluZXIgc3RhcnQgYmVmb3JlIGxpdmVuZXNzIHByb2JlIGlzIGluaXRpYXRlZC5cbiAgICogQGRlZmF1bHQgMzBcbiAgICovXG4gIHJlYWRvbmx5IGxpdmVuZXNzSW5pdGlhbERlbGF5U2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIGxpdmVuZXNzIHByb2JlIHRpbWVzIG91dC5cbiAgICogQGRlZmF1bHQgNVxuICAgKi9cbiAgcmVhZG9ubHkgbGl2ZW5lc3NUaW1lb3V0U2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBsaXZlbmVzcyBwcm9iZS5cbiAgICogQGRlZmF1bHQgMTBcbiAgICovXG4gIHJlYWRvbmx5IGxpdmVuZXNzUGVyaW9kU2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBsaXZlbmVzcyBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwuXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGxpdmVuZXNzU3VjY2Vzc1RocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogTWluaW11bSBjb25zZWN1dGl2ZSBmYWlsdXJlcyBmb3IgdGhlIGxpdmVuZXNzIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgZmFpbGVkLlxuICAgKiBAZGVmYXVsdCAzXG4gICAqL1xuICByZWFkb25seSBsaXZlbmVzc0ZhaWx1cmVUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFubm90YXRpb25zIHRvIGFkZCB0byB0aGUgRGVwbG95bWVudCBtZXRhZGF0YS5cbiAgICogQGV4YW1wbGUgeyAnZGVwbG95bWVudC5rdWJlcm5ldGVzLmlvL3JldmlzaW9uJzogJzEnIH1cbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIGFubm90YXRpb25zXG4gICAqL1xuICByZWFkb25seSBhbm5vdGF0aW9ucz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBBbm5vdGF0aW9ucyB0byBhZGQgdG8gdGhlIFBvZCB0ZW1wbGF0ZSBtZXRhZGF0YS5cbiAgICogQ29tbW9uIGZvciBQcm9tZXRoZXVzLCBJc3RpbywgYmFja3VwIHBvbGljaWVzLCBldGMuXG4gICAqIEBleGFtcGxlIHsgJ3Byb21ldGhldXMuaW8vc2NyYXBlJzogJ3RydWUnLCAncHJvbWV0aGV1cy5pby9wb3J0JzogJzgwODAnIH1cbiAgICogQGRlZmF1bHQgLSBubyBhZGRpdGlvbmFsIGFubm90YXRpb25zXG4gICAqL1xuICByZWFkb25seSBwb2RBbm5vdGF0aW9ucz86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBBbm5vdGF0aW9ucyB0byBhZGQgdG8gdGhlIFNlcnZpY2UgbWV0YWRhdGEuXG4gICAqIENvbW1vbiBmb3IgZXh0ZXJuYWwtZG5zLCBsb2FkIGJhbGFuY2Vycywgc2VydmljZSBtZXNoLCBldGMuXG4gICAqIEBleGFtcGxlIHsgJ2V4dGVybmFsLWRucy5hbHBoYS5rdWJlcm5ldGVzLmlvL2hvc3RuYW1lJzogJ3Bsb25lLmV4YW1wbGUuY29tJyB9XG4gICAqIEBkZWZhdWx0IC0gbm8gYWRkaXRpb25hbCBhbm5vdGF0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZUFubm90YXRpb25zPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBQcm9tZXRoZXVzIFNlcnZpY2VNb25pdG9yIGZvciBtZXRyaWNzIGNvbGxlY3Rpb24uXG4gICAqIFJlcXVpcmVzIFByb21ldGhldXMgT3BlcmF0b3IgdG8gYmUgaW5zdGFsbGVkIGluIHRoZSBjbHVzdGVyLlxuICAgKiBXaGVuIGVuYWJsZWQsIGEgU2VydmljZU1vbml0b3IgcmVzb3VyY2Ugd2lsbCBiZSBjcmVhdGVkIHRvIHNjcmFwZSBtZXRyaWNzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZW1vbml0b3I/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQb3J0IG5hbWUgb3IgbnVtYmVyIHRvIHNjcmFwZSBtZXRyaWNzIGZyb20uXG4gICAqIE9ubHkgdXNlZCB3aGVuIHNlcnZpY2Vtb25pdG9yIGlzIGVuYWJsZWQuXG4gICAqIEBkZWZhdWx0IC0gdXNlcyB0aGUgbWFpbiBzZXJ2aWNlIHBvcnRcbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY3NQb3J0Pzogc3RyaW5nIHwgbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHNjcmFwZSBtZXRyaWNzIGZyb20uXG4gICAqIE9ubHkgdXNlZCB3aGVuIHNlcnZpY2Vtb25pdG9yIGlzIGVuYWJsZWQuXG4gICAqIEBkZWZhdWx0ICcvbWV0cmljcydcbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY3NQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOb2RlIHNlbGVjdG9yIGxhYmVscyBmb3IgcG9kIHNjaGVkdWxpbmcuXG4gICAqIFVzZSB0byBjb25zdHJhaW4gcG9kcyB0byBub2RlcyB3aXRoIG1hdGNoaW5nIGxhYmVscywgZS5nLiBmb3IgcmVnaW9uIGFmZmluaXR5LlxuICAgKiBAZXhhbXBsZSB7ICd0b3BvbG9neS5rdWJlcm5ldGVzLmlvL3JlZ2lvbic6ICdmc24xJyB9XG4gICAqIEBkZWZhdWx0IC0gbm8gbm9kZSBzZWxlY3RvclxuICAgKi9cbiAgcmVhZG9ubHkgbm9kZVNlbGVjdG9yPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogU2VjdXJpdHkgY29udGV4dCBmb3IgdGhlIGNvbnRhaW5lci5cbiAgICogVXNlIHRvIHNldCBjYXBhYmlsaXRpZXMsIHJ1biBhcyBub24tcm9vdCwgcmVhZC1vbmx5IGZpbGVzeXN0ZW0sIGV0Yy5cbiAgICogQGV4YW1wbGUgeyBjYXBhYmlsaXRpZXM6IHsgYWRkOiBbJ1NZU19QVFJBQ0UnXSB9IH1cbiAgICogQGRlZmF1bHQgLSBubyBzZWN1cml0eSBjb250ZXh0XG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUNvbnRleHQ/OiBQbG9uZVNlY3VyaXR5Q29udGV4dDtcbn1cbi8qKlxuICogUGxvbmUgZGVwbG95bWVudCB2YXJpYW50cy5cbiAqL1xuZXhwb3J0IGVudW0gUGxvbmVWYXJpYW50IHtcbiAgLyoqXG4gICAqIFZvbHRvIHZhcmlhbnQ6IFJlYWN0SlMgZnJvbnRlbmQgKFZvbHRvKSB3aXRoIFJFU1QgQVBJIGJhY2tlbmQuXG4gICAqIERlcGxveXMgYm90aCBmcm9udGVuZCBhbmQgYmFja2VuZCBzZXJ2aWNlcy5cbiAgICovXG4gIFZPTFRPID0gJ3ZvbHRvJyxcblxuICAvKipcbiAgICogQ2xhc3NpYyBVSSB2YXJpYW50OiBUcmFkaXRpb25hbCBQbG9uZSB3aXRoIHNlcnZlci1zaWRlIHJlbmRlcmluZy5cbiAgICogRGVwbG95cyBvbmx5IHRoZSBiYWNrZW5kIHNlcnZpY2UuXG4gICAqL1xuICBDTEFTU0lDVUkgPSAnY2xhc3NpY3VpJyxcbn1cblxuLyoqXG4gKiBNYWluIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgUGxvbmUgZGVwbG95bWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbG9uZU9wdGlvbnMge1xuICAvKipcbiAgICogVmVyc2lvbiBzdHJpbmcgZm9yIGxhYmVsaW5nIHRoZSBkZXBsb3ltZW50LlxuICAgKiBUaGlzIGlzIHVzZWQgaW4gS3ViZXJuZXRlcyBsYWJlbHMgYW5kIGRvZXNuJ3QgYWZmZWN0IHRoZSBhY3R1YWwgaW1hZ2UgdmVyc2lvbnMuXG4gICAqIEBkZWZhdWx0ICd1bmRlZmluZWQnXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbG9uZSBzaXRlIElEIGluIHRoZSBaT0RCLlxuICAgKiBUaGlzIGlzIHVzZWQgdG8gY29uc3RydWN0IHRoZSBpbnRlcm5hbCBBUEkgcGF0aCBmb3IgVm9sdG8gZnJvbnRlbmQuXG4gICAqIEBkZWZhdWx0ICdQbG9uZSdcbiAgICovXG4gIHJlYWRvbmx5IHNpdGVJZD86IHN0cmluZztcblxuICAvKipcbiAgICogUGxvbmUgZGVwbG95bWVudCB2YXJpYW50IHRvIHVzZS5cbiAgICogQGRlZmF1bHQgUGxvbmVWYXJpYW50LlZPTFRPXG4gICAqL1xuICByZWFkb25seSB2YXJpYW50PzogUGxvbmVWYXJpYW50O1xuXG4gIC8qKlxuICAgKiBCYWNrZW5kIChQbG9uZSBBUEkpIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBkZWZhdWx0IHt9ICh1c2VzIGRlZmF1bHQgdmFsdWVzIGZyb20gUGxvbmVCYXNlT3B0aW9ucylcbiAgICovXG4gIHJlYWRvbmx5IGJhY2tlbmQ/OiBQbG9uZUJhc2VPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBGcm9udGVuZCAoVm9sdG8pIGNvbmZpZ3VyYXRpb24uXG4gICAqIE9ubHkgdXNlZCB3aGVuIHZhcmlhbnQgaXMgUGxvbmVWYXJpYW50LlZPTFRPLlxuICAgKiBAZGVmYXVsdCB7fSAodXNlcyBkZWZhdWx0IHZhbHVlcyBmcm9tIFBsb25lQmFzZU9wdGlvbnMpXG4gICAqL1xuICByZWFkb25seSBmcm9udGVuZD86IFBsb25lQmFzZU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIE5hbWVzIG9mIEt1YmVybmV0ZXMgc2VjcmV0cyB0byB1c2UgZm9yIHB1bGxpbmcgcHJpdmF0ZSBjb250YWluZXIgaW1hZ2VzLlxuICAgKiBUaGVzZSBzZWNyZXRzIG11c3QgZXhpc3QgaW4gdGhlIHNhbWUgbmFtZXNwYWNlIGFzIHRoZSBkZXBsb3ltZW50LlxuICAgKiBAZXhhbXBsZSBbJ215LXJlZ2lzdHJ5LXNlY3JldCddXG4gICAqIEBkZWZhdWx0IFtdIChubyBpbWFnZSBwdWxsIHNlY3JldHMpXG4gICAqL1xuICByZWFkb25seSBpbWFnZVB1bGxTZWNyZXRzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUGxvbmUgY29uc3RydWN0IGZvciBkZXBsb3lpbmcgUGxvbmUgQ01TIHRvIEt1YmVybmV0ZXMuXG4gKlxuICogVGhpcyBjb25zdHJ1Y3QgY3JlYXRlcyBhbGwgbmVjZXNzYXJ5IEt1YmVybmV0ZXMgcmVzb3VyY2VzIGZvciBydW5uaW5nIFBsb25lOlxuICogLSBEZXBsb3ltZW50KHMpIGZvciBiYWNrZW5kIChhbmQgb3B0aW9uYWxseSBmcm9udGVuZClcbiAqIC0gU2VydmljZShzKSBmb3IgbmV0d29yayBhY2Nlc3NcbiAqIC0gT3B0aW9uYWwgUG9kRGlzcnVwdGlvbkJ1ZGdldCBmb3IgaGlnaCBhdmFpbGFiaWxpdHlcbiAqXG4gKiBTdXBwb3J0cyB0d28gZGVwbG95bWVudCB2YXJpYW50czpcbiAqIC0gVk9MVE86IE1vZGVybiBSZWFjdCBmcm9udGVuZCB3aXRoIFJFU1QgQVBJIGJhY2tlbmQgKGRlZmF1bHQpXG4gKiAtIENMQVNTSUNVSTogVHJhZGl0aW9uYWwgc2VydmVyLXNpZGUgcmVuZGVyZWQgUGxvbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogbmV3IFBsb25lKGNoYXJ0LCAnbXktcGxvbmUnLCB7XG4gKiAgIHZhcmlhbnQ6IFBsb25lVmFyaWFudC5WT0xUTyxcbiAqICAgYmFja2VuZDoge1xuICogICAgIGltYWdlOiAncGxvbmUvcGxvbmUtYmFja2VuZDo2LjAuMTAnLFxuICogICAgIHJlcGxpY2FzOiAzLFxuICogICB9LFxuICogICBmcm9udGVuZDoge1xuICogICAgIGltYWdlOiAncGxvbmUvcGxvbmUtZnJvbnRlbmQ6MTYuMC4wJyxcbiAqICAgfSxcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgUGxvbmUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgYmFja2VuZCBLdWJlcm5ldGVzIHNlcnZpY2UuXG4gICAqIFVzZSB0aGlzIHRvIHJlZmVyZW5jZSB0aGUgYmFja2VuZCBzZXJ2aWNlIGZyb20gb3RoZXIgY29uc3RydWN0cy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBiYWNrZW5kU2VydmljZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgZnJvbnRlbmQgS3ViZXJuZXRlcyBzZXJ2aWNlLlxuICAgKiBPbmx5IHNldCB3aGVuIHZhcmlhbnQgaXMgVk9MVE8sIG90aGVyd2lzZSB1bmRlZmluZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZnJvbnRlbmRTZXJ2aWNlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVwbG95bWVudCB2YXJpYW50IGJlaW5nIHVzZWQgKFZPTFRPIG9yIENMQVNTSUNVSSkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFyaWFudDogUGxvbmVWYXJpYW50O1xuXG4gIC8qKlxuICAgKiBUaGUgUGxvbmUgc2l0ZSBJRCBpbiBaT0RCLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNpdGVJZDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBsb25lT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLmZyb250ZW5kU2VydmljZU5hbWUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zaXRlSWQgPSBvcHRpb25zLnNpdGVJZCA/PyAnUGxvbmUnO1xuICAgIHRoaXMudmFyaWFudCA9IG9wdGlvbnMudmFyaWFudCA/PyBQbG9uZVZhcmlhbnQuVk9MVE87XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBCYWNrZW5kXG4gICAgY29uc3QgYmFja2VuZCA9IG9wdGlvbnMuYmFja2VuZCA/PyB7fTtcbiAgICBjb25zdCBiYWNrZW5kTGFiZWxzID0ge1xuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL25hbWUnOiAncGxvbmUtYmFja2VuZCcsXG4gICAgICAnYXBwLmt1YmVybmV0ZXMuaW8vY29tcG9uZW50JzogJ2JhY2tlbmQnLFxuICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL3ZlcnNpb24nOiBvcHRpb25zLnZlcnNpb24gPz8gJ3VuZGVmaW5lZCcsXG4gICAgfTtcbiAgICBjb25zdCBiYWNrZW5kUG9ydCA9IDgwODA7XG5cbiAgICAvLyBPcHRpb25zXG4gICAgdmFyIGJhY2tlbmRPcHRpb25zOiBQbG9uZURlcGxveW1lbnRPcHRpb25zID0ge1xuICAgICAgbGFiZWxzOiBiYWNrZW5kTGFiZWxzLFxuICAgICAgaW1hZ2U6IHtcbiAgICAgICAgaW1hZ2U6IGJhY2tlbmQuaW1hZ2UgPz8gJ3Bsb25lL3Bsb25lLWJhY2tlbmQ6bGF0ZXN0JyxcbiAgICAgICAgaW1hZ2VQdWxsU2VjcmV0czogb3B0aW9ucy5pbWFnZVB1bGxTZWNyZXRzID8/IFtdLFxuICAgICAgICBpbWFnZVB1bGxQb2xpY3k6IGJhY2tlbmQuaW1hZ2VQdWxsUG9saWN5ID8/ICdJZk5vdFByZXNlbnQnLFxuICAgICAgfSxcbiAgICAgIHJlcGxpY2FzOiBiYWNrZW5kLnJlcGxpY2FzLFxuICAgICAgbGltaXRDcHU6IGJhY2tlbmQubGltaXRDcHUgPz8gJzUwMG0nLFxuICAgICAgbGltaXRNZW1vcnk6IGJhY2tlbmQubGltaXRNZW1vcnkgPz8gJzUxMk1pJyxcbiAgICAgIHJlcXVlc3RDcHU6IGJhY2tlbmQucmVxdWVzdENwdSA/PyAnMjAwbScsXG4gICAgICByZXF1ZXN0TWVtb3J5OiBiYWNrZW5kLnJlcXVlc3RNZW1vcnkgPz8gJzI1Nk1pJyxcbiAgICAgIHBkYjoge1xuICAgICAgICBtYXhVbmF2YWlsYWJsZTogYmFja2VuZC5tYXhVbmF2YWlsYWJsZSA/PyB1bmRlZmluZWQsXG4gICAgICAgIG1pbkF2YWlsYWJsZTogYmFja2VuZC5taW5BdmFpbGFibGUgPz8gdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIHBvcnQ6IGJhY2tlbmRQb3J0LFxuICAgICAgZW52aXJvbm1lbnQ6IGJhY2tlbmQuZW52aXJvbm1lbnQsXG4gICAgICBhbm5vdGF0aW9uczogYmFja2VuZC5hbm5vdGF0aW9ucyxcbiAgICAgIHBvZEFubm90YXRpb25zOiBiYWNrZW5kLnBvZEFubm90YXRpb25zLFxuICAgICAgbm9kZVNlbGVjdG9yOiBiYWNrZW5kLm5vZGVTZWxlY3RvcixcbiAgICAgIHNlY3VyaXR5Q29udGV4dDogYmFja2VuZC5zZWN1cml0eUNvbnRleHQgYXMgazhzLlNlY3VyaXR5Q29udGV4dCxcbiAgICB9O1xuXG4gICAgLy8gUHJvYmluZ1xuICAgIGNvbnN0IGJhY2tlbmRBY3Rpb25IdHRwR2V0OiBrOHMuSHR0cEdldEFjdGlvbiA9IHtcbiAgICAgIHBhdGg6ICcvJyxcbiAgICAgIHBvcnQ6IEludE9yU3RyaW5nLmZyb21OdW1iZXIoYmFja2VuZFBvcnQpLFxuICAgIH07XG4gICAgaWYgKGJhY2tlbmQubGl2ZW5lc3NFbmFibGVkID8/IGZhbHNlKSB7XG4gICAgICBiYWNrZW5kT3B0aW9ucy5saXZlbmVzc1Byb2JlID0ge1xuICAgICAgICBodHRwR2V0OiBiYWNrZW5kQWN0aW9uSHR0cEdldCxcbiAgICAgICAgaW5pdGlhbERlbGF5U2Vjb25kczogYmFja2VuZC5saXZlbmVzc0luaXRpYWxEZWxheVNlY29uZHMgPz8gMzAsXG4gICAgICAgIHRpbWVvdXRTZWNvbmRzOiBiYWNrZW5kLmxpdmVuZXNzVGltZW91dFNlY29uZHMgPz8gNSxcbiAgICAgICAgcGVyaW9kU2Vjb25kczogYmFja2VuZC5saXZlbmVzc1BlcmlvZFNlY29uZHMgPz8gMTAsXG4gICAgICAgIHN1Y2Nlc3NUaHJlc2hvbGQ6IGJhY2tlbmQubGl2ZW5lc3NTdWNjZXNzVGhyZXNob2xkID8/IDEsXG4gICAgICAgIGZhaWx1cmVUaHJlc2hvbGQ6IGJhY2tlbmQubGl2ZW5lc3NGYWlsdXJlVGhyZXNob2xkID8/IDMsXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoYmFja2VuZC5yZWFkaW5lc3NFbmFibGVkID8/IHRydWUpIHtcbiAgICAgIGJhY2tlbmRPcHRpb25zLnJlYWRpbmVzc1Byb2JlID0ge1xuICAgICAgICBodHRwR2V0OiBiYWNrZW5kQWN0aW9uSHR0cEdldCxcbiAgICAgICAgaW5pdGlhbERlbGF5U2Vjb25kczogYmFja2VuZC5yZWFkaW5lc3NJbml0aWFsRGVsYXlTZWNvbmRzID8/IDEwLFxuICAgICAgICB0aW1lb3V0U2Vjb25kczogYmFja2VuZC5yZWFkaW5lc3NUaW1lb3V0U2Vjb25kcyA/PyAxNSxcbiAgICAgICAgcGVyaW9kU2Vjb25kczogYmFja2VuZC5yZWFkaW5lc3NQZXJpb2RTZWNvbmRzID8/IDEwLFxuICAgICAgICBzdWNjZXNzVGhyZXNob2xkOiBiYWNrZW5kLnJlYWRpbmVzc1N1Y2Nlc3NUaHJlc2hvbGQgPz8gMSxcbiAgICAgICAgZmFpbHVyZVRocmVzaG9sZDogYmFja2VuZC5yZWFkaW5lc3NGYWlsdXJlVGhyZXNob2xkID8/IDMsXG4gICAgICB9O1xuICAgIH1cbiAgICAvLyBEZXBsb3ltZW50XG4gICAgdmFyIGJhY2tlbmREZXBsb3ltZW50ID0gbmV3IFBsb25lRGVwbG95bWVudCh0aGlzLCAnYmFja2VuZCcsIGJhY2tlbmRPcHRpb25zKTtcblxuICAgIC8vIFNlcnZpY2VcbiAgICBjb25zdCBiYWNrZW5kU2VydmljZSA9IG5ldyBQbG9uZVNlcnZpY2UoYmFja2VuZERlcGxveW1lbnQsICdzZXJ2aWNlJywge1xuICAgICAgbGFiZWxzOiB7XG4gICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9uYW1lJzogJ3Bsb25lLWJhY2tlbmQtc2VydmljZScsXG4gICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnc2VydmljZScsXG4gICAgICB9LFxuICAgICAgdGFyZ2V0UG9ydDogYmFja2VuZFBvcnQsXG4gICAgICBzZWxlY3RvckxhYmVsOiB7IGFwcDogTmFtZXMudG9MYWJlbFZhbHVlKGJhY2tlbmREZXBsb3ltZW50KSB9LFxuICAgICAgcG9ydE5hbWU6ICdiYWNrZW5kLWh0dHAnLFxuICAgICAgYW5ub3RhdGlvbnM6IGJhY2tlbmQuc2VydmljZUFubm90YXRpb25zLFxuICAgIH0pO1xuICAgIHRoaXMuYmFja2VuZFNlcnZpY2VOYW1lID0gYmFja2VuZFNlcnZpY2UubmFtZTtcblxuICAgIC8vIFNlcnZpY2VNb25pdG9yIGZvciBiYWNrZW5kXG4gICAgaWYgKGJhY2tlbmQuc2VydmljZW1vbml0b3IpIHtcbiAgICAgIHRoaXMuY3JlYXRlU2VydmljZU1vbml0b3IoYmFja2VuZFNlcnZpY2UsICdiYWNrZW5kJywge1xuICAgICAgICBwb3J0OiBiYWNrZW5kLm1ldHJpY3NQb3J0ID8/ICdiYWNrZW5kLWh0dHAnLFxuICAgICAgICBwYXRoOiBiYWNrZW5kLm1ldHJpY3NQYXRoID8/ICcvbWV0cmljcycsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBGcm9udGVuZFxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT0gUGxvbmVWYXJpYW50LlZPTFRPKSB7XG4gICAgICBjb25zdCBmcm9udGVuZCA9IG9wdGlvbnMuZnJvbnRlbmQgPz8ge307XG4gICAgICBjb25zdCBmcm9udGVuZFBvcnQgPSAzMDAwO1xuICAgICAgY29uc3QgZnJvbnRlbmRMYWJlbHMgPSB7XG4gICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9uYW1lJzogJ3Bsb25lLWZyb250ZW5kJyxcbiAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL2NvbXBvbmVudCc6ICdmcm9udGVuZCcsXG4gICAgICAgICdhcHAua3ViZXJuZXRlcy5pby92ZXJzaW9uJzogb3B0aW9ucy52ZXJzaW9uID8/ICd1bmRlZmluZWQnLFxuICAgICAgfTtcblxuICAgICAgLy8gRW52aXJvbm1lbnQgZm9yIFJBWlpMRVxuICAgICAgdmFyIGZyb250ZW5kRW52aXJvbm1lbnQgPSBmcm9udGVuZC5lbnZpcm9ubWVudCA/PyBuZXcga3BsdXMuRW52KFtdLCB7fSk7XG4gICAgICBpZiAoZnJvbnRlbmRFbnZpcm9ubWVudC52YXJpYWJsZXMuUkFaWkxFX0lOVEVSTkFMX0FQSV9QQVRIID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgLy8gY29ubmVjdCB3aXRoIGJhY2tlbmQgc2VydmljZVxuICAgICAgICBmcm9udGVuZEVudmlyb25tZW50Py5hZGRWYXJpYWJsZSgnUkFaWkxFX0lOVEVSTkFMX0FQSV9QQVRIJywga3BsdXMuRW52VmFsdWUuZnJvbVZhbHVlKGBodHRwOi8vJHtiYWNrZW5kU2VydmljZS5uYW1lfToke2JhY2tlbmRQb3J0fS8ke3RoaXMuc2l0ZUlkfWApKTtcbiAgICAgIH1cblxuICAgICAgLy8gT3B0aW9uc1xuICAgICAgdmFyIGZyb250ZW5kT3B0aW9uczogUGxvbmVEZXBsb3ltZW50T3B0aW9ucyA9IHtcbiAgICAgICAgbGFiZWxzOiBmcm9udGVuZExhYmVscyxcbiAgICAgICAgaW1hZ2U6IHtcbiAgICAgICAgICBpbWFnZTogZnJvbnRlbmQuaW1hZ2UgPz8gJ3Bsb25lL3Bsb25lLWZyb250ZW5kOmxhdGVzdCcsXG4gICAgICAgICAgaW1hZ2VQdWxsU2VjcmV0czogb3B0aW9ucy5pbWFnZVB1bGxTZWNyZXRzID8/IFtdLFxuICAgICAgICAgIGltYWdlUHVsbFBvbGljeTogZnJvbnRlbmQuaW1hZ2VQdWxsUG9saWN5ID8/ICdJZk5vdFByZXNlbnQnLFxuICAgICAgICB9LFxuICAgICAgICByZXBsaWNhczogZnJvbnRlbmQucmVwbGljYXMsXG4gICAgICAgIGxpbWl0Q3B1OiBmcm9udGVuZC5saW1pdENwdSA/PyAnNTAwbScsXG4gICAgICAgIGxpbWl0TWVtb3J5OiBmcm9udGVuZC5saW1pdE1lbW9yeSA/PyAnMUdpJyxcbiAgICAgICAgcmVxdWVzdENwdTogZnJvbnRlbmQucmVxdWVzdENwdSA/PyAnMjAwbScsXG4gICAgICAgIHJlcXVlc3RNZW1vcnk6IGZyb250ZW5kLnJlcXVlc3RNZW1vcnkgPz8gJzI1Nk1pJyxcblxuICAgICAgICBwZGI6IHtcbiAgICAgICAgICBtYXhVbmF2YWlsYWJsZTogZnJvbnRlbmQubWF4VW5hdmFpbGFibGUgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgIG1pbkF2YWlsYWJsZTogZnJvbnRlbmQubWluQXZhaWxhYmxlID8/IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgICAgcG9ydDogZnJvbnRlbmRQb3J0LFxuICAgICAgICBlbnZpcm9ubWVudDogZnJvbnRlbmRFbnZpcm9ubWVudCxcbiAgICAgICAgYW5ub3RhdGlvbnM6IGZyb250ZW5kLmFubm90YXRpb25zLFxuICAgICAgICBwb2RBbm5vdGF0aW9uczogZnJvbnRlbmQucG9kQW5ub3RhdGlvbnMsXG4gICAgICAgIG5vZGVTZWxlY3RvcjogZnJvbnRlbmQubm9kZVNlbGVjdG9yLFxuICAgICAgICBzZWN1cml0eUNvbnRleHQ6IGZyb250ZW5kLnNlY3VyaXR5Q29udGV4dCBhcyBrOHMuU2VjdXJpdHlDb250ZXh0LFxuICAgICAgfTtcblxuICAgICAgLy8gUHJvYmluZ1xuICAgICAgY29uc3QgZnJvbnRlbmRBY3Rpb25IdHRwR2V0OiBrOHMuSHR0cEdldEFjdGlvbiA9IHtcbiAgICAgICAgcGF0aDogJy8nLFxuICAgICAgICBwb3J0OiBJbnRPclN0cmluZy5mcm9tTnVtYmVyKGZyb250ZW5kUG9ydCksXG4gICAgICB9O1xuICAgICAgaWYgKGZyb250ZW5kLmxpdmVuZXNzRW5hYmxlZCA/PyBmYWxzZSkge1xuICAgICAgICBmcm9udGVuZE9wdGlvbnMubGl2ZW5lc3NQcm9iZSA9IHtcbiAgICAgICAgICBodHRwR2V0OiBmcm9udGVuZEFjdGlvbkh0dHBHZXQsXG4gICAgICAgICAgaW5pdGlhbERlbGF5U2Vjb25kczogZnJvbnRlbmQubGl2ZW5lc3NJbml0aWFsRGVsYXlTZWNvbmRzID8/IDMwLFxuICAgICAgICAgIHRpbWVvdXRTZWNvbmRzOiBmcm9udGVuZC5saXZlbmVzc1RpbWVvdXRTZWNvbmRzID8/IDUsXG4gICAgICAgICAgcGVyaW9kU2Vjb25kczogZnJvbnRlbmQubGl2ZW5lc3NQZXJpb2RTZWNvbmRzID8/IDEwLFxuICAgICAgICAgIHN1Y2Nlc3NUaHJlc2hvbGQ6IGZyb250ZW5kLmxpdmVuZXNzU3VjY2Vzc1RocmVzaG9sZCA/PyAxLFxuICAgICAgICAgIGZhaWx1cmVUaHJlc2hvbGQ6IGZyb250ZW5kLmxpdmVuZXNzRmFpbHVyZVRocmVzaG9sZCA/PyAzLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKGZyb250ZW5kLnJlYWRpbmVzc0VuYWJsZWQgPz8gdHJ1ZSkge1xuICAgICAgICBmcm9udGVuZE9wdGlvbnMucmVhZGluZXNzUHJvYmUgPSB7XG4gICAgICAgICAgaHR0cEdldDogZnJvbnRlbmRBY3Rpb25IdHRwR2V0LFxuICAgICAgICAgIGluaXRpYWxEZWxheVNlY29uZHM6IGZyb250ZW5kLnJlYWRpbmVzc0luaXRpYWxEZWxheVNlY29uZHMgPz8gMTAsXG4gICAgICAgICAgdGltZW91dFNlY29uZHM6IGZyb250ZW5kLnJlYWRpbmVzc1RpbWVvdXRTZWNvbmRzID8/IDE1LFxuICAgICAgICAgIHBlcmlvZFNlY29uZHM6IGZyb250ZW5kLnJlYWRpbmVzc1BlcmlvZFNlY29uZHMgPz8gMTAsXG4gICAgICAgICAgc3VjY2Vzc1RocmVzaG9sZDogZnJvbnRlbmQucmVhZGluZXNzU3VjY2Vzc1RocmVzaG9sZCA/PyAxLFxuICAgICAgICAgIGZhaWx1cmVUaHJlc2hvbGQ6IGZyb250ZW5kLnJlYWRpbmVzc0ZhaWx1cmVUaHJlc2hvbGQgPz8gMyxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gRGVwbG95bWVudFxuICAgICAgY29uc3QgZnJvbnRlbmREZXBsb3ltZW50ID0gbmV3IFBsb25lRGVwbG95bWVudCh0aGlzLCAnZnJvbnRlbmQnLCBmcm9udGVuZE9wdGlvbnMpO1xuXG4gICAgICAvLyBTZXJ2aWNlXG4gICAgICBjb25zdCBmcm9udGVuZFNlcnZpY2UgPSBuZXcgUGxvbmVTZXJ2aWNlKGZyb250ZW5kRGVwbG95bWVudCwgJ3NlcnZpY2UnLCB7XG4gICAgICAgIGxhYmVsczoge1xuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9uYW1lJzogJ3Bsb25lLWZyb250ZW5kLXNlcnZpY2UnLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnc2VydmljZScsXG4gICAgICAgIH0sXG4gICAgICAgIHRhcmdldFBvcnQ6IGZyb250ZW5kUG9ydCxcbiAgICAgICAgc2VsZWN0b3JMYWJlbDogeyBhcHA6IE5hbWVzLnRvTGFiZWxWYWx1ZShmcm9udGVuZERlcGxveW1lbnQpIH0sXG4gICAgICAgIHBvcnROYW1lOiAnZnJvbnRlbmQtaHR0cCcsXG4gICAgICAgIGFubm90YXRpb25zOiBmcm9udGVuZC5zZXJ2aWNlQW5ub3RhdGlvbnMsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZnJvbnRlbmRTZXJ2aWNlTmFtZSA9IGZyb250ZW5kU2VydmljZS5uYW1lO1xuXG4gICAgICAvLyBTZXJ2aWNlTW9uaXRvciBmb3IgZnJvbnRlbmRcbiAgICAgIGlmIChmcm9udGVuZC5zZXJ2aWNlbW9uaXRvcikge1xuICAgICAgICB0aGlzLmNyZWF0ZVNlcnZpY2VNb25pdG9yKGZyb250ZW5kU2VydmljZSwgJ2Zyb250ZW5kJywge1xuICAgICAgICAgIHBvcnQ6IGZyb250ZW5kLm1ldHJpY3NQb3J0ID8/ICdmcm9udGVuZC1odHRwJyxcbiAgICAgICAgICBwYXRoOiBmcm9udGVuZC5tZXRyaWNzUGF0aCA/PyAnL21ldHJpY3MnLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFByb21ldGhldXMgU2VydmljZU1vbml0b3IgcmVzb3VyY2UgZm9yIHRoZSBnaXZlbiBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gc2VydmljZSBUaGUgUGxvbmVTZXJ2aWNlIHRvIG1vbml0b3JcbiAgICogQHBhcmFtIGlkIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgU2VydmljZU1vbml0b3JcbiAgICogQHBhcmFtIGNvbmZpZyBDb25maWd1cmF0aW9uIGZvciB0aGUgU2VydmljZU1vbml0b3JcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlU2VydmljZU1vbml0b3IoXG4gICAgc2VydmljZTogUGxvbmVTZXJ2aWNlLFxuICAgIGlkOiBzdHJpbmcsXG4gICAgY29uZmlnOiB7IHBvcnQ6IHN0cmluZyB8IG51bWJlcjsgcGF0aDogc3RyaW5nIH0sXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHBvcnROYW1lID0gdHlwZW9mIGNvbmZpZy5wb3J0ID09PSAnc3RyaW5nJyA/IGNvbmZpZy5wb3J0IDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHBvcnROdW1iZXIgPSB0eXBlb2YgY29uZmlnLnBvcnQgPT09ICdudW1iZXInXG4gICAgICA/IFNlcnZpY2VNb25pdG9yU3BlY0VuZHBvaW50c1RhcmdldFBvcnQuZnJvbU51bWJlcihjb25maWcucG9ydClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgbmV3IFNlcnZpY2VNb25pdG9yKHRoaXMsIGBzZXJ2aWNlbW9uaXRvci0ke2lkfWAsIHtcbiAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgIG5hbWU6IGAke3NlcnZpY2UubmFtZX0tbW9uaXRvcmAsXG4gICAgICAgIGxhYmVsczoge1xuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9uYW1lJzogc2VydmljZS5uYW1lLFxuICAgICAgICAgICdhcHAua3ViZXJuZXRlcy5pby9jb21wb25lbnQnOiAnc2VydmljZW1vbml0b3InLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgc2VsZWN0b3I6IHtcbiAgICAgICAgICBtYXRjaExhYmVsczoge1xuICAgICAgICAgICAgJ2FwcC5rdWJlcm5ldGVzLmlvL25hbWUnOiBzZXJ2aWNlLmxhYmVsc1snYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGVuZHBvaW50czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIC4uLihwb3J0TmFtZSAmJiB7IHBvcnQ6IHBvcnROYW1lIH0pLFxuICAgICAgICAgICAgLi4uKHBvcnROdW1iZXIgJiYgeyB0YXJnZXRQb3J0OiBwb3J0TnVtYmVyIH0pLFxuICAgICAgICAgICAgcGF0aDogY29uZmlnLnBhdGgsXG4gICAgICAgICAgICBpbnRlcnZhbDogJzMwcycsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn0iXX0=
@@ -62,6 +62,38 @@ export interface VinylCacheBackend {
62
62
  */
63
63
  readonly weight?: number;
64
64
  }
65
+ /**
66
+ * A Varnish storage backend configuration.
67
+ *
68
+ * Maps to `spec.storage[]` on the VinylCache CRD. The operator emits one
69
+ * `-s <name>=<type>,<options>` argument per entry to varnishd.
70
+ *
71
+ * Without any storage entry the operator falls back to the varnishd default
72
+ * (~100 MB malloc), which is almost always too small for real workloads.
73
+ */
74
+ export interface VinylCacheStorage {
75
+ /**
76
+ * Internal storage identifier used in the varnishd `-s` argument.
77
+ * Must be unique within the VinylCache and match `^[a-zA-Z][a-zA-Z0-9_]*$`.
78
+ */
79
+ readonly name: string;
80
+ /**
81
+ * Storage backend type. Only "malloc" and "file" are permitted by the
82
+ * admission webhook.
83
+ */
84
+ readonly type: 'malloc' | 'file';
85
+ /**
86
+ * Storage allocation as a Kubernetes resource quantity (e.g. "1Gi", "500M").
87
+ * Required for malloc; required for file.
88
+ * @default - required for both malloc and file
89
+ */
90
+ readonly size?: string;
91
+ /**
92
+ * Filesystem path for file-type storage. Ignored for malloc.
93
+ * @default - required for type "file"
94
+ */
95
+ readonly path?: string;
96
+ }
65
97
  /**
66
98
  * A Kubernetes toleration for the Varnish pods.
67
99
  */
@@ -131,6 +163,19 @@ export interface PloneVinylCacheOptions {
131
163
  * @default '512Mi'
132
164
  */
133
165
  readonly limitMemory?: string;
166
+ /**
167
+ * Varnish storage backends (`spec.storage`).
168
+ *
169
+ * Each entry becomes a `-s <name>=<type>,<options>` argument to varnishd.
170
+ * If omitted, the operator ships varnishd with its stock default (~100 MB
171
+ * malloc) — almost always too small. Set an explicit malloc size at least
172
+ * matching the pod's memory request to use the allocated memory for caching.
173
+ *
174
+ * @default - no storage configured; operator uses varnishd default (~100MB malloc)
175
+ * @example
176
+ * storage: [{ name: 's0', type: 'malloc', size: '1Gi' }]
177
+ */
178
+ readonly storage?: VinylCacheStorage[];
134
179
  /**
135
180
  * Director type for load distribution.
136
181
  * @default 'shard'
package/lib/vinylcache.js CHANGED
@@ -119,12 +119,19 @@ class PloneVinylCache extends constructs_1.Construct {
119
119
  });
120
120
  }
121
121
  }
122
+ const storage = options.storage?.map(s => ({
123
+ name: s.name,
124
+ type: s.type === 'file' ? vinyl_bluedynamics_eu_1.VinylCacheSpecStorageType.FILE : vinyl_bluedynamics_eu_1.VinylCacheSpecStorageType.MALLOC,
125
+ size: s.size !== undefined ? vinyl_bluedynamics_eu_1.VinylCacheSpecStorageSize.fromString(s.size) : undefined,
126
+ path: s.path,
127
+ }));
122
128
  const vinylCache = new vinyl_bluedynamics_eu_1.VinylCache(this, 'vinylcache', {
123
129
  spec: {
124
130
  replicas,
125
131
  image: options.image ?? 'varnish:7.6',
126
132
  backends,
127
133
  director: { type: directorType, shard: shardSpec },
134
+ storage,
128
135
  vcl: {
129
136
  snippets: {
130
137
  vclRecv: vclRecv,
@@ -179,5 +186,5 @@ class PloneVinylCache extends constructs_1.Construct {
179
186
  }
180
187
  exports.PloneVinylCache = PloneVinylCache;
181
188
  _a = JSII_RTTI_SYMBOL_1;
182
- PloneVinylCache[_a] = { fqn: "@bluedynamics/cdk8s-plone.PloneVinylCache", version: "0.1.31" };
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlueWxjYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92aW55bGNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QixpQ0FBOEI7QUFDOUIsMkNBQXVDO0FBQ3ZDLDJFQU95QztBQTBUekM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsc0JBQVM7SUFPNUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1FBQ2xELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBRS9DLDZCQUE2QjtRQUM3QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQztRQUNoRCxJQUFJLFlBQXdDLENBQUM7UUFDN0MsUUFBUSxXQUFXLEVBQUUsQ0FBQztZQUNwQixLQUFLLGFBQWE7Z0JBQ2hCLFlBQVksR0FBRyxrREFBMEIsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakUsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxZQUFZLEdBQUcsa0RBQTBCLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULFlBQVksR0FBRyxrREFBMEIsQ0FBQyxJQUFJLENBQUM7Z0JBQy9DLE1BQU07WUFDUjtnQkFDRSxZQUFZLEdBQUcsa0RBQTBCLENBQUMsS0FBSyxDQUFDO1FBQ3BELENBQUM7UUFFRCxxRkFBcUY7UUFDckYsMkVBQTJFO1FBQzNFLElBQUksU0FLUyxDQUFDO1FBQ2QsSUFBSSxZQUFZLEtBQUssa0RB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QyxDQUFDO3dCQUMxQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUc7d0JBQ1YsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO3dCQUNwQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7d0JBQ2QsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO3FCQUNqQixDQUFDLENBQUM7b0JBQ0gsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO2lCQUNuQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQ2Q7U0FDRixDQUFDLENBQUM7UUFFSCwrRUFBK0U7UUFDL0UsSUFBSSxDQUFDLHFCQUFxQixHQUFHLGFBQUssQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7QUFwTEgsMENBcUxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IE5hbWVzIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQge1xuICBWaW55bENhY2hlLFxuICBWaW55bENhY2hlU3BlY0RpcmVjdG9yU2hhcmRCeSxcbiAgVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkSGVhbHRoeSxcbiAgVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGUsXG4gIFZpbnlsQ2FjaGVTcGVjUmVzb3VyY2VzTGltaXRzLFxuICBWaW55bENhY2hlU3BlY1Jlc291cmNlc1JlcXVlc3RzLFxufSBmcm9tICcuL2ltcG9ydHMvdmlueWwuYmx1ZWR5bmFtaWNzLmV1JztcbmltcG9ydCB7IFBsb25lIH0gZnJvbSAnLi9wbG9uZSc7XG5cbi8qKlxuICogSGVhbHRoIHByb2JlIGNvbmZpZ3VyYXRpb24gZm9yIGEgVmlueWxDYWNoZSBiYWNrZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpbnlsQ2FjaGVCYWNrZW5kUHJvYmUge1xuICAvKipcbiAgICogVVJMIHRvIHByb2JlLlxuICAgKiBAZGVmYXVsdCAnLydcbiAgICovXG4gIHJlYWRvbmx5IHVybD86IHN0cmluZztcblxuICAvKipcbiAgICogSG93IG9mdGVuIHRvIHByb2JlIHRoZSBiYWNrZW5kLlxuICAgKiBAZGVmYXVsdCAnNXMnXG4gICAqL1xuICByZWFkb25seSBpbnRlcnZhbD86IHN0cmluZztcblxuICAvKipcbiAgICogTWF4aW11bSB0aW1lIHRvIHdhaXQgZm9yIGEgcHJvYmUgcmVzcG9uc2UuXG4gICAqIEBkZWZhdWx0ICcycydcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBtb3N0IHJlY2VudCBwcm9iZXMgdG8gY29uc2lkZXIuXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICByZWFkb25seSB3aW5kb3c/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gc3VjY2Vzc2Z1bCBwcm9iZXMgd2l0aGluIHdpbmRvdyBmb3IgaGVhbHRoeSBzdGF0dXMuXG4gICAqIEBkZWZhdWx0IDhcbiAgICovXG4gIHJlYWRvbmx5IHRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogRXhwZWN0ZWQgSFRUUCByZXNwb25zZSBzdGF0dXMgY29kZS5cbiAgICogQGRlZmF1bHQgMjAwXG4gICAqL1xuICByZWFkb25seSBleHBlY3RlZFJlc3BvbnNlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFuIGFkZGl0aW9uYWwgYmFja2VuZCBmb3IgdGhlIFZpbnlsQ2FjaGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlueWxDYWNoZUJhY2tlbmQge1xuICAvKipcbiAgICogVkNMIGlkZW50aWZpZXIgZm9yIHRoaXMgYmFja2VuZC4gTXVzdCBtYXRjaCBeW2EtekEtWl1bYS16QS1aMC05X10qJC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogS3ViZXJuZXRlcyBTZXJ2aWNlIG5hbWUgdG8gdXNlIGFzIGJhY2tlbmQuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb3J0IHRvIHVzZSBmb3IgdGhpcyBiYWNrZW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBIZWFsdGggcHJvYmUgY29uZmlndXJhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBubyBwcm9iZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvYmU/OiBWaW55bENhY2hlQmFja2VuZFByb2JlO1xuXG4gIC8qKlxuICAgKiBSZWxhdGl2ZSB3ZWlnaHQgZm9yIHRoZSBkaXJlY3Rvci4gMCBtZWFucyBzdGFuZGJ5LlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHdlaWdodD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIEt1YmVybmV0ZXMgdG9sZXJhdGlvbiBmb3IgdGhlIFZhcm5pc2ggcG9kcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaW55bENhY2hlVG9sZXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgdGFpbnQga2V5IHRvIHRvbGVyYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRvciAoRXF1YWwgb3IgRXhpc3RzKS5cbiAgICogQGRlZmF1bHQgJ0VxdWFsJ1xuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0b3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWludCB2YWx1ZSB0byBtYXRjaCAod2hlbiBvcGVyYXRvciBpcyBFcXVhbCkuXG4gICAqIEBkZWZhdWx0IC0gbm8gdmFsdWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFpbnQgZWZmZWN0IHRvIHRvbGVyYXRlIChOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlLCBOb0V4ZWN1dGUpLlxuICAgKiBAZGVmYXVsdCAtIHRvbGVyYXRlIGFsbCBlZmZlY3RzXG4gICAqL1xuICByZWFkb25seSBlZmZlY3Q/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBQbG9uZVZpbnlsQ2FjaGUgKGNsb3VkLXZpbnlsIG9wZXJhdG9yKS5cbiAqXG4gKiBDcmVhdGVzIGEgVmlueWxDYWNoZSBjdXN0b20gcmVzb3VyY2UgdGhhdCB0aGUgY2xvdWQtdmlueWwgb3BlcmF0b3JcbiAqIHJlY29uY2lsZXMgaW50byBhIFZhcm5pc2ggQ2FjaGUgY2x1c3RlciB3aXRoIGFnZW50LWJhc2VkIFZDTCBkZWxpdmVyeS5cbiAqXG4gKiBSZXF1aXJlcyB0aGUgY2xvdWQtdmlueWwgb3BlcmF0b3IgdG8gYmUgaW5zdGFsbGVkIGluIHRoZSBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb25lVmlueWxDYWNoZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIFBsb25lIGNvbnN0cnVjdCB0byBhdHRhY2ggdGhlIGNhY2hlIHRvLlxuICAgKiBCYWNrZW5kcyBhcmUgYXV0by1jb25maWd1cmVkIGZyb20gdGhlIFBsb25lIHNlcnZpY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGxvbmU6IFBsb25lO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJhY2tlbmRzIHRvIGFkZCBhZnRlciB0aGUgYXV0by1nZW5lcmF0ZWQgUGxvbmUgYmFja2VuZHMuXG4gICAqIFVzZXMgdGhlIHNhbWUgYmFja2VuZCB0eXBlIHN0cnVjdHVyZSBhcyB0aGUgVmlueWxDYWNoZSBDUkQuXG4gICAqIEBkZWZhdWx0IC0gbm8gZXh0cmEgYmFja2VuZHNcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhQmFja2VuZHM/OiBWaW55bENhY2hlQmFja2VuZFtdO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgVmFybmlzaCBwb2QgcmVwbGljYXMuXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2FzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDUFUgcmVxdWVzdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnMTAwbSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RDcHU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1lbW9yeSByZXF1ZXN0IGZvciBWYXJuaXNoIHBvZHMuXG4gICAqIEBkZWZhdWx0ICcyNTZNaSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RNZW1vcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENQVSBsaW1pdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnNTAwbSdcbiAgICovXG4gIHJlYWRvbmx5IGxpbWl0Q3B1Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNZW1vcnkgbGltaXQgZm9yIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJzUxMk1pJ1xuICAgKi9cbiAgcmVhZG9ubHkgbGltaXRNZW1vcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERpcmVjdG9yIHR5cGUgZm9yIGxvYWQgZGlzdHJpYnV0aW9uLlxuICAgKiBAZGVmYXVsdCAnc2hhcmQnXG4gICAqL1xuICByZWFkb25seSBkaXJlY3Rvcj86IHN0cmluZztcblxuICAvKipcbiAgICogU2hhcmQgZGlyZWN0b3I6IHdoYXQgdmFsdWUgaXMgaGFzaGVkIGZvciBzaGFyZCBzZWxlY3Rpb24uXG4gICAqIFwiSEFTSFwiIHVzZXMgdGhlIFZhcm5pc2ggaGFzaCAoZGVmYXVsdCk7IFwiVVJMXCIgdXNlcyB0aGUgcmVxdWVzdCBVUkwuXG4gICAqIE9ubHkgYXBwbGllZCB3aGVuIGRpcmVjdG9yIGlzIFwic2hhcmRcIi5cbiAgICogUmVxdWlyZXMgY2xvdWQtdmlueWwgb3BlcmF0b3IgPj0gMC40LjIuXG4gICAqIEBkZWZhdWx0IC0gb3BlcmF0b3IgZGVmYXVsdCAoXCJIQVNIXCIpXG4gICAqL1xuICByZWFkb25seSBzaGFyZEJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGFyZCBkaXJlY3Rvcjogd2hpY2ggYmFja2VuZHMgdGhlIGRpcmVjdG9yIGNvbnNpZGVycyB3aGVuIHNlbGVjdGluZyBhIHNoYXJkLlxuICAgKiBcIkNIT1NFTlwiIChkZWZhdWx0KSBvbmx5IGNvbnNpZGVycyB0aGUgY2hvc2VuIGJhY2tlbmQgaGVhbHRoeTsgXCJBTExcIiByZXF1aXJlcyBhbGxcbiAgICogYmFja2VuZHMgdG8gYmUgaGVhbHRoeS5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBSZXF1aXJlcyBjbG91ZC12aW55bCBvcGVyYXRvciA+PSAwLjQuMi5cbiAgICogQGRlZmF1bHQgLSBvcGVyYXRvciBkZWZhdWx0IChcIkNIT1NFTlwiKVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmRIZWFsdGh5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGFyZCBkaXJlY3RvcjogdGltZSBhZnRlciBhZGRpbmcgYSBiYWNrZW5kIGJlZm9yZSBpdCByZWNlaXZlcyBpdHMgZnVsbCBzaGFyZSBvZlxuICAgKiB0cmFmZmljLCBwcmV2ZW50aW5nIHRodW5kZXJpbmctaGVyZC5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHQgKFwiMzBzXCIpXG4gICAqL1xuICByZWFkb25seSBzaGFyZFJhbXB1cD86IHN0cmluZztcblxuICAvKipcbiAgICogU2hhcmQgZGlyZWN0b3I6IG51bWJlciBvZiBLZXRhbWEgcmVwbGljYXMgcGVyIGJhY2tlbmQgaW4gdGhlIGhhc2ggcmluZy5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHQgKDY3KVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmRSZXBsaWNhcz86IG51bWJlcjtcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcmVjdiBzdWJyb3V0aW5lLlxuICAgKiBSZXBsYWNlcyB0aGUgZGVmYXVsdCBQbG9uZSByZWN2IHNuaXBwZXQuXG4gICAqIEBkZWZhdWx0IC0gdXNlcyBidWlsdC1pbiBwbG9uZS12aW55bC1yZWN2LnZjbFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsUmVjdlNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2JhY2tlbmRfcmVzcG9uc2Ugc3Vicm91dGluZS5cbiAgICogUmVwbGFjZXMgdGhlIGRlZmF1bHQgUGxvbmUgYmFja2VuZF9yZXNwb25zZSBzbmlwcGV0LlxuICAgKiBAZGVmYXVsdCAtIHVzZXMgYnVpbHQtaW4gcGxvbmUtdmlueWwtYmFja2VuZC1yZXNwb25zZS52Y2xcbiAgICovXG4gIHJlYWRvbmx5IHZjbEJhY2tlbmRSZXNwb25zZVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBjYWNoZSBpbnZhbGlkYXRpb24gKFBVUkdFLCBCQU4sIHhrZXkpLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbnZhbGlkYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgUHJvbWV0aGV1cyBtb25pdG9yaW5nIChtZXRyaWNzICsgU2VydmljZU1vbml0b3IpLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvcmluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbnRhaW5lciBpbWFnZSBmb3IgdGhlIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJ3Zhcm5pc2g6Ny42J1xuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRvbGVyYXRpb25zIGZvciB0aGUgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAtIG5vIHRvbGVyYXRpb25zXG4gICAqL1xuICByZWFkb25seSB0b2xlcmF0aW9ucz86IFZpbnlsQ2FjaGVUb2xlcmF0aW9uW107XG5cbiAgLyoqXG4gICAqIE5vZGUgc2VsZWN0b3IgbGFiZWxzIGZvciB0aGUgVmFybmlzaCBwb2RzLlxuICAgKiBDb25zdHJhaW5zIHBvZHMgdG8gbm9kZXMgbWF0Y2hpbmcgYWxsIHNwZWNpZmllZCBsYWJlbHMuXG4gICAqIEBkZWZhdWx0IC0gbm8gbm9kZSBzZWxlY3RvclxuICAgKi9cbiAgcmVhZG9ubHkgbm9kZVNlbGVjdG9yPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfZGVsaXZlciBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbERlbGl2ZXJTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9oaXQgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xIaXRTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9taXNzIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsTWlzc1NuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX3Bhc3Mgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xQYXNzU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcGlwZSBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbFBpcGVTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9zeW50aCBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbFN5bnRoU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcHVyZ2Ugc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xQdXJnZVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2hhc2ggc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xIYXNoU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfaW5pdCBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbEluaXRTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9maW5pIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsRmluaVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2JhY2tlbmRfZmV0Y2ggc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xCYWNrZW5kRmV0Y2hTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9iYWNrZW5kX2Vycm9yIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsQmFja2VuZEVycm9yU25pcHBldD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQbG9uZVZpbnlsQ2FjaGUgY29uc3RydWN0IGZvciBkZXBsb3lpbmcgVmFybmlzaCBDYWNoZSB2aWEgY2xvdWQtdmlueWwgb3BlcmF0b3IuXG4gKlxuICogQ3JlYXRlcyBhIFZpbnlsQ2FjaGUgY3VzdG9tIHJlc291cmNlIHdpdGggUGxvbmUgYmFja2VuZC9mcm9udGVuZCBzZXJ2aWNlc1xuICogYXV0by1jb25maWd1cmVkIGFzIGJhY2tlbmRzLiBUaGUgY2xvdWQtdmlueWwgb3BlcmF0b3IgbWFuYWdlcyB0aGUgZnVsbFxuICogVmFybmlzaCBsaWZlY3ljbGUgaW5jbHVkaW5nIFZDTCBnZW5lcmF0aW9uLCBhZ2VudCBkZWxpdmVyeSwgYW5kIG1vbml0b3JpbmcuXG4gKlxuICogUmVxdWlyZXMgdGhlIGNsb3VkLXZpbnlsIG9wZXJhdG9yIHRvIGJlIGluc3RhbGxlZCBpbiB0aGUgY2x1c3Rlci5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcGxvbmUgPSBuZXcgUGxvbmUoY2hhcnQsICdwbG9uZScpO1xuICogY29uc3QgY2FjaGUgPSBuZXcgUGxvbmVWaW55bENhY2hlKGNoYXJ0LCAnY2FjaGUnLCB7XG4gKiAgIHBsb25lOiBwbG9uZSxcbiAqICAgcmVwbGljYXM6IDIsXG4gKiB9KTtcbiAqIC8vIFVzZSBjYWNoZS52aW55bENhY2hlU2VydmljZU5hbWUgZm9yIEluZ3Jlc3NSb3V0ZVxuICovXG5leHBvcnQgY2xhc3MgUGxvbmVWaW55bENhY2hlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFZpbnlsQ2FjaGUgc2VydmljZSBjcmVhdGVkIGJ5IHRoZSBvcGVyYXRvci5cbiAgICogVXNlIHRoaXMgdG8gcmVmZXJlbmNlIHRoZSBjYWNoZSBzZXJ2aWNlIGZyb20gaW5ncmVzcyBvciBvdGhlciBjb25zdHJ1Y3RzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZpbnlsQ2FjaGVTZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBsb25lVmlueWxDYWNoZU9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcmVwbGljYXMgPSBvcHRpb25zLnJlcGxpY2FzID8/IDI7XG4gICAgY29uc3QgaW52YWxpZGF0aW9uID0gb3B0aW9ucy5pbnZhbGlkYXRpb24gPz8gdHJ1ZTtcbiAgICBjb25zdCBtb25pdG9yaW5nID0gb3B0aW9ucy5tb25pdG9yaW5nID8/IGZhbHNlO1xuXG4gICAgLy8gUmVzb2x2ZSBkaXJlY3RvciB0eXBlIGVudW1cbiAgICBjb25zdCBkaXJlY3RvclN0ciA9IG9wdGlvbnMuZGlyZWN0b3IgPz8gJ3NoYXJkJztcbiAgICBsZXQgZGlyZWN0b3JUeXBlOiBWaW55bENhY2hlU3BlY0RpcmVjdG9yVHlwZTtcbiAgICBzd2l0Y2ggKGRpcmVjdG9yU3RyKSB7XG4gICAgICBjYXNlICdyb3VuZF9yb2Jpbic6XG4gICAgICAgIGRpcmVjdG9yVHlwZSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLlJPVU5EX1VOREVSU0NPUkVfUk9CSU47XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmFuZG9tJzpcbiAgICAgICAgZGlyZWN0b3JUeXBlID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGUuUkFORE9NO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hhc2gnOlxuICAgICAgICBkaXJlY3RvclR5cGUgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yVHlwZS5IQVNIO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGRpcmVjdG9yVHlwZSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLlNIQVJEO1xuICAgIH1cblxuICAgIC8vIFNoYXJkIGRpcmVjdG9yIHR1bmluZzogb25seSBob25vcmVkIGJ5IHRoZSBvcGVyYXRvciB3aGVuIGRpcmVjdG9yIHR5cGUgaXMgXCJzaGFyZFwiLlxuICAgIC8vIEVtaXQgdGhlIHNoYXJkIGJsb2NrIG9ubHkgZm9yIHNoYXJkIGRpcmVjdG9ycyBzbyBtYW5pZmVzdHMgc3RheSBtaW5pbWFsLlxuICAgIGxldCBzaGFyZFNwZWM6IHtcbiAgICAgIGJ5PzogVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkQnk7XG4gICAgICBoZWFsdGh5PzogVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkSGVhbHRoeTtcbiAgICAgIHJhbXB1cD86IHN0cmluZztcbiAgICAgIHJlcGxpY2FzPzogbnVtYmVyO1xuICAgIH0gfCB1bmRlZmluZWQ7XG4gICAgaWYgKGRpcmVjdG9yVHlwZSA9PT0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGUuU0hBUkQgJiZcbiAgICAgICAgKG9wdGlvbnMuc2hhcmRCeSB8fCBvcHRpb25zLnNoYXJkSGVhbHRoeSB8fCBvcHRpb25zLnNoYXJkUmFtcHVwIHx8IG9wdGlvbnMuc2hhcmRSZXBsaWNhcyAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgbGV0IHNoYXJkQnk6IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEJ5IHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKG9wdGlvbnMuc2hhcmRCeSA9PT0gJ1VSTCcpIHNoYXJkQnkgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yU2hhcmRCeS5VUkw7XG4gICAgICBlbHNlIGlmIChvcHRpb25zLnNoYXJkQnkgPT09ICdIQVNIJykgc2hhcmRCeSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEJ5LkhBU0g7XG5cbiAgICAgIGxldCBzaGFyZEhlYWx0aHk6IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEhlYWx0aHkgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAob3B0aW9ucy5zaGFyZEhlYWx0aHkgPT09ICdBTEwnKSBzaGFyZEhlYWx0aHkgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yU2hhcmRIZWFsdGh5LkFMTDtcbiAgICAgIGVsc2UgaWYgKG9wdGlvbnMuc2hhcmRIZWFsdGh5ID09PSAnQ0hPU0VOJykgc2hhcmRIZWFsdGh5ID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkSGVhbHRoeS5DSE9TRU47XG5cbiAgICAgIHNoYXJkU3BlYyA9IHtcbiAgICAgICAgYnk6IHNoYXJkQnksXG4gICAgICAgIGhlYWx0aHk6IHNoYXJkSGVhbHRoeSxcbiAgICAgICAgcmFtcHVwOiBvcHRpb25zLnNoYXJkUmFtcHVwLFxuICAgICAgICByZXBsaWNhczogb3B0aW9ucy5zaGFyZFJlcGxpY2FzLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBMb2FkIGRlZmF1bHQgVkNMIHNuaXBwZXRzXG4gICAgY29uc3QgdmNsUmVjdiA9IG9wdGlvbnMudmNsUmVjdlNuaXBwZXQgPz9cbiAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnY29uZmlnJywgJ3Bsb25lLXZpbnlsLXJlY3YudmNsJyksICd1dGY4Jyk7XG4gICAgY29uc3QgdmNsQmFja2VuZFJlc3BvbnNlID0gb3B0aW9ucy52Y2xCYWNrZW5kUmVzcG9uc2VTbmlwcGV0ID8/XG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2NvbmZpZycsICdwbG9uZS12aW55bC1iYWNrZW5kLXJlc3BvbnNlLnZjbCcpLCAndXRmOCcpO1xuXG4gICAgLy8gQnVpbGQgYmFja2VuZHMgZnJvbSBQbG9uZSBzZXJ2aWNlc1xuICAgIGNvbnN0IGJhY2tlbmRzOiBBcnJheTx7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBzZXJ2aWNlUmVmOiB7IG5hbWU6IHN0cmluZyB9O1xuICAgICAgcG9ydDogbnVtYmVyO1xuICAgICAgcHJvYmU/OiB7XG4gICAgICAgIHVybDogc3RyaW5nO1xuICAgICAgICBpbnRlcnZhbDogc3RyaW5nO1xuICAgICAgICB0aW1lb3V0OiBzdHJpbmc7XG4gICAgICAgIHdpbmRvdzogbnVtYmVyO1xuICAgICAgICB0aHJlc2hvbGQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgICB3ZWlnaHQ/OiBudW1iZXI7XG4gICAgfT4gPSBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdwbG9uZV9iYWNrZW5kJyxcbiAgICAgICAgc2VydmljZVJlZjogeyBuYW1lOiBvcHRpb25zLnBsb25lLmJhY2tlbmRTZXJ2aWNlTmFtZSB9LFxuICAgICAgICBwb3J0OiA4MDgwLFxuICAgICAgICBwcm9iZToge1xuICAgICAgICAgIHVybDogJy9vaycsXG4gICAgICAgICAgaW50ZXJ2YWw6ICc1cycsXG4gICAgICAgICAgdGltZW91dDogJzJzJyxcbiAgICAgICAgICB3aW5kb3c6IDEwLFxuICAgICAgICAgIHRocmVzaG9sZDogOCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGlmIChvcHRpb25zLnBsb25lLmZyb250ZW5kU2VydmljZU5hbWUpIHtcbiAgICAgIGJhY2tlbmRzLnB1c2goe1xuICAgICAgICBuYW1lOiAncGxvbmVfZnJvbnRlbmQnLFxuICAgICAgICBzZXJ2aWNlUmVmOiB7IG5hbWU6IG9wdGlvbnMucGxvbmUuZnJvbnRlbmRTZXJ2aWNlTmFtZSB9LFxuICAgICAgICBwb3J0OiAzMDAwLFxuICAgICAgICBwcm9iZToge1xuICAgICAgICAgIHVybDogJy8nLFxuICAgICAgICAgIGludGVydmFsOiAnNXMnLFxuICAgICAgICAgIHRpbWVvdXQ6ICcycycsXG4gICAgICAgICAgd2luZG93OiAxMCxcbiAgICAgICAgICB0aHJlc2hvbGQ6IDgsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5leHRyYUJhY2tlbmRzKSB7XG4gICAgICBmb3IgKGNvbnN0IGViIG9mIG9wdGlvbnMuZXh0cmFCYWNrZW5kcykge1xuICAgICAgICBiYWNrZW5kcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBlYi5uYW1lLFxuICAgICAgICAgIHNlcnZpY2VSZWY6IHsgbmFtZTogZWIuc2VydmljZU5hbWUgfSxcbiAgICAgICAgICBwb3J0OiBlYi5wb3J0LFxuICAgICAgICAgIHByb2JlOiBlYi5wcm9iZSA/IHtcbiAgICAgICAgICAgIHVybDogZWIucHJvYmUudXJsID8/ICcvJyxcbiAgICAgICAgICAgIGludGVydmFsOiBlYi5wcm9iZS5pbnRlcnZhbCA/PyAnNXMnLFxuICAgICAgICAgICAgdGltZW91dDogZWIucHJvYmUudGltZW91dCA/PyAnMnMnLFxuICAgICAgICAgICAgd2luZG93OiBlYi5wcm9iZS53aW5kb3cgPz8gMTAsXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IGViLnByb2JlLnRocmVzaG9sZCA/PyA4LFxuICAgICAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHZpbnlsQ2FjaGUgPSBuZXcgVmlueWxDYWNoZSh0aGlzLCAndmlueWxjYWNoZScsIHtcbiAgICAgIHNwZWM6IHtcbiAgICAgICAgcmVwbGljYXMsXG4gICAgICAgIGltYWdlOiBvcHRpb25zLmltYWdlID8/ICd2YXJuaXNoOjcuNicsXG4gICAgICAgIGJhY2tlbmRzLFxuICAgICAgICBkaXJlY3RvcjogeyB0eXBlOiBkaXJlY3RvclR5cGUsIHNoYXJkOiBzaGFyZFNwZWMgfSxcbiAgICAgICAgdmNsOiB7XG4gICAgICAgICAgc25pcHBldHM6IHtcbiAgICAgICAgICAgIHZjbFJlY3Y6IHZjbFJlY3YsXG4gICAgICAgICAgICB2Y2xCYWNrZW5kUmVzcG9uc2U6IHZjbEJhY2tlbmRSZXNwb25zZSxcbiAgICAgICAgICAgIHZjbERlbGl2ZXI6IG9wdGlvbnMudmNsRGVsaXZlclNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xIaXQ6IG9wdGlvbnMudmNsSGl0U25pcHBldCxcbiAgICAgICAgICAgIHZjbE1pc3M6IG9wdGlvbnMudmNsTWlzc1NuaXBwZXQsXG4gICAgICAgICAgICB2Y2xQYXNzOiBvcHRpb25zLnZjbFBhc3NTbmlwcGV0LFxuICAgICAgICAgICAgdmNsUGlwZTogb3B0aW9ucy52Y2xQaXBlU25pcHBldCxcbiAgICAgICAgICAgIHZjbFN5bnRoOiBvcHRpb25zLnZjbFN5bnRoU25pcHBldCxcbiAgICAgICAgICAgIHZjbFB1cmdlOiBvcHRpb25zLnZjbFB1cmdlU25pcHBldCxcbiAgICAgICAgICAgIHZjbEhhc2g6IG9wdGlvbnMudmNsSGFzaFNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xJbml0OiBvcHRpb25zLnZjbEluaXRTbmlwcGV0LFxuICAgICAgICAgICAgdmNsRmluaTogb3B0aW9ucy52Y2xGaW5pU25pcHBldCxcbiAgICAgICAgICAgIHZjbEJhY2tlbmRGZXRjaDogb3B0aW9ucy52Y2xCYWNrZW5kRmV0Y2hTbmlwcGV0LFxuICAgICAgICAgICAgdmNsQmFja2VuZEVycm9yOiBvcHRpb25zLnZjbEJhY2tlbmRFcnJvclNuaXBwZXQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb3VyY2VzOiB7XG4gICAgICAgICAgcmVxdWVzdHM6IHtcbiAgICAgICAgICAgIGNwdTogVmlueWxDYWNoZVNwZWNSZXNvdXJjZXNSZXF1ZXN0cy5mcm9tU3RyaW5nKG9wdGlvbnMucmVxdWVzdENwdSA/PyAnMTAwbScpLFxuICAgICAgICAgICAgbWVtb3J5OiBWaW55bENhY2hlU3BlY1Jlc291cmNlc1JlcXVlc3RzLmZyb21TdHJpbmcob3B0aW9ucy5yZXF1ZXN0TWVtb3J5ID8/ICcyNTZNaScpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGltaXRzOiB7XG4gICAgICAgICAgICBjcHU6IFZpbnlsQ2FjaGVTcGVjUmVzb3VyY2VzTGltaXRzLmZyb21TdHJpbmcob3B0aW9ucy5saW1pdENwdSA/PyAnNTAwbScpLFxuICAgICAgICAgICAgbWVtb3J5OiBWaW55bENhY2hlU3BlY1Jlc291cmNlc0xpbWl0cy5mcm9tU3RyaW5nKG9wdGlvbnMubGltaXRNZW1vcnkgPz8gJzUxMk1pJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgaW52YWxpZGF0aW9uOiBpbnZhbGlkYXRpb24gPyB7XG4gICAgICAgICAgcHVyZ2U6IHsgZW5hYmxlZDogdHJ1ZSB9LFxuICAgICAgICAgIGJhbjogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgeGtleTogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICAgIG1vbml0b3Jpbmc6IG1vbml0b3JpbmcgPyB7XG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICBzZXJ2aWNlTW9uaXRvcjogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICAgIHBvZDogKG9wdGlvbnMudG9sZXJhdGlvbnM/Lmxlbmd0aCB8fCBvcHRpb25zLm5vZGVTZWxlY3RvcikgPyB7XG4gICAgICAgICAgdG9sZXJhdGlvbnM6IG9wdGlvbnMudG9sZXJhdGlvbnM/Lm1hcCh0ID0+ICh7XG4gICAgICAgICAgICBrZXk6IHQua2V5LFxuICAgICAgICAgICAgb3BlcmF0b3I6IHQub3BlcmF0b3IsXG4gICAgICAgICAgICB2YWx1ZTogdC52YWx1ZSxcbiAgICAgICAgICAgIGVmZmVjdDogdC5lZmZlY3QsXG4gICAgICAgICAgfSkpLFxuICAgICAgICAgIG5vZGVTZWxlY3Rvcjogb3B0aW9ucy5ub2RlU2VsZWN0b3IsXG4gICAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gVGhlIG9wZXJhdG9yIGNyZWF0ZXMgYSBzZXJ2aWNlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyB0aGUgVmlueWxDYWNoZSByZXNvdXJjZVxuICAgIHRoaXMudmlueWxDYWNoZVNlcnZpY2VOYW1lID0gTmFtZXMudG9MYWJlbFZhbHVlKHZpbnlsQ2FjaGUpO1xuICB9XG59XG4iXX0=
189
+ PloneVinylCache[_a] = { fqn: "@bluedynamics/cdk8s-plone.PloneVinylCache", version: "0.1.32" };
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlueWxjYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy92aW55bGNhY2hlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QixpQ0FBOEI7QUFDOUIsMkNBQXVDO0FBQ3ZDLDJFQVV5QztBQTRXekM7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsc0JBQVM7SUFPNUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1FBQ2xELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDO1FBRS9DLDZCQUE2QjtRQUM3QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQztRQUNoRCxJQUFJLFlBQXdDLENBQUM7UUFDN0MsUUFBUSxXQUFXLEVBQUUsQ0FBQztZQUNwQixLQUFLLGFBQWE7Z0JBQ2hCLFlBQVksR0FBRyxrREFBMEIsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakUsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxZQUFZLEdBQUcsa0RBQTBCLENBQUMsTUFBTSxDQUFDO2dCQUNqRCxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULFlBQVksR0FBRyxrREFBMEIsQ0FBQyxJQUFJLENBQUM7Z0JBQy9DLE1BQU07WUFDUjtnQkFDRSxZQUFZLEdBQUcsa0RBQTBCLENBQUMsS0FBSyxDQUFDO1FBQ3BELENBQUM7UUFFRCxxRkFBcUY7UUFDckYsMkVBQTJFO1FBQzNFLElBQUksU0FLUyxDQUFDO1FBQ2QsSUFBSSxZQUFZLEtBQUssa0RB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QUU7b0JBQ3hCLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7b0JBQ3RCLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7aUJBQ3hCLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxJQUFJO29CQUNiLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7aUJBQ2xDLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxNQUFNLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0QsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDMUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO3dCQUNWLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTt3QkFDcEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3dCQUNkLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTtxQkFDakIsQ0FBQyxDQUFDO29CQUNILFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtpQkFDbkMsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUNkO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsK0VBQStFO1FBQy9FLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxhQUFLLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlELENBQUM7O0FBNUxILDBDQTZMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBOYW1lcyB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgVmlueWxDYWNoZSxcbiAgVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkQnksXG4gIFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEhlYWx0aHksXG4gIFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLFxuICBWaW55bENhY2hlU3BlY1Jlc291cmNlc0xpbWl0cyxcbiAgVmlueWxDYWNoZVNwZWNSZXNvdXJjZXNSZXF1ZXN0cyxcbiAgVmlueWxDYWNoZVNwZWNTdG9yYWdlLFxuICBWaW55bENhY2hlU3BlY1N0b3JhZ2VTaXplLFxuICBWaW55bENhY2hlU3BlY1N0b3JhZ2VUeXBlLFxufSBmcm9tICcuL2ltcG9ydHMvdmlueWwuYmx1ZWR5bmFtaWNzLmV1JztcbmltcG9ydCB7IFBsb25lIH0gZnJvbSAnLi9wbG9uZSc7XG5cbi8qKlxuICogSGVhbHRoIHByb2JlIGNvbmZpZ3VyYXRpb24gZm9yIGEgVmlueWxDYWNoZSBiYWNrZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpbnlsQ2FjaGVCYWNrZW5kUHJvYmUge1xuICAvKipcbiAgICogVVJMIHRvIHByb2JlLlxuICAgKiBAZGVmYXVsdCAnLydcbiAgICovXG4gIHJlYWRvbmx5IHVybD86IHN0cmluZztcblxuICAvKipcbiAgICogSG93IG9mdGVuIHRvIHByb2JlIHRoZSBiYWNrZW5kLlxuICAgKiBAZGVmYXVsdCAnNXMnXG4gICAqL1xuICByZWFkb25seSBpbnRlcnZhbD86IHN0cmluZztcblxuICAvKipcbiAgICogTWF4aW11bSB0aW1lIHRvIHdhaXQgZm9yIGEgcHJvYmUgcmVzcG9uc2UuXG4gICAqIEBkZWZhdWx0ICcycydcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBtb3N0IHJlY2VudCBwcm9iZXMgdG8gY29uc2lkZXIuXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICByZWFkb25seSB3aW5kb3c/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gc3VjY2Vzc2Z1bCBwcm9iZXMgd2l0aGluIHdpbmRvdyBmb3IgaGVhbHRoeSBzdGF0dXMuXG4gICAqIEBkZWZhdWx0IDhcbiAgICovXG4gIHJlYWRvbmx5IHRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogRXhwZWN0ZWQgSFRUUCByZXNwb25zZSBzdGF0dXMgY29kZS5cbiAgICogQGRlZmF1bHQgMjAwXG4gICAqL1xuICByZWFkb25seSBleHBlY3RlZFJlc3BvbnNlPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEFuIGFkZGl0aW9uYWwgYmFja2VuZCBmb3IgdGhlIFZpbnlsQ2FjaGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlueWxDYWNoZUJhY2tlbmQge1xuICAvKipcbiAgICogVkNMIGlkZW50aWZpZXIgZm9yIHRoaXMgYmFja2VuZC4gTXVzdCBtYXRjaCBeW2EtekEtWl1bYS16QS1aMC05X10qJC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogS3ViZXJuZXRlcyBTZXJ2aWNlIG5hbWUgdG8gdXNlIGFzIGJhY2tlbmQuXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb3J0IHRvIHVzZSBmb3IgdGhpcyBiYWNrZW5kLlxuICAgKi9cbiAgcmVhZG9ubHkgcG9ydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBIZWFsdGggcHJvYmUgY29uZmlndXJhdGlvbi5cbiAgICogQGRlZmF1bHQgLSBubyBwcm9iZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJvYmU/OiBWaW55bENhY2hlQmFja2VuZFByb2JlO1xuXG4gIC8qKlxuICAgKiBSZWxhdGl2ZSB3ZWlnaHQgZm9yIHRoZSBkaXJlY3Rvci4gMCBtZWFucyBzdGFuZGJ5LlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IHdlaWdodD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIFZhcm5pc2ggc3RvcmFnZSBiYWNrZW5kIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogTWFwcyB0byBgc3BlYy5zdG9yYWdlW11gIG9uIHRoZSBWaW55bENhY2hlIENSRC4gVGhlIG9wZXJhdG9yIGVtaXRzIG9uZVxuICogYC1zIDxuYW1lPj08dHlwZT4sPG9wdGlvbnM+YCBhcmd1bWVudCBwZXIgZW50cnkgdG8gdmFybmlzaGQuXG4gKlxuICogV2l0aG91dCBhbnkgc3RvcmFnZSBlbnRyeSB0aGUgb3BlcmF0b3IgZmFsbHMgYmFjayB0byB0aGUgdmFybmlzaGQgZGVmYXVsdFxuICogKH4xMDAgTUIgbWFsbG9jKSwgd2hpY2ggaXMgYWxtb3N0IGFsd2F5cyB0b28gc21hbGwgZm9yIHJlYWwgd29ya2xvYWRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpbnlsQ2FjaGVTdG9yYWdlIHtcbiAgLyoqXG4gICAqIEludGVybmFsIHN0b3JhZ2UgaWRlbnRpZmllciB1c2VkIGluIHRoZSB2YXJuaXNoZCBgLXNgIGFyZ3VtZW50LlxuICAgKiBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIFZpbnlsQ2FjaGUgYW5kIG1hdGNoIGBeW2EtekEtWl1bYS16QS1aMC05X10qJGAuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UgYmFja2VuZCB0eXBlLiBPbmx5IFwibWFsbG9jXCIgYW5kIFwiZmlsZVwiIGFyZSBwZXJtaXR0ZWQgYnkgdGhlXG4gICAqIGFkbWlzc2lvbiB3ZWJob29rLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogJ21hbGxvYycgfCAnZmlsZSc7XG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UgYWxsb2NhdGlvbiBhcyBhIEt1YmVybmV0ZXMgcmVzb3VyY2UgcXVhbnRpdHkgKGUuZy4gXCIxR2lcIiwgXCI1MDBNXCIpLlxuICAgKiBSZXF1aXJlZCBmb3IgbWFsbG9jOyByZXF1aXJlZCBmb3IgZmlsZS5cbiAgICogQGRlZmF1bHQgLSByZXF1aXJlZCBmb3IgYm90aCBtYWxsb2MgYW5kIGZpbGVcbiAgICovXG4gIHJlYWRvbmx5IHNpemU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZpbGVzeXN0ZW0gcGF0aCBmb3IgZmlsZS10eXBlIHN0b3JhZ2UuIElnbm9yZWQgZm9yIG1hbGxvYy5cbiAgICogQGRlZmF1bHQgLSByZXF1aXJlZCBmb3IgdHlwZSBcImZpbGVcIlxuICAgKi9cbiAgcmVhZG9ubHkgcGF0aD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIEt1YmVybmV0ZXMgdG9sZXJhdGlvbiBmb3IgdGhlIFZhcm5pc2ggcG9kcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWaW55bENhY2hlVG9sZXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgdGFpbnQga2V5IHRvIHRvbGVyYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBvcGVyYXRvciAoRXF1YWwgb3IgRXhpc3RzKS5cbiAgICogQGRlZmF1bHQgJ0VxdWFsJ1xuICAgKi9cbiAgcmVhZG9ubHkgb3BlcmF0b3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWludCB2YWx1ZSB0byBtYXRjaCAod2hlbiBvcGVyYXRvciBpcyBFcXVhbCkuXG4gICAqIEBkZWZhdWx0IC0gbm8gdmFsdWVcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFpbnQgZWZmZWN0IHRvIHRvbGVyYXRlIChOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlLCBOb0V4ZWN1dGUpLlxuICAgKiBAZGVmYXVsdCAtIHRvbGVyYXRlIGFsbCBlZmZlY3RzXG4gICAqL1xuICByZWFkb25seSBlZmZlY3Q/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBQbG9uZVZpbnlsQ2FjaGUgKGNsb3VkLXZpbnlsIG9wZXJhdG9yKS5cbiAqXG4gKiBDcmVhdGVzIGEgVmlueWxDYWNoZSBjdXN0b20gcmVzb3VyY2UgdGhhdCB0aGUgY2xvdWQtdmlueWwgb3BlcmF0b3JcbiAqIHJlY29uY2lsZXMgaW50byBhIFZhcm5pc2ggQ2FjaGUgY2x1c3RlciB3aXRoIGFnZW50LWJhc2VkIFZDTCBkZWxpdmVyeS5cbiAqXG4gKiBSZXF1aXJlcyB0aGUgY2xvdWQtdmlueWwgb3BlcmF0b3IgdG8gYmUgaW5zdGFsbGVkIGluIHRoZSBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsb25lVmlueWxDYWNoZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIFBsb25lIGNvbnN0cnVjdCB0byBhdHRhY2ggdGhlIGNhY2hlIHRvLlxuICAgKiBCYWNrZW5kcyBhcmUgYXV0by1jb25maWd1cmVkIGZyb20gdGhlIFBsb25lIHNlcnZpY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGxvbmU6IFBsb25lO1xuXG4gIC8qKlxuICAgKiBBZGRpdGlvbmFsIGJhY2tlbmRzIHRvIGFkZCBhZnRlciB0aGUgYXV0by1nZW5lcmF0ZWQgUGxvbmUgYmFja2VuZHMuXG4gICAqIFVzZXMgdGhlIHNhbWUgYmFja2VuZCB0eXBlIHN0cnVjdHVyZSBhcyB0aGUgVmlueWxDYWNoZSBDUkQuXG4gICAqIEBkZWZhdWx0IC0gbm8gZXh0cmEgYmFja2VuZHNcbiAgICovXG4gIHJlYWRvbmx5IGV4dHJhQmFja2VuZHM/OiBWaW55bENhY2hlQmFja2VuZFtdO1xuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgVmFybmlzaCBwb2QgcmVwbGljYXMuXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IHJlcGxpY2FzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDUFUgcmVxdWVzdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnMTAwbSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RDcHU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1lbW9yeSByZXF1ZXN0IGZvciBWYXJuaXNoIHBvZHMuXG4gICAqIEBkZWZhdWx0ICcyNTZNaSdcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RNZW1vcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENQVSBsaW1pdCBmb3IgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAnNTAwbSdcbiAgICovXG4gIHJlYWRvbmx5IGxpbWl0Q3B1Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNZW1vcnkgbGltaXQgZm9yIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJzUxMk1pJ1xuICAgKi9cbiAgcmVhZG9ubHkgbGltaXRNZW1vcnk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZhcm5pc2ggc3RvcmFnZSBiYWNrZW5kcyAoYHNwZWMuc3RvcmFnZWApLlxuICAgKlxuICAgKiBFYWNoIGVudHJ5IGJlY29tZXMgYSBgLXMgPG5hbWU+PTx0eXBlPiw8b3B0aW9ucz5gIGFyZ3VtZW50IHRvIHZhcm5pc2hkLlxuICAgKiBJZiBvbWl0dGVkLCB0aGUgb3BlcmF0b3Igc2hpcHMgdmFybmlzaGQgd2l0aCBpdHMgc3RvY2sgZGVmYXVsdCAofjEwMCBNQlxuICAgKiBtYWxsb2MpIOKAlCBhbG1vc3QgYWx3YXlzIHRvbyBzbWFsbC4gU2V0IGFuIGV4cGxpY2l0IG1hbGxvYyBzaXplIGF0IGxlYXN0XG4gICAqIG1hdGNoaW5nIHRoZSBwb2QncyBtZW1vcnkgcmVxdWVzdCB0byB1c2UgdGhlIGFsbG9jYXRlZCBtZW1vcnkgZm9yIGNhY2hpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3RvcmFnZSBjb25maWd1cmVkOyBvcGVyYXRvciB1c2VzIHZhcm5pc2hkIGRlZmF1bHQgKH4xMDBNQiBtYWxsb2MpXG4gICAqIEBleGFtcGxlXG4gICAqIHN0b3JhZ2U6IFt7IG5hbWU6ICdzMCcsIHR5cGU6ICdtYWxsb2MnLCBzaXplOiAnMUdpJyB9XVxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZT86IFZpbnlsQ2FjaGVTdG9yYWdlW107XG5cbiAgLyoqXG4gICAqIERpcmVjdG9yIHR5cGUgZm9yIGxvYWQgZGlzdHJpYnV0aW9uLlxuICAgKiBAZGVmYXVsdCAnc2hhcmQnXG4gICAqL1xuICByZWFkb25seSBkaXJlY3Rvcj86IHN0cmluZztcblxuICAvKipcbiAgICogU2hhcmQgZGlyZWN0b3I6IHdoYXQgdmFsdWUgaXMgaGFzaGVkIGZvciBzaGFyZCBzZWxlY3Rpb24uXG4gICAqIFwiSEFTSFwiIHVzZXMgdGhlIFZhcm5pc2ggaGFzaCAoZGVmYXVsdCk7IFwiVVJMXCIgdXNlcyB0aGUgcmVxdWVzdCBVUkwuXG4gICAqIE9ubHkgYXBwbGllZCB3aGVuIGRpcmVjdG9yIGlzIFwic2hhcmRcIi5cbiAgICogUmVxdWlyZXMgY2xvdWQtdmlueWwgb3BlcmF0b3IgPj0gMC40LjIuXG4gICAqIEBkZWZhdWx0IC0gb3BlcmF0b3IgZGVmYXVsdCAoXCJIQVNIXCIpXG4gICAqL1xuICByZWFkb25seSBzaGFyZEJ5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGFyZCBkaXJlY3Rvcjogd2hpY2ggYmFja2VuZHMgdGhlIGRpcmVjdG9yIGNvbnNpZGVycyB3aGVuIHNlbGVjdGluZyBhIHNoYXJkLlxuICAgKiBcIkNIT1NFTlwiIChkZWZhdWx0KSBvbmx5IGNvbnNpZGVycyB0aGUgY2hvc2VuIGJhY2tlbmQgaGVhbHRoeTsgXCJBTExcIiByZXF1aXJlcyBhbGxcbiAgICogYmFja2VuZHMgdG8gYmUgaGVhbHRoeS5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBSZXF1aXJlcyBjbG91ZC12aW55bCBvcGVyYXRvciA+PSAwLjQuMi5cbiAgICogQGRlZmF1bHQgLSBvcGVyYXRvciBkZWZhdWx0IChcIkNIT1NFTlwiKVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmRIZWFsdGh5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaGFyZCBkaXJlY3RvcjogdGltZSBhZnRlciBhZGRpbmcgYSBiYWNrZW5kIGJlZm9yZSBpdCByZWNlaXZlcyBpdHMgZnVsbCBzaGFyZSBvZlxuICAgKiB0cmFmZmljLCBwcmV2ZW50aW5nIHRodW5kZXJpbmctaGVyZC5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHQgKFwiMzBzXCIpXG4gICAqL1xuICByZWFkb25seSBzaGFyZFJhbXB1cD86IHN0cmluZztcblxuICAvKipcbiAgICogU2hhcmQgZGlyZWN0b3I6IG51bWJlciBvZiBLZXRhbWEgcmVwbGljYXMgcGVyIGJhY2tlbmQgaW4gdGhlIGhhc2ggcmluZy5cbiAgICogT25seSBhcHBsaWVkIHdoZW4gZGlyZWN0b3IgaXMgXCJzaGFyZFwiLlxuICAgKiBAZGVmYXVsdCAtIG9wZXJhdG9yIGRlZmF1bHQgKDY3KVxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmRSZXBsaWNhcz86IG51bWJlcjtcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcmVjdiBzdWJyb3V0aW5lLlxuICAgKiBSZXBsYWNlcyB0aGUgZGVmYXVsdCBQbG9uZSByZWN2IHNuaXBwZXQuXG4gICAqIEBkZWZhdWx0IC0gdXNlcyBidWlsdC1pbiBwbG9uZS12aW55bC1yZWN2LnZjbFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsUmVjdlNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2JhY2tlbmRfcmVzcG9uc2Ugc3Vicm91dGluZS5cbiAgICogUmVwbGFjZXMgdGhlIGRlZmF1bHQgUGxvbmUgYmFja2VuZF9yZXNwb25zZSBzbmlwcGV0LlxuICAgKiBAZGVmYXVsdCAtIHVzZXMgYnVpbHQtaW4gcGxvbmUtdmlueWwtYmFja2VuZC1yZXNwb25zZS52Y2xcbiAgICovXG4gIHJlYWRvbmx5IHZjbEJhY2tlbmRSZXNwb25zZVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBjYWNoZSBpbnZhbGlkYXRpb24gKFBVUkdFLCBCQU4sIHhrZXkpLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBpbnZhbGlkYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgUHJvbWV0aGV1cyBtb25pdG9yaW5nIChtZXRyaWNzICsgU2VydmljZU1vbml0b3IpLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvcmluZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbnRhaW5lciBpbWFnZSBmb3IgdGhlIFZhcm5pc2ggcG9kcy5cbiAgICogQGRlZmF1bHQgJ3Zhcm5pc2g6Ny42J1xuICAgKi9cbiAgcmVhZG9ubHkgaW1hZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRvbGVyYXRpb25zIGZvciB0aGUgVmFybmlzaCBwb2RzLlxuICAgKiBAZGVmYXVsdCAtIG5vIHRvbGVyYXRpb25zXG4gICAqL1xuICByZWFkb25seSB0b2xlcmF0aW9ucz86IFZpbnlsQ2FjaGVUb2xlcmF0aW9uW107XG5cbiAgLyoqXG4gICAqIE5vZGUgc2VsZWN0b3IgbGFiZWxzIGZvciB0aGUgVmFybmlzaCBwb2RzLlxuICAgKiBDb25zdHJhaW5zIHBvZHMgdG8gbm9kZXMgbWF0Y2hpbmcgYWxsIHNwZWNpZmllZCBsYWJlbHMuXG4gICAqIEBkZWZhdWx0IC0gbm8gbm9kZSBzZWxlY3RvclxuICAgKi9cbiAgcmVhZG9ubHkgbm9kZVNlbGVjdG9yPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfZGVsaXZlciBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbERlbGl2ZXJTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9oaXQgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xIaXRTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9taXNzIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsTWlzc1NuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX3Bhc3Mgc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xQYXNzU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcGlwZSBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbFBpcGVTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9zeW50aCBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbFN5bnRoU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfcHVyZ2Ugc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xQdXJnZVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2hhc2ggc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xIYXNoU25pcHBldD86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIFZDTCBzbmlwcGV0IGZvciB2Y2xfaW5pdCBzdWJyb3V0aW5lLlxuICAgKiBAZGVmYXVsdCAtIG5vIHNuaXBwZXRcbiAgICovXG4gIHJlYWRvbmx5IHZjbEluaXRTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9maW5pIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsRmluaVNuaXBwZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBWQ0wgc25pcHBldCBmb3IgdmNsX2JhY2tlbmRfZmV0Y2ggc3Vicm91dGluZS5cbiAgICogQGRlZmF1bHQgLSBubyBzbmlwcGV0XG4gICAqL1xuICByZWFkb25seSB2Y2xCYWNrZW5kRmV0Y2hTbmlwcGV0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gVkNMIHNuaXBwZXQgZm9yIHZjbF9iYWNrZW5kX2Vycm9yIHN1YnJvdXRpbmUuXG4gICAqIEBkZWZhdWx0IC0gbm8gc25pcHBldFxuICAgKi9cbiAgcmVhZG9ubHkgdmNsQmFja2VuZEVycm9yU25pcHBldD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQbG9uZVZpbnlsQ2FjaGUgY29uc3RydWN0IGZvciBkZXBsb3lpbmcgVmFybmlzaCBDYWNoZSB2aWEgY2xvdWQtdmlueWwgb3BlcmF0b3IuXG4gKlxuICogQ3JlYXRlcyBhIFZpbnlsQ2FjaGUgY3VzdG9tIHJlc291cmNlIHdpdGggUGxvbmUgYmFja2VuZC9mcm9udGVuZCBzZXJ2aWNlc1xuICogYXV0by1jb25maWd1cmVkIGFzIGJhY2tlbmRzLiBUaGUgY2xvdWQtdmlueWwgb3BlcmF0b3IgbWFuYWdlcyB0aGUgZnVsbFxuICogVmFybmlzaCBsaWZlY3ljbGUgaW5jbHVkaW5nIFZDTCBnZW5lcmF0aW9uLCBhZ2VudCBkZWxpdmVyeSwgYW5kIG1vbml0b3JpbmcuXG4gKlxuICogUmVxdWlyZXMgdGhlIGNsb3VkLXZpbnlsIG9wZXJhdG9yIHRvIGJlIGluc3RhbGxlZCBpbiB0aGUgY2x1c3Rlci5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcGxvbmUgPSBuZXcgUGxvbmUoY2hhcnQsICdwbG9uZScpO1xuICogY29uc3QgY2FjaGUgPSBuZXcgUGxvbmVWaW55bENhY2hlKGNoYXJ0LCAnY2FjaGUnLCB7XG4gKiAgIHBsb25lOiBwbG9uZSxcbiAqICAgcmVwbGljYXM6IDIsXG4gKiB9KTtcbiAqIC8vIFVzZSBjYWNoZS52aW55bENhY2hlU2VydmljZU5hbWUgZm9yIEluZ3Jlc3NSb3V0ZVxuICovXG5leHBvcnQgY2xhc3MgUGxvbmVWaW55bENhY2hlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFZpbnlsQ2FjaGUgc2VydmljZSBjcmVhdGVkIGJ5IHRoZSBvcGVyYXRvci5cbiAgICogVXNlIHRoaXMgdG8gcmVmZXJlbmNlIHRoZSBjYWNoZSBzZXJ2aWNlIGZyb20gaW5ncmVzcyBvciBvdGhlciBjb25zdHJ1Y3RzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZpbnlsQ2FjaGVTZXJ2aWNlTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIG9wdGlvbnM6IFBsb25lVmlueWxDYWNoZU9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgcmVwbGljYXMgPSBvcHRpb25zLnJlcGxpY2FzID8/IDI7XG4gICAgY29uc3QgaW52YWxpZGF0aW9uID0gb3B0aW9ucy5pbnZhbGlkYXRpb24gPz8gdHJ1ZTtcbiAgICBjb25zdCBtb25pdG9yaW5nID0gb3B0aW9ucy5tb25pdG9yaW5nID8/IGZhbHNlO1xuXG4gICAgLy8gUmVzb2x2ZSBkaXJlY3RvciB0eXBlIGVudW1cbiAgICBjb25zdCBkaXJlY3RvclN0ciA9IG9wdGlvbnMuZGlyZWN0b3IgPz8gJ3NoYXJkJztcbiAgICBsZXQgZGlyZWN0b3JUeXBlOiBWaW55bENhY2hlU3BlY0RpcmVjdG9yVHlwZTtcbiAgICBzd2l0Y2ggKGRpcmVjdG9yU3RyKSB7XG4gICAgICBjYXNlICdyb3VuZF9yb2Jpbic6XG4gICAgICAgIGRpcmVjdG9yVHlwZSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLlJPVU5EX1VOREVSU0NPUkVfUk9CSU47XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmFuZG9tJzpcbiAgICAgICAgZGlyZWN0b3JUeXBlID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGUuUkFORE9NO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hhc2gnOlxuICAgICAgICBkaXJlY3RvclR5cGUgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yVHlwZS5IQVNIO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGRpcmVjdG9yVHlwZSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JUeXBlLlNIQVJEO1xuICAgIH1cblxuICAgIC8vIFNoYXJkIGRpcmVjdG9yIHR1bmluZzogb25seSBob25vcmVkIGJ5IHRoZSBvcGVyYXRvciB3aGVuIGRpcmVjdG9yIHR5cGUgaXMgXCJzaGFyZFwiLlxuICAgIC8vIEVtaXQgdGhlIHNoYXJkIGJsb2NrIG9ubHkgZm9yIHNoYXJkIGRpcmVjdG9ycyBzbyBtYW5pZmVzdHMgc3RheSBtaW5pbWFsLlxuICAgIGxldCBzaGFyZFNwZWM6IHtcbiAgICAgIGJ5PzogVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkQnk7XG4gICAgICBoZWFsdGh5PzogVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkSGVhbHRoeTtcbiAgICAgIHJhbXB1cD86IHN0cmluZztcbiAgICAgIHJlcGxpY2FzPzogbnVtYmVyO1xuICAgIH0gfCB1bmRlZmluZWQ7XG4gICAgaWYgKGRpcmVjdG9yVHlwZSA9PT0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclR5cGUuU0hBUkQgJiZcbiAgICAgICAgKG9wdGlvbnMuc2hhcmRCeSB8fCBvcHRpb25zLnNoYXJkSGVhbHRoeSB8fCBvcHRpb25zLnNoYXJkUmFtcHVwIHx8IG9wdGlvbnMuc2hhcmRSZXBsaWNhcyAhPT0gdW5kZWZpbmVkKSkge1xuICAgICAgbGV0IHNoYXJkQnk6IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEJ5IHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKG9wdGlvbnMuc2hhcmRCeSA9PT0gJ1VSTCcpIHNoYXJkQnkgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yU2hhcmRCeS5VUkw7XG4gICAgICBlbHNlIGlmIChvcHRpb25zLnNoYXJkQnkgPT09ICdIQVNIJykgc2hhcmRCeSA9IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEJ5LkhBU0g7XG5cbiAgICAgIGxldCBzaGFyZEhlYWx0aHk6IFZpbnlsQ2FjaGVTcGVjRGlyZWN0b3JTaGFyZEhlYWx0aHkgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAob3B0aW9ucy5zaGFyZEhlYWx0aHkgPT09ICdBTEwnKSBzaGFyZEhlYWx0aHkgPSBWaW55bENhY2hlU3BlY0RpcmVjdG9yU2hhcmRIZWFsdGh5LkFMTDtcbiAgICAgIGVsc2UgaWYgKG9wdGlvbnMuc2hhcmRIZWFsdGh5ID09PSAnQ0hPU0VOJykgc2hhcmRIZWFsdGh5ID0gVmlueWxDYWNoZVNwZWNEaXJlY3RvclNoYXJkSGVhbHRoeS5DSE9TRU47XG5cbiAgICAgIHNoYXJkU3BlYyA9IHtcbiAgICAgICAgYnk6IHNoYXJkQnksXG4gICAgICAgIGhlYWx0aHk6IHNoYXJkSGVhbHRoeSxcbiAgICAgICAgcmFtcHVwOiBvcHRpb25zLnNoYXJkUmFtcHVwLFxuICAgICAgICByZXBsaWNhczogb3B0aW9ucy5zaGFyZFJlcGxpY2FzLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBMb2FkIGRlZmF1bHQgVkNMIHNuaXBwZXRzXG4gICAgY29uc3QgdmNsUmVjdiA9IG9wdGlvbnMudmNsUmVjdlNuaXBwZXQgPz9cbiAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnY29uZmlnJywgJ3Bsb25lLXZpbnlsLXJlY3YudmNsJyksICd1dGY4Jyk7XG4gICAgY29uc3QgdmNsQmFja2VuZFJlc3BvbnNlID0gb3B0aW9ucy52Y2xCYWNrZW5kUmVzcG9uc2VTbmlwcGV0ID8/XG4gICAgICBmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgJ2NvbmZpZycsICdwbG9uZS12aW55bC1iYWNrZW5kLXJlc3BvbnNlLnZjbCcpLCAndXRmOCcpO1xuXG4gICAgLy8gQnVpbGQgYmFja2VuZHMgZnJvbSBQbG9uZSBzZXJ2aWNlc1xuICAgIGNvbnN0IGJhY2tlbmRzOiBBcnJheTx7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBzZXJ2aWNlUmVmOiB7IG5hbWU6IHN0cmluZyB9O1xuICAgICAgcG9ydDogbnVtYmVyO1xuICAgICAgcHJvYmU/OiB7XG4gICAgICAgIHVybDogc3RyaW5nO1xuICAgICAgICBpbnRlcnZhbDogc3RyaW5nO1xuICAgICAgICB0aW1lb3V0OiBzdHJpbmc7XG4gICAgICAgIHdpbmRvdzogbnVtYmVyO1xuICAgICAgICB0aHJlc2hvbGQ6IG51bWJlcjtcbiAgICAgIH07XG4gICAgICB3ZWlnaHQ/OiBudW1iZXI7XG4gICAgfT4gPSBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdwbG9uZV9iYWNrZW5kJyxcbiAgICAgICAgc2VydmljZVJlZjogeyBuYW1lOiBvcHRpb25zLnBsb25lLmJhY2tlbmRTZXJ2aWNlTmFtZSB9LFxuICAgICAgICBwb3J0OiA4MDgwLFxuICAgICAgICBwcm9iZToge1xuICAgICAgICAgIHVybDogJy9vaycsXG4gICAgICAgICAgaW50ZXJ2YWw6ICc1cycsXG4gICAgICAgICAgdGltZW91dDogJzJzJyxcbiAgICAgICAgICB3aW5kb3c6IDEwLFxuICAgICAgICAgIHRocmVzaG9sZDogOCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGlmIChvcHRpb25zLnBsb25lLmZyb250ZW5kU2VydmljZU5hbWUpIHtcbiAgICAgIGJhY2tlbmRzLnB1c2goe1xuICAgICAgICBuYW1lOiAncGxvbmVfZnJvbnRlbmQnLFxuICAgICAgICBzZXJ2aWNlUmVmOiB7IG5hbWU6IG9wdGlvbnMucGxvbmUuZnJvbnRlbmRTZXJ2aWNlTmFtZSB9LFxuICAgICAgICBwb3J0OiAzMDAwLFxuICAgICAgICBwcm9iZToge1xuICAgICAgICAgIHVybDogJy8nLFxuICAgICAgICAgIGludGVydmFsOiAnNXMnLFxuICAgICAgICAgIHRpbWVvdXQ6ICcycycsXG4gICAgICAgICAgd2luZG93OiAxMCxcbiAgICAgICAgICB0aHJlc2hvbGQ6IDgsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5leHRyYUJhY2tlbmRzKSB7XG4gICAgICBmb3IgKGNvbnN0IGViIG9mIG9wdGlvbnMuZXh0cmFCYWNrZW5kcykge1xuICAgICAgICBiYWNrZW5kcy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBlYi5uYW1lLFxuICAgICAgICAgIHNlcnZpY2VSZWY6IHsgbmFtZTogZWIuc2VydmljZU5hbWUgfSxcbiAgICAgICAgICBwb3J0OiBlYi5wb3J0LFxuICAgICAgICAgIHByb2JlOiBlYi5wcm9iZSA/IHtcbiAgICAgICAgICAgIHVybDogZWIucHJvYmUudXJsID8/ICcvJyxcbiAgICAgICAgICAgIGludGVydmFsOiBlYi5wcm9iZS5pbnRlcnZhbCA/PyAnNXMnLFxuICAgICAgICAgICAgdGltZW91dDogZWIucHJvYmUudGltZW91dCA/PyAnMnMnLFxuICAgICAgICAgICAgd2luZG93OiBlYi5wcm9iZS53aW5kb3cgPz8gMTAsXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IGViLnByb2JlLnRocmVzaG9sZCA/PyA4LFxuICAgICAgICAgIH0gOiB1bmRlZmluZWQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHN0b3JhZ2U6IFZpbnlsQ2FjaGVTcGVjU3RvcmFnZVtdIHwgdW5kZWZpbmVkID0gb3B0aW9ucy5zdG9yYWdlPy5tYXAocyA9PiAoe1xuICAgICAgbmFtZTogcy5uYW1lLFxuICAgICAgdHlwZTogcy50eXBlID09PSAnZmlsZScgPyBWaW55bENhY2hlU3BlY1N0b3JhZ2VUeXBlLkZJTEUgOiBWaW55bENhY2hlU3BlY1N0b3JhZ2VUeXBlLk1BTExPQyxcbiAgICAgIHNpemU6IHMuc2l6ZSAhPT0gdW5kZWZpbmVkID8gVmlueWxDYWNoZVNwZWNTdG9yYWdlU2l6ZS5mcm9tU3RyaW5nKHMuc2l6ZSkgOiB1bmRlZmluZWQsXG4gICAgICBwYXRoOiBzLnBhdGgsXG4gICAgfSkpO1xuXG4gICAgY29uc3QgdmlueWxDYWNoZSA9IG5ldyBWaW55bENhY2hlKHRoaXMsICd2aW55bGNhY2hlJywge1xuICAgICAgc3BlYzoge1xuICAgICAgICByZXBsaWNhcyxcbiAgICAgICAgaW1hZ2U6IG9wdGlvbnMuaW1hZ2UgPz8gJ3Zhcm5pc2g6Ny42JyxcbiAgICAgICAgYmFja2VuZHMsXG4gICAgICAgIGRpcmVjdG9yOiB7IHR5cGU6IGRpcmVjdG9yVHlwZSwgc2hhcmQ6IHNoYXJkU3BlYyB9LFxuICAgICAgICBzdG9yYWdlLFxuICAgICAgICB2Y2w6IHtcbiAgICAgICAgICBzbmlwcGV0czoge1xuICAgICAgICAgICAgdmNsUmVjdjogdmNsUmVjdixcbiAgICAgICAgICAgIHZjbEJhY2tlbmRSZXNwb25zZTogdmNsQmFja2VuZFJlc3BvbnNlLFxuICAgICAgICAgICAgdmNsRGVsaXZlcjogb3B0aW9ucy52Y2xEZWxpdmVyU25pcHBldCxcbiAgICAgICAgICAgIHZjbEhpdDogb3B0aW9ucy52Y2xIaXRTbmlwcGV0LFxuICAgICAgICAgICAgdmNsTWlzczogb3B0aW9ucy52Y2xNaXNzU25pcHBldCxcbiAgICAgICAgICAgIHZjbFBhc3M6IG9wdGlvbnMudmNsUGFzc1NuaXBwZXQsXG4gICAgICAgICAgICB2Y2xQaXBlOiBvcHRpb25zLnZjbFBpcGVTbmlwcGV0LFxuICAgICAgICAgICAgdmNsU3ludGg6IG9wdGlvbnMudmNsU3ludGhTbmlwcGV0LFxuICAgICAgICAgICAgdmNsUHVyZ2U6IG9wdGlvbnMudmNsUHVyZ2VTbmlwcGV0LFxuICAgICAgICAgICAgdmNsSGFzaDogb3B0aW9ucy52Y2xIYXNoU25pcHBldCxcbiAgICAgICAgICAgIHZjbEluaXQ6IG9wdGlvbnMudmNsSW5pdFNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xGaW5pOiBvcHRpb25zLnZjbEZpbmlTbmlwcGV0LFxuICAgICAgICAgICAgdmNsQmFja2VuZEZldGNoOiBvcHRpb25zLnZjbEJhY2tlbmRGZXRjaFNuaXBwZXQsXG4gICAgICAgICAgICB2Y2xCYWNrZW5kRXJyb3I6IG9wdGlvbnMudmNsQmFja2VuZEVycm9yU25pcHBldCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNvdXJjZXM6IHtcbiAgICAgICAgICByZXF1ZXN0czoge1xuICAgICAgICAgICAgY3B1OiBWaW55bENhY2hlU3BlY1Jlc291cmNlc1JlcXVlc3RzLmZyb21TdHJpbmcob3B0aW9ucy5yZXF1ZXN0Q3B1ID8/ICcxMDBtJyksXG4gICAgICAgICAgICBtZW1vcnk6IFZpbnlsQ2FjaGVTcGVjUmVzb3VyY2VzUmVxdWVzdHMuZnJvbVN0cmluZyhvcHRpb25zLnJlcXVlc3RNZW1vcnkgPz8gJzI1Nk1pJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsaW1pdHM6IHtcbiAgICAgICAgICAgIGNwdTogVmlueWxDYWNoZVNwZWNSZXNvdXJjZXNMaW1pdHMuZnJvbVN0cmluZyhvcHRpb25zLmxpbWl0Q3B1ID8/ICc1MDBtJyksXG4gICAgICAgICAgICBtZW1vcnk6IFZpbnlsQ2FjaGVTcGVjUmVzb3VyY2VzTGltaXRzLmZyb21TdHJpbmcob3B0aW9ucy5saW1pdE1lbW9yeSA/PyAnNTEyTWknKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBpbnZhbGlkYXRpb246IGludmFsaWRhdGlvbiA/IHtcbiAgICAgICAgICBwdXJnZTogeyBlbmFibGVkOiB0cnVlIH0sXG4gICAgICAgICAgYmFuOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgICB4a2V5OiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgbW9uaXRvcmluZzogbW9uaXRvcmluZyA/IHtcbiAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgIHNlcnZpY2VNb25pdG9yOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcG9kOiAob3B0aW9ucy50b2xlcmF0aW9ucz8ubGVuZ3RoIHx8IG9wdGlvbnMubm9kZVNlbGVjdG9yKSA/IHtcbiAgICAgICAgICB0b2xlcmF0aW9uczogb3B0aW9ucy50b2xlcmF0aW9ucz8ubWFwKHQgPT4gKHtcbiAgICAgICAgICAgIGtleTogdC5rZXksXG4gICAgICAgICAgICBvcGVyYXRvcjogdC5vcGVyYXRvcixcbiAgICAgICAgICAgIHZhbHVlOiB0LnZhbHVlLFxuICAgICAgICAgICAgZWZmZWN0OiB0LmVmZmVjdCxcbiAgICAgICAgICB9KSksXG4gICAgICAgICAgbm9kZVNlbGVjdG9yOiBvcHRpb25zLm5vZGVTZWxlY3RvcixcbiAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBUaGUgb3BlcmF0b3IgY3JlYXRlcyBhIHNlcnZpY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIHRoZSBWaW55bENhY2hlIHJlc291cmNlXG4gICAgdGhpcy52aW55bENhY2hlU2VydmljZU5hbWUgPSBOYW1lcy50b0xhYmVsVmFsdWUodmlueWxDYWNoZSk7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -77,7 +77,7 @@
77
77
  "publishConfig": {
78
78
  "access": "public"
79
79
  },
80
- "version": "0.1.31",
80
+ "version": "0.1.32",
81
81
  "jest": {
82
82
  "coverageProvider": "v8",
83
83
  "testMatch": [