@1money/component-ui 0.0.82 → 0.0.84
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/es/components/ProTable/ProTable.js +1 -4
- package/es/components/ProTable/interface.d.ts +2 -3
- package/es/components/Table/constants.d.ts +0 -1
- package/es/components/Table/constants.js +1 -2
- package/es/components/Table/core/useTableColumns.d.ts +1 -2
- package/es/components/Table/core/useTableColumns.js +5 -8
- package/es/components/Table/core/useTableSetup.js +4 -7
- package/es/components/Table/features/FilterTrigger.d.ts +1 -2
- package/es/components/Table/features/FilterTrigger.js +4 -8
- package/es/components/Table/features/SortTrigger.d.ts +2 -3
- package/es/components/Table/features/SortTrigger.js +4 -9
- package/es/components/Table/interface.d.ts +0 -2
- package/es/components/Table/renderers/HeaderCell.d.ts +2 -3
- package/es/components/Table/renderers/HeaderCell.js +2 -6
- package/es/components/Table/style/Table.css +18 -43
- package/es/components/Typography/interface.d.ts +1 -1
- package/es/components/Typography/interface.js +2 -2
- package/es/components/Typography/style/Typography.css +14 -0
- package/es/index.css +1 -1
- package/es/styles/index.css +6 -0
- package/lib/components/ProTable/ProTable.js +1 -4
- package/lib/components/ProTable/interface.d.ts +2 -3
- package/lib/components/Table/constants.d.ts +0 -1
- package/lib/components/Table/constants.js +2 -3
- package/lib/components/Table/core/useTableColumns.d.ts +1 -2
- package/lib/components/Table/core/useTableColumns.js +5 -8
- package/lib/components/Table/core/useTableSetup.js +3 -6
- package/lib/components/Table/features/FilterTrigger.d.ts +1 -2
- package/lib/components/Table/features/FilterTrigger.js +4 -8
- package/lib/components/Table/features/SortTrigger.d.ts +2 -3
- package/lib/components/Table/features/SortTrigger.js +4 -9
- package/lib/components/Table/interface.d.ts +0 -2
- package/lib/components/Table/renderers/HeaderCell.d.ts +2 -3
- package/lib/components/Table/renderers/HeaderCell.js +2 -6
- package/lib/components/Table/style/Table.css +18 -43
- package/lib/components/Typography/interface.d.ts +1 -1
- package/lib/components/Typography/interface.js +2 -2
- package/lib/components/Typography/style/Typography.css +14 -0
- package/lib/index.css +1 -1
- package/lib/styles/index.css +6 -0
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +18 -24
- package/scripts/mcp-server/index.generated.json +14 -25
package/es/styles/index.css
CHANGED
|
@@ -257,6 +257,12 @@
|
|
|
257
257
|
--om-title-sm-letter-spacing: 0;
|
|
258
258
|
--om-title-sm-font-weight: 500;
|
|
259
259
|
--om-title-sm-strong-font-weight: 700;
|
|
260
|
+
--om-title-xs-font-size: 12px;
|
|
261
|
+
--om-title-xs-font-family: var(--om-font-inter);
|
|
262
|
+
--om-title-xs-line-height: 16px;
|
|
263
|
+
--om-title-xs-letter-spacing: 0;
|
|
264
|
+
--om-title-xs-font-weight: 500;
|
|
265
|
+
--om-title-xs-strong-font-weight: 700;
|
|
260
266
|
--om-body-lg-font-size: 16px;
|
|
261
267
|
--om-body-lg-font-family: var(--om-font-inter);
|
|
262
268
|
--om-body-lg-line-height: 22px;
|
|
@@ -80,8 +80,6 @@ function ProTableInner(props) {
|
|
|
80
80
|
_props$search = props.search,
|
|
81
81
|
search = _props$search === void 0 ? {} : _props$search,
|
|
82
82
|
rowSelection = props.rowSelection,
|
|
83
|
-
_props$size = props.size,
|
|
84
|
-
size = _props$size === void 0 ? 'small' : _props$size,
|
|
85
83
|
actionRef = props.actionRef,
|
|
86
84
|
onLoad = props.onLoad,
|
|
87
85
|
onLoadingChange = props.onLoadingChange,
|
|
@@ -285,7 +283,6 @@ function ProTableInner(props) {
|
|
|
285
283
|
columns: tableColumns,
|
|
286
284
|
dataSource: dataSource,
|
|
287
285
|
loading: loading,
|
|
288
|
-
size: size,
|
|
289
286
|
pagination: false,
|
|
290
287
|
rowSelection: rowSelection,
|
|
291
288
|
onChange: handleTableChange,
|
|
@@ -314,4 +311,4 @@ function ProTableInner(props) {
|
|
|
314
311
|
}
|
|
315
312
|
var ProTable = exports.ProTable = /*#__PURE__*/(0, _react.memo)(ProTableInner);
|
|
316
313
|
var _default = exports["default"] = ProTable;
|
|
317
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvUHJvVGFibGUuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfdXNlTWVtb2l6ZWRGbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlU2FmZVN0YXRlNyIsIl9QYWdpbmF0aW9uIiwiX1RhYmxlIiwiX1Byb0Zvcm0iLCJfY2xhc3NuYW1lcyIsIl9jb25zdGFudHMiLCJfdXNlRmV0Y2hEYXRhMiIsIl9nZW5Db2x1bW5zIiwiX2dlblNlYXJjaEZpZWxkcyIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsInJlYWRVcmxWYWx1ZXMiLCJzeW5jVG9VcmwiLCJ3aW5kb3ciLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJsb2NhdGlvbiIsInNlYXJjaCIsImZvckVhY2giLCJrZXkiLCJQcm9UYWJsZUlubmVyIiwicHJvcHMiLCJfdGhpcyIsIl9hIiwiX2IiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiQ1NTX1BSRUZJWCIsImNsYXNzTmFtZSIsImNvbHVtbnMiLCJyZXF1ZXN0IiwiY29udHJvbGxlZERhdGEiLCJkYXRhU291cmNlIiwiY29udHJvbGxlZExvYWRpbmciLCJsb2FkaW5nIiwiZGVmYXVsdERhdGEiLCJtYW51YWxSZXF1ZXN0IiwiZGVib3VuY2VUaW1lIiwicG9zdERhdGEiLCJwb2xsaW5nIiwiYmVmb3JlU2VhcmNoU3VibWl0IiwiY29sdW1uRW1wdHlUZXh0Iiwic2VhcmNoRm9ybVJlbmRlciIsIl9wcm9wcyRwYWdpbmF0aW9uIiwicGFnaW5hdGlvbiIsIl9wcm9wcyRzZWFyY2giLCJyb3dTZWxlY3Rpb24iLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJhY3Rpb25SZWYiLCJvbkxvYWQiLCJvbkxvYWRpbmdDaGFuZ2UiLCJvblJlcXVlc3RFcnJvciIsIm9uQ2hhbmdlIiwicm93S2V5IiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiYm9yZGVyZWQiLCJzY3JvbGwiLCJzdGlja3kiLCJleHBhbmRhYmxlIiwiZW1wdHkiLCJ0YWJsZUxheW91dCIsInJvd0NsYXNzTmFtZSIsIm9uUm93Iiwic3VtbWFyeSIsImZvb3RlciIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwidGFibGVDb2x1bW5zIiwidXNlTWVtbyIsImdlbkNvbHVtbnMiLCJzZWFyY2hDZmciLCJ1bmRlZmluZWQiLCJfdXNlTWVtbyIsImdlblNlYXJjaEZpZWxkcyIsInNlYXJjaEZpZWxkcyIsImZpZWxkcyIsInNlYXJjaEluaXRpYWxWYWx1ZXMiLCJpbml0aWFsVmFsdWVzIiwic2VhcmNoRmllbGROYW1lcyIsIm5hbWVzIiwiaGFzU2VhcmNoIiwibGVuZ3RoIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsIk9iamVjdCIsImFzc2lnbiIsIl91c2VTYWZlU3RhdGUiLCJ1c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNlYXJjaFBhcmFtcyIsInNldFNlYXJjaFBhcmFtcyIsImZvcm1SZWYiLCJ1c2VSZWYiLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic29ydCIsInNldFNvcnQiLCJfdXNlU2FmZVN0YXRlNSIsIl91c2VTYWZlU3RhdGU2IiwiZmlsdGVyIiwic2V0RmlsdGVyIiwicGFnaW5hdGVkIiwiZGVmYXVsdFBhZ2VTaXplIiwicGFnZVNpemUiLCJERUZBVUxUX1BBR0VfU0laRSIsImRlZmF1bHRDdXJyZW50IiwiY3VycmVudCIsIkRFRkFVTFRfQ1VSUkVOVCIsIm1hbnVhbCIsIl91c2VGZXRjaERhdGEiLCJ1c2VGZXRjaERhdGEiLCJmZXRjaGVkRGF0YSIsImZldGNoTG9hZGluZyIsInBhZ2VJbmZvIiwic2V0UGFnZUluZm8iLCJyZWxvYWQiLCJyZXNldCIsImhhbmRsZVNlYXJjaEZpbmlzaCIsInVzZU1lbW9pemVkRm4iLCJ2YWx1ZXMiLCJwZXJDb2x1bW4iLCJhcHBseVNlYXJjaFRyYW5zZm9ybXMiLCJmaW5hbFBhcmFtcyIsImhhbmRsZVNlYXJjaFJlc2V0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVUYWJsZUNoYW5nZSIsIm1ldGEiLCJzb3J0ZXIiLCJfbWV0YSRzb3J0ZXIiLCJjb2x1bW5LZXkiLCJvcmRlciIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJTdHJpbmciLCJmaWx0ZXJzIiwiaGFuZGxlUGFnZUNoYW5nZSIsInBhZ2UiLCJjdXJyZW50RGF0YVNvdXJjZSIsImFjdGlvbiIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJyZWxvYWRBbmRSZXN0IiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2Iiwic3RvcCIsInNlYXJjaE5vZGUiLCJzZWFyY2hGb3JtIiwiX2pzeCIsIlF1ZXJ5RmlsdGVyIiwiZGVmYXVsdENvbGxhcHNlZCIsImRlZmF1bHRDb2xzTnVtYmVyIiwibGFiZWxXaWR0aCIsInNlYXJjaENvbmZpZyIsInNlYXJjaFRleHQiLCJERUZBVUxUX1RFWFQiLCJyZXNldFRleHQiLCJvbkZpbmlzaCIsIm9uUmVzZXQiLCJjaGlsZHJlbiIsIl9qc3hzIiwiVGFibGUiLCJQYWdpbmF0aW9uIiwidG90YWwiLCJQcm9UYWJsZSIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFTQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNUQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxjQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxjQUFBLEdBQUFELHNCQUFBLENBQUFILE9B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TTtRQUNkQyxNQUFNLEVBQUVBLE1BQU07UUFDZEMsVUFBVSxFQUFFQSxVQUFVO1FBQ3RCQyxLQUFLLEVBQUVBLEtBQUs7UUFDWkMsV0FBVyxFQUFFQSxXQUFXO1FBQ3hCQyxZQUFZLEVBQUVBLFlBQVk7UUFDMUJDLEtBQUssRUFBRUEsS0FBSztRQUNaQyxPQUFPLEVBQUVBLE9BQU87UUFDaEJDLE1BQU0sRUFBRUE7TUFBTSxDQUFBLENBQ2QsRUFFRHFDLFNBQVMsSUFDUixJQUFBZ0QsZUFBQSxFQUFBLEtBQUEsRUFBQTtRQUFLM0gsU0FBUyxFQUFFdUMsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUFBK0YsUUFBQSxFQUNuQyxJQUFBWCxlQUFBLEVBQUNjLHNCQUFVLEVBQUE7VUFDVEMsS0FBSyxFQUFFbkQsUUFBUSxDQUFDbUQsS0FBSztVQUNyQjFELE9BQU8sRUFBRU8sUUFBUSxDQUFDUCxPQUFPO1VBQ3pCSCxRQUFRLEVBQUVVLFFBQVEsQ0FBQ1YsUUFBUTtVQUMzQnBELFFBQVEsRUFBRW1GO1FBQWdCLENBQUE7TUFDMUIsQ0FBQSxDQUVMO0lBQUEsQ0FBQSxDQUNHO0VBQUEsQ0FBQSxDQUNGO0FBRVY7QUFFTyxJQUFNK0IsUUFBUSxHQUFBQyxPQUFBLENBQUFELFFBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDckosYUFBYSxDQUF5QjtBQUFDLElBQUFzSixRQUFBLEdBQUFGLE9BQUEsY0FFckRELFFBQVEiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9UYWJsZS9Qcm9UYWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuLi9QYWdpbmF0aW9uJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAnLi4vVGFibGUnO1xuaW1wb3J0IHsgUXVlcnlGaWx0ZXIgfSBmcm9tICcuLi9Qcm9Gb3JtJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9DVVJSRU5ULCBERUZBVUxUX1BBR0VfU0laRSwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlRmV0Y2hEYXRhIH0gZnJvbSAnLi91c2VGZXRjaERhdGEnO1xuaW1wb3J0IHsgZ2VuQ29sdW1ucyB9IGZyb20gJy4vY29yZS9nZW5Db2x1bW5zJztcbmltcG9ydCB7IGFwcGx5U2VhcmNoVHJhbnNmb3JtcywgZ2VuU2VhcmNoRmllbGRzIH0gZnJvbSAnLi9jb3JlL2dlblNlYXJjaEZpZWxkcyc7XG4vKiogUmVhZCB0aGUgY3VycmVudCBVUkwgcXVlcnkgc3RyaW5nIGludG8gc2VhcmNoIHZhbHVlcywgYXBwbHlpbmcgdGhlIGAnZ2V0J2AgdHJhbnNmb3JtLiAqL1xuZnVuY3Rpb24gcmVhZFVybFZhbHVlcyhzeW5jVG9VcmwpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybiB7fTtcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcbiAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgcGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gdHlwZW9mIHN5bmNUb1VybCA9PT0gJ2Z1bmN0aW9uJyA/IHN5bmNUb1VybChwYXJhbXMsICdnZXQnKSA6IHBhcmFtcztcbn1cbmZ1bmN0aW9uIFByb1RhYmxlSW5uZXIocHJvcHMpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgcHJlZml4Q2xzID0gQ1NTX1BSRUZJWCwgY2xhc3NOYW1lLCBjb2x1bW5zLCByZXF1ZXN0LCBwYXJhbXMsIGRhdGFTb3VyY2U6IGNvbnRyb2xsZWREYXRhLCBsb2FkaW5nOiBjb250cm9sbGVkTG9hZGluZywgZGVmYXVsdERhdGEsIG1hbnVhbFJlcXVlc3QsIGRlYm91bmNlVGltZSwgcG9zdERhdGEsIHBvbGxpbmcsIGJlZm9yZVNlYXJjaFN1Ym1pdCwgY29sdW1uRW1wdHlUZXh0LCBzZWFyY2hGb3JtUmVuZGVyLCBwYWdpbmF0aW9uID0ge30sIHNlYXJjaCA9IHt9LCByb3dTZWxlY3Rpb24sIHNpemUgPSAnc21hbGwnLCBhY3Rpb25SZWYsIG9uTG9hZCwgb25Mb2FkaW5nQ2hhbmdlLCBvblJlcXVlc3RFcnJvciwgb25DaGFuZ2UsIHJvd0tleSwgdmFyaWFudCA9ICdzdHJva2UnLCBib3JkZXJlZCwgc2Nyb2xsLCBzdGlja3ksIGV4cGFuZGFibGUsIGVtcHR5LCB0YWJsZUxheW91dCwgcm93Q2xhc3NOYW1lLCBvblJvdywgc3VtbWFyeSwgZm9vdGVyLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCB0YWJsZUNvbHVtbnMgPSB1c2VNZW1vKCgpID0+IGdlbkNvbHVtbnMoY29sdW1ucywgY29sdW1uRW1wdHlUZXh0KSwgW2NvbHVtbnMsIGNvbHVtbkVtcHR5VGV4dF0pO1xuICAgIC8vIOKUgOKUgCBzZWFyY2ggZm9ybSAoYXV0by1nZW5lcmF0ZWQgZnJvbSBjb2x1bW5zKSDilIDilIBcbiAgICBjb25zdCBzZWFyY2hDZmcgPSBzZWFyY2ggPT09IGZhbHNlID8gdW5kZWZpbmVkIDogc2VhcmNoO1xuICAgIGNvbnN0IHsgZmllbGRzOiBzZWFyY2hGaWVsZHMsIGluaXRpYWxWYWx1ZXM6IHNlYXJjaEluaXRpYWxWYWx1ZXMsIG5hbWVzOiBzZWFyY2hGaWVsZE5hbWVzIH0gPSB1c2VNZW1vKCgpID0+IGdlblNlYXJjaEZpZWxkcyhjb2x1bW5zKSwgW2NvbHVtbnNdKTtcbiAgICBjb25zdCBoYXNTZWFyY2ggPSBzZWFyY2ggIT09IGZhbHNlICYmIHNlYXJjaEZpZWxkcy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IHN5bmNUb1VybCA9IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5zeW5jVG9Vcmw7XG4gICAgLy8gU2VlZCBpbml0aWFsIHZhbHVlcyAoYW5kIHRoZSBmaXJzdCByZXF1ZXN0KSBmcm9tIHRoZSBVUkwgd2hlbiBzeW5jVG9VcmwgaXMgb24uXG4gICAgY29uc3QgbWVyZ2VkSW5pdGlhbFZhbHVlcyA9IHVzZU1lbW8oKCkgPT4gKHN5bmNUb1VybCA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc2VhcmNoSW5pdGlhbFZhbHVlcyksIHJlYWRVcmxWYWx1ZXMoc3luY1RvVXJsKSkgOiBzZWFyY2hJbml0aWFsVmFsdWVzKSwgXG4gICAgLy8gbW91bnQtb25seSBzbmFwc2hvdCBvZiB0aGUgVVJMXG4gICAgW3NlYXJjaEluaXRpYWxWYWx1ZXNdKTtcbiAgICBjb25zdCBbc2VhcmNoUGFyYW1zLCBzZXRTZWFyY2hQYXJhbXNdID0gdXNlU2FmZVN0YXRlKCgpID0+IG1lcmdlZEluaXRpYWxWYWx1ZXMpO1xuICAgIGNvbnN0IGZvcm1SZWYgPSB1c2VSZWYodW5kZWZpbmVkKTtcbiAgICAvLyDilIDilIAgc2VydmVyIHNvcnQgLyBmaWx0ZXIg4pSA4pSAXG4gICAgY29uc3QgW3NvcnQsIHNldFNvcnRdID0gdXNlU2FmZVN0YXRlKHt9KTtcbiAgICBjb25zdCBbZmlsdGVyLCBzZXRGaWx0ZXJdID0gdXNlU2FmZVN0YXRlKHt9KTtcbiAgICAvLyDilIDilIAgcGFnaW5hdGlvbiBjb25maWcg4pSA4pSAXG4gICAgY29uc3QgcGFnaW5hdGVkID0gcGFnaW5hdGlvbiAhPT0gZmFsc2U7XG4gICAgY29uc3QgZGVmYXVsdFBhZ2VTaXplID0gKHBhZ2luYXRpb24gJiYgcGFnaW5hdGlvbi5kZWZhdWx0UGFnZVNpemUpIHx8IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24ucGFnZVNpemUpIHx8IERFRkFVTFRfUEFHRV9TSVpFO1xuICAgIGNvbnN0IGRlZmF1bHRDdXJyZW50ID0gKHBhZ2luYXRpb24gJiYgcGFnaW5hdGlvbi5kZWZhdWx0Q3VycmVudCkgfHwgKHBhZ2luYXRpb24gJiYgcGFnaW5hdGlvbi5jdXJyZW50KSB8fCBERUZBVUxUX0NVUlJFTlQ7XG4gICAgY29uc3QgbWFudWFsID0gY29udHJvbGxlZERhdGEgIT09IHVuZGVmaW5lZCB8fCAhcmVxdWVzdDtcbiAgICBjb25zdCB7IGRhdGFTb3VyY2U6IGZldGNoZWREYXRhLCBsb2FkaW5nOiBmZXRjaExvYWRpbmcsIHBhZ2VJbmZvLCBzZXRQYWdlSW5mbywgcmVsb2FkLCByZXNldCB9ID0gdXNlRmV0Y2hEYXRhKHtcbiAgICAgICAgcmVxdWVzdCxcbiAgICAgICAgbWFudWFsLFxuICAgICAgICBtYW51YWxSZXF1ZXN0LFxuICAgICAgICBkZWJvdW5jZVRpbWUsXG4gICAgICAgIHBvc3REYXRhLFxuICAgICAgICBwb2xsaW5nLFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGRlZmF1bHREYXRhLFxuICAgICAgICBwYWdpbmF0ZWQsXG4gICAgICAgIGRlZmF1bHRDdXJyZW50LFxuICAgICAgICBkZWZhdWx0UGFnZVNpemUsXG4gICAgICAgIHNlYXJjaFBhcmFtcyxcbiAgICAgICAgc29ydCxcbiAgICAgICAgZmlsdGVyLFxuICAgICAgICBvbkxvYWQsXG4gICAgICAgIG9uTG9hZGluZ0NoYW5nZSxcbiAgICAgICAgb25SZXF1ZXN0RXJyb3IsXG4gICAgfSk7XG4gICAgY29uc3QgZGF0YVNvdXJjZSA9IGNvbnRyb2xsZWREYXRhICE9PSBudWxsICYmIGNvbnRyb2xsZWREYXRhICE9PSB2b2lkIDAgPyBjb250cm9sbGVkRGF0YSA6IGZldGNoZWREYXRhO1xuICAgIGNvbnN0IGxvYWRpbmcgPSBjb250cm9sbGVkTG9hZGluZyAhPT0gbnVsbCAmJiBjb250cm9sbGVkTG9hZGluZyAhPT0gdm9pZCAwID8gY29udHJvbGxlZExvYWRpbmcgOiAobWFudWFsID8gZmFsc2UgOiBmZXRjaExvYWRpbmcpO1xuICAgIC8vIOKUgOKUgCBoYW5kbGVycyDilIDilIBcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hGaW5pc2ggPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgY29uc3QgcGVyQ29sdW1uID0gYXBwbHlTZWFyY2hUcmFuc2Zvcm1zKHZhbHVlcywgY29sdW1ucyk7XG4gICAgICAgIGNvbnN0IGZpbmFsUGFyYW1zID0gYmVmb3JlU2VhcmNoU3VibWl0ID8gYmVmb3JlU2VhcmNoU3VibWl0KHBlckNvbHVtbikgOiBwZXJDb2x1bW47XG4gICAgICAgIHNldFNlYXJjaFBhcmFtcyhmaW5hbFBhcmFtcyk7XG4gICAgICAgIHNldFBhZ2VJbmZvKHsgY3VycmVudDogZGVmYXVsdEN1cnJlbnQgfSk7XG4gICAgICAgIHZvaWQgcmVsb2FkKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoUmVzZXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAvLyBVc2UgdGhlIGFycmF5IGZvcm0gKGByZXNldEZpZWxkcyhuYW1lcylgKSB0byByZXNldCBPTkxZIHRoZSBzZWFyY2hcbiAgICAgICAgLy8gZmllbGRzIOKAlCBhIGZ1bGwgcmVzZXQgd291bGQgYWxzbyB3aXBlIG5vbi1zZWFyY2ggZm9ybSBzdGF0ZS5cbiAgICAgICAgKF9hID0gZm9ybVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVzZXRGaWVsZHMoc2VhcmNoRmllbGROYW1lcyk7XG4gICAgICAgIHNldFNlYXJjaFBhcmFtcyh7fSk7XG4gICAgICAgIHNldFBhZ2VJbmZvKHsgY3VycmVudDogZGVmYXVsdEN1cnJlbnQgfSk7XG4gICAgICAgIHZvaWQgcmVsb2FkKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFibGVDaGFuZ2UgPSB1c2VNZW1vaXplZEZuKChtZXRhKSA9PiB7XG4gICAgICAgIGlmIChtZXRhLnNvcnRlcikge1xuICAgICAgICAgICAgY29uc3QgeyBjb2x1bW5LZXksIG9yZGVyIH0gPSBtZXRhLnNvcnRlcjtcbiAgICAgICAgICAgIHNldFNvcnQoY29sdW1uS2V5ICYmIG9yZGVyID8geyBbU3RyaW5nKGNvbHVtbktleSldOiBvcmRlciB9IDoge30pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtZXRhLmZpbHRlcnMpXG4gICAgICAgICAgICBzZXRGaWx0ZXIobWV0YS5maWx0ZXJzKTtcbiAgICAgICAgaWYgKG1ldGEuc29ydGVyIHx8IG1ldGEuZmlsdGVycylcbiAgICAgICAgICAgIHNldFBhZ2VJbmZvKHsgY3VycmVudDogZGVmYXVsdEN1cnJlbnQgfSk7XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShtZXRhKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVQYWdlQ2hhbmdlID0gdXNlTWVtb2l6ZWRGbigocGFnZSwgcGFnZVNpemUpID0+IHtcbiAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBwYWdlLCBwYWdlU2l6ZSB9KTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKHtcbiAgICAgICAgICAgIGN1cnJlbnREYXRhU291cmNlOiBkYXRhU291cmNlLFxuICAgICAgICAgICAgYWN0aW9uOiAncGFnaW5hdGUnLFxuICAgICAgICAgICAgcGFnaW5hdGlvbjogeyBjdXJyZW50OiBwYWdlLCBwYWdlU2l6ZSB9LFxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgaW1wZXJhdGl2ZSBoYW5kbGUg4pSA4pSAXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShhY3Rpb25SZWYsICgpID0+ICh7XG4gICAgICAgIHJlbG9hZDogKCkgPT4gcmVsb2FkKCksXG4gICAgICAgIHJlbG9hZEFuZFJlc3Q6ICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIHNldFBhZ2VJbmZvKHsgY3VycmVudDogZGVmYXVsdEN1cnJlbnQgfSk7XG4gICAgICAgICAgICB5aWVsZCByZWxvYWQoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHJlc2V0OiAoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBmb3JtUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNldEZpZWxkcyhzZWFyY2hGaWVsZE5hbWVzKTtcbiAgICAgICAgICAgIHNldFNlYXJjaFBhcmFtcyhzZWFyY2hJbml0aWFsVmFsdWVzKTtcbiAgICAgICAgICAgIHNldFNvcnQoe30pO1xuICAgICAgICAgICAgc2V0RmlsdGVyKHt9KTtcbiAgICAgICAgICAgIHJlc2V0KCk7XG4gICAgICAgICAgICB2b2lkIHJlbG9hZCgpO1xuICAgICAgICB9LFxuICAgICAgICBzZXRQYWdlSW5mbyxcbiAgICB9KSk7XG4gICAgLy8g4pSA4pSAIHNlYXJjaCBmb3JtIG5vZGUgKG9ubHkgYnVpbHQgd2hlbiB0aGVyZSBhcmUgc2VhcmNoYWJsZSBjb2x1bW5zKSDilIDilIBcbiAgICBsZXQgc2VhcmNoTm9kZSA9IG51bGw7XG4gICAgaWYgKGhhc1NlYXJjaCkge1xuICAgICAgICBjb25zdCBzZWFyY2hGb3JtID0gKF9qc3goUXVlcnlGaWx0ZXIsIHsgZm9ybVJlZjogZm9ybVJlZiwgc2l6ZTogXCJzbWFsbFwiLCBpbml0aWFsVmFsdWVzOiBtZXJnZWRJbml0aWFsVmFsdWVzLCBkZWZhdWx0Q29sbGFwc2VkOiBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcuZGVmYXVsdENvbGxhcHNlZCwgZGVmYXVsdENvbHNOdW1iZXI6IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5kZWZhdWx0Q29sc051bWJlciwgbGFiZWxXaWR0aDogc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLmxhYmVsV2lkdGgsIHN5bmNUb1VybDogc3luY1RvVXJsLCBzZWFyY2hDb25maWc6IHtcbiAgICAgICAgICAgICAgICBzZWFyY2hUZXh0OiAoX2EgPSBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcuc2VhcmNoVGV4dCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogREVGQVVMVF9URVhULnNlYXJjaCxcbiAgICAgICAgICAgICAgICByZXNldFRleHQ6IChfYiA9IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5yZXNldFRleHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IERFRkFVTFRfVEVYVC5yZXNldCxcbiAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgIH0sIG9uRmluaXNoOiBoYW5kbGVTZWFyY2hGaW5pc2gsIG9uUmVzZXQ6IGhhbmRsZVNlYXJjaFJlc2V0LCBjaGlsZHJlbjogc2VhcmNoRmllbGRzIH0pKTtcbiAgICAgICAgc2VhcmNoTm9kZSA9IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzZWFyY2gnKSwgY2hpbGRyZW46IHNlYXJjaEZvcm1SZW5kZXIgPyBzZWFyY2hGb3JtUmVuZGVyKHNlYXJjaEZvcm0pIDogc2VhcmNoRm9ybSB9KSk7XG4gICAgfVxuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModW5kZWZpbmVkLCBjbGFzc05hbWUpLCBjaGlsZHJlbjogW3NlYXJjaE5vZGUsIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250YWluZXInKSwgY2hpbGRyZW46IFtfanN4KFRhYmxlLCB7IHJvd0tleTogcm93S2V5LCBjb2x1bW5zOiB0YWJsZUNvbHVtbnMsIGRhdGFTb3VyY2U6IGRhdGFTb3VyY2UsIGxvYWRpbmc6IGxvYWRpbmcsIHNpemU6IHNpemUsIHBhZ2luYXRpb246IGZhbHNlLCByb3dTZWxlY3Rpb246IHJvd1NlbGVjdGlvbiwgb25DaGFuZ2U6IGhhbmRsZVRhYmxlQ2hhbmdlLCB2YXJpYW50OiB2YXJpYW50LCBib3JkZXJlZDogYm9yZGVyZWQsIHNjcm9sbDogc2Nyb2xsLCBzdGlja3k6IHN0aWNreSwgZXhwYW5kYWJsZTogZXhwYW5kYWJsZSwgZW1wdHk6IGVtcHR5LCB0YWJsZUxheW91dDogdGFibGVMYXlvdXQsIHJvd0NsYXNzTmFtZTogcm93Q2xhc3NOYW1lLCBvblJvdzogb25Sb3csIHN1bW1hcnk6IHN1bW1hcnksIGZvb3RlcjogZm9vdGVyIH0pLCBwYWdpbmF0ZWQgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhZ2luYXRpb24nKSwgY2hpbGRyZW46IF9qc3goUGFnaW5hdGlvbiwgeyB0b3RhbDogcGFnZUluZm8udG90YWwsIGN1cnJlbnQ6IHBhZ2VJbmZvLmN1cnJlbnQsIHBhZ2VTaXplOiBwYWdlSW5mby5wYWdlU2l6ZSwgb25DaGFuZ2U6IGhhbmRsZVBhZ2VDaGFuZ2UgfSkgfSkpXSB9KV0gfSkpO1xufVxuZXhwb3J0IGNvbnN0IFByb1RhYmxlID0gbWVtbyhQcm9UYWJsZUlubmVyKTtcbmV4cG9ydCBkZWZhdWx0IFByb1RhYmxlOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
314
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvUHJvVGFibGUuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfdXNlTWVtb2l6ZWRGbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlU2FmZVN0YXRlNyIsIl9QYWdpbmF0aW9uIiwiX1RhYmxlIiwiX1Byb0Zvcm0iLCJfY2xhc3NuYW1lcyIsIl9jb25zdGFudHMiLCJfdXNlRmV0Y2hEYXRhMiIsIl9nZW5Db2x1bW5zIiwiX2dlblNlYXJjaEZpZWxkcyIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsInJlYWRVcmxWYWx1ZXMiLCJzeW5jVG9VcmwiLCJ3aW5kb3ciLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJsb2NhdGlvbiIsInNlYXJjaCIsImZvckVhY2giLCJrZXkiLCJQcm9UYWJsZUlubmVyIiwicHJvcHMiLCJfdGhpcyIsIl9hIiwiX2IiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiQ1NTX1BSRUZJWCIsImNsYXNzTmFtZSIsImNvbHVtbnMiLCJyZXF1ZXN0IiwiY29udHJvbGxlZERhdGEiLCJkYXRhU291cmNlIiwiY29udHJvbGxlZExvYWRpbmciLCJsb2FkaW5nIiwiZGVmYXVsdERhdGEiLCJtYW51YWxSZXF1ZXN0IiwiZGVib3VuY2VUaW1lIiwicG9zdERhdGEiLCJwb2xsaW5nIiwiYmVmb3JlU2VhcmNoU3VibWl0IiwiY29sdW1uRW1wdHlUZXh0Iiwic2VhcmNoRm9ybVJlbmRlciIsIl9wcm9wcyRwYWdpbmF0aW9uIiwicGFnaW5hdGlvbiIsIl9wcm9wcyRzZWFyY2giLCJyb3dTZWxlY3Rpb24iLCJhY3Rpb25SZWYiLCJvbkxvYWQiLCJvbkxvYWRpbmdDaGFuZ2UiLCJvblJlcXVlc3RFcnJvciIsIm9uQ2hhbmdlIiwicm93S2V5IiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiYm9yZGVyZWQiLCJzY3JvbGwiLCJzdGlja3kiLCJleHBhbmRhYmxlIiwiZW1wdHkiLCJ0YWJsZUxheW91dCIsInJvd0NsYXNzTmFtZSIsIm9uUm93Iiwic3VtbWFyeSIsImZvb3RlciIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwidGFibGVDb2x1bW5zIiwidXNlTWVtbyIsImdlbkNvbHVtbnMiLCJzZWFyY2hDZmciLCJ1bmRlZmluZWQiLCJfdXNlTWVtbyIsImdlblNlYXJjaEZpZWxkcyIsInNlYXJjaEZpZWxkcyIsImZpZWxkcyIsInNlYXJjaEluaXRpYWxWYWx1ZXMiLCJpbml0aWFsVmFsdWVzIiwic2VhcmNoRmllbGROYW1lcyIsIm5hbWVzIiwiaGFzU2VhcmNoIiwibGVuZ3RoIiwibWVyZ2VkSW5pdGlhbFZhbHVlcyIsIk9iamVjdCIsImFzc2lnbiIsIl91c2VTYWZlU3RhdGUiLCJ1c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInNlYXJjaFBhcmFtcyIsInNldFNlYXJjaFBhcmFtcyIsImZvcm1SZWYiLCJ1c2VSZWYiLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic29ydCIsInNldFNvcnQiLCJfdXNlU2FmZVN0YXRlNSIsIl91c2VTYWZlU3RhdGU2IiwiZmlsdGVyIiwic2V0RmlsdGVyIiwicGFnaW5hdGVkIiwiZGVmYXVsdFBhZ2VTaXplIiwicGFnZVNpemUiLCJERUZBVUxUX1BBR0VfU0laRSIsImRlZmF1bHRDdXJyZW50IiwiY3VycmVudCIsIkRFRkFVTFRfQ1VSUkVOVCIsIm1hbnVhbCIsIl91c2VGZXRjaERhdGEiLCJ1c2VGZXRjaERhdGEiLCJmZXRjaGVkRGF0YSIsImZldGNoTG9hZGluZyIsInBhZ2VJbmZvIiwic2V0UGFnZUluZm8iLCJyZWxvYWQiLCJyZXNldCIsImhhbmRsZVNlYXJjaEZpbmlzaCIsInVzZU1lbW9pemVkRm4iLCJ2YWx1ZXMiLCJwZXJDb2x1bW4iLCJhcHBseVNlYXJjaFRyYW5zZm9ybXMiLCJmaW5hbFBhcmFtcyIsImhhbmRsZVNlYXJjaFJlc2V0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVUYWJsZUNoYW5nZSIsIm1ldGEiLCJzb3J0ZXIiLCJfbWV0YSRzb3J0ZXIiLCJjb2x1bW5LZXkiLCJvcmRlciIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJTdHJpbmciLCJmaWx0ZXJzIiwiaGFuZGxlUGFnZUNoYW5nZSIsInBhZ2UiLCJjdXJyZW50RGF0YVNvdXJjZSIsImFjdGlvbiIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJyZWxvYWRBbmRSZXN0IiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2Iiwic3RvcCIsInNlYXJjaE5vZGUiLCJzZWFyY2hGb3JtIiwiX2pzeCIsIlF1ZXJ5RmlsdGVyIiwic2l6ZSIsImRlZmF1bHRDb2xsYXBzZWQiLCJkZWZhdWx0Q29sc051bWJlciIsImxhYmVsV2lkdGgiLCJzZWFyY2hDb25maWciLCJzZWFyY2hUZXh0IiwiREVGQVVMVF9URVhUIiwicmVzZXRUZXh0Iiwib25GaW5pc2giLCJvblJlc2V0IiwiY2hpbGRyZW4iLCJfanN4cyIsIlRhYmxlIiwiUGFnaW5hdGlvbiIsInRvdGFsIiwiUHJvVGFibGUiLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBU0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDVEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsY0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBRUEsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBRUEsSUFBQVEsV0FBQSxHQUFBTCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQVMsVUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsY0FBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsV0FBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksZ0JBQUEsR0FBQVosT0FBQTtBRGJBLElBQUlhLFNBQVMsR0FBSSxVQUFRLFNBQUtBLFNBQVMsSUFBSyxVQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTLEVBQUU7RUFDckYsU0FBU0MsS0FBS0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQUUsT0FBT0EsS0FBSyxZQUFZSCxDQUFDLEdBQUdHLEtBQUssR0FBRyxJQUFJSCxDQUFDLENBQUMsVUFBVUksT0FBTyxFQUFFO01BQUVBLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQUU7RUFDM0csT0FBTyxLQUFLSCxDQUFDLEtBQUtBLENBQUMsR0FBR0ssT0FBTyxDQUFDLEVBQUUsVUFBVUQsT0FBTyxFQUFFRSxNQUFNLEVBQUU7SUFDdkQsU0FBU0MsU0FBU0EsQ0FBQ0osS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQ1EsSUFBSSxDQUFDTixLQUFLLENBQUMsQ0FBQztNQUFFLENBQUMsQ0FBQyxPQUFPTyxDQUFDLEVBQUU7UUFBRUosTUFBTSxDQUFDSSxDQUFDLENBQUM7TUFBRTtJQUFFO0lBQzFGLFNBQVNDLFFBQVFBLENBQUNSLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUNFLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDN0YsU0FBU0YsSUFBSUEs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MUJDLEtBQUssRUFBRUEsS0FBSztRQUNaQyxPQUFPLEVBQUVBLE9BQU87UUFDaEJDLE1BQU0sRUFBRUE7TUFBTSxDQUFBLENBQ2QsRUFFRHFDLFNBQVMsSUFDUixJQUFBZ0QsZUFBQSxFQUFBLEtBQUEsRUFBQTtRQUFLekgsU0FBUyxFQUFFcUMsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUFBZ0csUUFBQSxFQUNuQyxJQUFBWixlQUFBLEVBQUNlLHNCQUFVLEVBQUE7VUFDVEMsS0FBSyxFQUFFcEQsUUFBUSxDQUFDb0QsS0FBSztVQUNyQjNELE9BQU8sRUFBRU8sUUFBUSxDQUFDUCxPQUFPO1VBQ3pCSCxRQUFRLEVBQUVVLFFBQVEsQ0FBQ1YsUUFBUTtVQUMzQnBELFFBQVEsRUFBRW1GO1FBQWdCLENBQUE7TUFDMUIsQ0FBQSxDQUVMO0lBQUEsQ0FBQSxDQUNHO0VBQUEsQ0FBQSxDQUNGO0FBRVY7QUFFTyxJQUFNZ0MsUUFBUSxHQUFBQyxPQUFBLENBQUFELFFBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDcEosYUFBYSxDQUF5QjtBQUFDLElBQUFxSixRQUFBLEdBQUFGLE9BQUEsY0FFckRELFFBQVEiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9UYWJsZS9Qcm9UYWJsZS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZUltcGVyYXRpdmVIYW5kbGUsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuLi9QYWdpbmF0aW9uJztcbmltcG9ydCB7IFRhYmxlIH0gZnJvbSAnLi4vVGFibGUnO1xuaW1wb3J0IHsgUXVlcnlGaWx0ZXIgfSBmcm9tICcuLi9Qcm9Gb3JtJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9DVVJSRU5ULCBERUZBVUxUX1BBR0VfU0laRSwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdXNlRmV0Y2hEYXRhIH0gZnJvbSAnLi91c2VGZXRjaERhdGEnO1xuaW1wb3J0IHsgZ2VuQ29sdW1ucyB9IGZyb20gJy4vY29yZS9nZW5Db2x1bW5zJztcbmltcG9ydCB7IGFwcGx5U2VhcmNoVHJhbnNmb3JtcywgZ2VuU2VhcmNoRmllbGRzIH0gZnJvbSAnLi9jb3JlL2dlblNlYXJjaEZpZWxkcyc7XG4vKiogUmVhZCB0aGUgY3VycmVudCBVUkwgcXVlcnkgc3RyaW5nIGludG8gc2VhcmNoIHZhbHVlcywgYXBwbHlpbmcgdGhlIGAnZ2V0J2AgdHJhbnNmb3JtLiAqL1xuZnVuY3Rpb24gcmVhZFVybFZhbHVlcyhzeW5jVG9VcmwpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybiB7fTtcbiAgICBjb25zdCBwYXJhbXMgPSB7fTtcbiAgICBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgcGFyYW1zW2tleV0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICByZXR1cm4gdHlwZW9mIHN5bmNUb1VybCA9PT0gJ2Z1bmN0aW9uJyA/IHN5bmNUb1VybChwYXJhbXMsICdnZXQnKSA6IHBhcmFtcztcbn1cbmZ1bmN0aW9uIFByb1RhYmxlSW5uZXIocHJvcHMpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIGNvbnN0IHsgcHJlZml4Q2xzID0gQ1NTX1BSRUZJWCwgY2xhc3NOYW1lLCBjb2x1bW5zLCByZXF1ZXN0LCBwYXJhbXMsIGRhdGFTb3VyY2U6IGNvbnRyb2xsZWREYXRhLCBsb2FkaW5nOiBjb250cm9sbGVkTG9hZGluZywgZGVmYXVsdERhdGEsIG1hbnVhbFJlcXVlc3QsIGRlYm91bmNlVGltZSwgcG9zdERhdGEsIHBvbGxpbmcsIGJlZm9yZVNlYXJjaFN1Ym1pdCwgY29sdW1uRW1wdHlUZXh0LCBzZWFyY2hGb3JtUmVuZGVyLCBwYWdpbmF0aW9uID0ge30sIHNlYXJjaCA9IHt9LCByb3dTZWxlY3Rpb24sIGFjdGlvblJlZiwgb25Mb2FkLCBvbkxvYWRpbmdDaGFuZ2UsIG9uUmVxdWVzdEVycm9yLCBvbkNoYW5nZSwgcm93S2V5LCB2YXJpYW50ID0gJ3N0cm9rZScsIGJvcmRlcmVkLCBzY3JvbGwsIHN0aWNreSwgZXhwYW5kYWJsZSwgZW1wdHksIHRhYmxlTGF5b3V0LCByb3dDbGFzc05hbWUsIG9uUm93LCBzdW1tYXJ5LCBmb290ZXIsIH0gPSBwcm9wcztcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IHRhYmxlQ29sdW1ucyA9IHVzZU1lbW8oKCkgPT4gZ2VuQ29sdW1ucyhjb2x1bW5zLCBjb2x1bW5FbXB0eVRleHQpLCBbY29sdW1ucywgY29sdW1uRW1wdHlUZXh0XSk7XG4gICAgLy8g4pSA4pSAIHNlYXJjaCBmb3JtIChhdXRvLWdlbmVyYXRlZCBmcm9tIGNvbHVtbnMpIOKUgOKUgFxuICAgIGNvbnN0IHNlYXJjaENmZyA9IHNlYXJjaCA9PT0gZmFsc2UgPyB1bmRlZmluZWQgOiBzZWFyY2g7XG4gICAgY29uc3QgeyBmaWVsZHM6IHNlYXJjaEZpZWxkcywgaW5pdGlhbFZhbHVlczogc2VhcmNoSW5pdGlhbFZhbHVlcywgbmFtZXM6IHNlYXJjaEZpZWxkTmFtZXMgfSA9IHVzZU1lbW8oKCkgPT4gZ2VuU2VhcmNoRmllbGRzKGNvbHVtbnMpLCBbY29sdW1uc10pO1xuICAgIGNvbnN0IGhhc1NlYXJjaCA9IHNlYXJjaCAhPT0gZmFsc2UgJiYgc2VhcmNoRmllbGRzLmxlbmd0aCA+IDA7XG4gICAgY29uc3Qgc3luY1RvVXJsID0gc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLnN5bmNUb1VybDtcbiAgICAvLyBTZWVkIGluaXRpYWwgdmFsdWVzIChhbmQgdGhlIGZpcnN0IHJlcXVlc3QpIGZyb20gdGhlIFVSTCB3aGVuIHN5bmNUb1VybCBpcyBvbi5cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzID0gdXNlTWVtbygoKSA9PiAoc3luY1RvVXJsID8gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBzZWFyY2hJbml0aWFsVmFsdWVzKSwgcmVhZFVybFZhbHVlcyhzeW5jVG9VcmwpKSA6IHNlYXJjaEluaXRpYWxWYWx1ZXMpLCBcbiAgICAvLyBtb3VudC1vbmx5IHNuYXBzaG90IG9mIHRoZSBVUkxcbiAgICBbc2VhcmNoSW5pdGlhbFZhbHVlc10pO1xuICAgIGNvbnN0IFtzZWFyY2hQYXJhbXMsIHNldFNlYXJjaFBhcmFtc10gPSB1c2VTYWZlU3RhdGUoKCkgPT4gbWVyZ2VkSW5pdGlhbFZhbHVlcyk7XG4gICAgY29uc3QgZm9ybVJlZiA9IHVzZVJlZih1bmRlZmluZWQpO1xuICAgIC8vIOKUgOKUgCBzZXJ2ZXIgc29ydCAvIGZpbHRlciDilIDilIBcbiAgICBjb25zdCBbc29ydCwgc2V0U29ydF0gPSB1c2VTYWZlU3RhdGUoe30pO1xuICAgIGNvbnN0IFtmaWx0ZXIsIHNldEZpbHRlcl0gPSB1c2VTYWZlU3RhdGUoe30pO1xuICAgIC8vIOKUgOKUgCBwYWdpbmF0aW9uIGNvbmZpZyDilIDilIBcbiAgICBjb25zdCBwYWdpbmF0ZWQgPSBwYWdpbmF0aW9uICE9PSBmYWxzZTtcbiAgICBjb25zdCBkZWZhdWx0UGFnZVNpemUgPSAocGFnaW5hdGlvbiAmJiBwYWdpbmF0aW9uLmRlZmF1bHRQYWdlU2l6ZSkgfHwgKHBhZ2luYXRpb24gJiYgcGFnaW5hdGlvbi5wYWdlU2l6ZSkgfHwgREVGQVVMVF9QQUdFX1NJWkU7XG4gICAgY29uc3QgZGVmYXVsdEN1cnJlbnQgPSAocGFnaW5hdGlvbiAmJiBwYWdpbmF0aW9uLmRlZmF1bHRDdXJyZW50KSB8fCAocGFnaW5hdGlvbiAmJiBwYWdpbmF0aW9uLmN1cnJlbnQpIHx8IERFRkFVTFRfQ1VSUkVOVDtcbiAgICBjb25zdCBtYW51YWwgPSBjb250cm9sbGVkRGF0YSAhPT0gdW5kZWZpbmVkIHx8ICFyZXF1ZXN0O1xuICAgIGNvbnN0IHsgZGF0YVNvdXJjZTogZmV0Y2hlZERhdGEsIGxvYWRpbmc6IGZldGNoTG9hZGluZywgcGFnZUluZm8sIHNldFBhZ2VJbmZvLCByZWxvYWQsIHJlc2V0IH0gPSB1c2VGZXRjaERhdGEoe1xuICAgICAgICByZXF1ZXN0LFxuICAgICAgICBtYW51YWwsXG4gICAgICAgIG1hbnVhbFJlcXVlc3QsXG4gICAgICAgIGRlYm91bmNlVGltZSxcbiAgICAgICAgcG9zdERhdGEsXG4gICAgICAgIHBvbGxpbmcsXG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgZGVmYXVsdERhdGEsXG4gICAgICAgIHBhZ2luYXRlZCxcbiAgICAgICAgZGVmYXVsdEN1cnJlbnQsXG4gICAgICAgIGRlZmF1bHRQYWdlU2l6ZSxcbiAgICAgICAgc2VhcmNoUGFyYW1zLFxuICAgICAgICBzb3J0LFxuICAgICAgICBmaWx0ZXIsXG4gICAgICAgIG9uTG9hZCxcbiAgICAgICAgb25Mb2FkaW5nQ2hhbmdlLFxuICAgICAgICBvblJlcXVlc3RFcnJvcixcbiAgICB9KTtcbiAgICBjb25zdCBkYXRhU291cmNlID0gY29udHJvbGxlZERhdGEgIT09IG51bGwgJiYgY29udHJvbGxlZERhdGEgIT09IHZvaWQgMCA/IGNvbnRyb2xsZWREYXRhIDogZmV0Y2hlZERhdGE7XG4gICAgY29uc3QgbG9hZGluZyA9IGNvbnRyb2xsZWRMb2FkaW5nICE9PSBudWxsICYmIGNvbnRyb2xsZWRMb2FkaW5nICE9PSB2b2lkIDAgPyBjb250cm9sbGVkTG9hZGluZyA6IChtYW51YWwgPyBmYWxzZSA6IGZldGNoTG9hZGluZyk7XG4gICAgLy8g4pSA4pSAIGhhbmRsZXJzIOKUgOKUgFxuICAgIGNvbnN0IGhhbmRsZVNlYXJjaEZpbmlzaCA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBjb25zdCBwZXJDb2x1bW4gPSBhcHBseVNlYXJjaFRyYW5zZm9ybXModmFsdWVzLCBjb2x1bW5zKTtcbiAgICAgICAgY29uc3QgZmluYWxQYXJhbXMgPSBiZWZvcmVTZWFyY2hTdWJtaXQgPyBiZWZvcmVTZWFyY2hTdWJtaXQocGVyQ29sdW1uKSA6IHBlckNvbHVtbjtcbiAgICAgICAgc2V0U2VhcmNoUGFyYW1zKGZpbmFsUGFyYW1zKTtcbiAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgdm9pZCByZWxvYWQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hSZXNldCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIC8vIFVzZSB0aGUgYXJyYXkgZm9ybSAoYHJlc2V0RmllbGRzKG5hbWVzKWApIHRvIHJlc2V0IE9OTFkgdGhlIHNlYXJjaFxuICAgICAgICAvLyBmaWVsZHMg4oCUIGEgZnVsbCByZXNldCB3b3VsZCBhbHNvIHdpcGUgbm9uLXNlYXJjaCBmb3JtIHN0YXRlLlxuICAgICAgICAoX2EgPSBmb3JtUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNldEZpZWxkcyhzZWFyY2hGaWVsZE5hbWVzKTtcbiAgICAgICAgc2V0U2VhcmNoUGFyYW1zKHt9KTtcbiAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgdm9pZCByZWxvYWQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWJsZUNoYW5nZSA9IHVzZU1lbW9pemVkRm4oKG1ldGEpID0+IHtcbiAgICAgICAgaWYgKG1ldGEuc29ydGVyKSB7XG4gICAgICAgICAgICBjb25zdCB7IGNvbHVtbktleSwgb3JkZXIgfSA9IG1ldGEuc29ydGVyO1xuICAgICAgICAgICAgc2V0U29ydChjb2x1bW5LZXkgJiYgb3JkZXIgPyB7IFtTdHJpbmcoY29sdW1uS2V5KV06IG9yZGVyIH0gOiB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1ldGEuZmlsdGVycylcbiAgICAgICAgICAgIHNldEZpbHRlcihtZXRhLmZpbHRlcnMpO1xuICAgICAgICBpZiAobWV0YS5zb3J0ZXIgfHwgbWV0YS5maWx0ZXJzKVxuICAgICAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG1ldGEpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVBhZ2VDaGFuZ2UgPSB1c2VNZW1vaXplZEZuKChwYWdlLCBwYWdlU2l6ZSkgPT4ge1xuICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IHBhZ2UsIHBhZ2VTaXplIH0pO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2Uoe1xuICAgICAgICAgICAgY3VycmVudERhdGFTb3VyY2U6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICBhY3Rpb246ICdwYWdpbmF0ZScsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiB7IGN1cnJlbnQ6IHBhZ2UsIHBhZ2VTaXplIH0sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBpbXBlcmF0aXZlIGhhbmRsZSDilIDilIBcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKGFjdGlvblJlZiwgKCkgPT4gKHtcbiAgICAgICAgcmVsb2FkOiAoKSA9PiByZWxvYWQoKSxcbiAgICAgICAgcmVsb2FkQW5kUmVzdDogKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgICAgIHlpZWxkIHJlbG9hZCgpO1xuICAgICAgICB9KSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIChfYSA9IGZvcm1SZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlc2V0RmllbGRzKHNlYXJjaEZpZWxkTmFtZXMpO1xuICAgICAgICAgICAgc2V0U2VhcmNoUGFyYW1zKHNlYXJjaEluaXRpYWxWYWx1ZXMpO1xuICAgICAgICAgICAgc2V0U29ydCh7fSk7XG4gICAgICAgICAgICBzZXRGaWx0ZXIoe30pO1xuICAgICAgICAgICAgcmVzZXQoKTtcbiAgICAgICAgICAgIHZvaWQgcmVsb2FkKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNldFBhZ2VJbmZvLFxuICAgIH0pKTtcbiAgICAvLyDilIDilIAgc2VhcmNoIGZvcm0gbm9kZSAob25seSBidWlsdCB3aGVuIHRoZXJlIGFyZSBzZWFyY2hhYmxlIGNvbHVtbnMpIOKUgOKUgFxuICAgIGxldCBzZWFyY2hOb2RlID0gbnVsbDtcbiAgICBpZiAoaGFzU2VhcmNoKSB7XG4gICAgICAgIGNvbnN0IHNlYXJjaEZvcm0gPSAoX2pzeChRdWVyeUZpbHRlciwgeyBmb3JtUmVmOiBmb3JtUmVmLCBzaXplOiBcInNtYWxsXCIsIGluaXRpYWxWYWx1ZXM6IG1lcmdlZEluaXRpYWxWYWx1ZXMsIGRlZmF1bHRDb2xsYXBzZWQ6IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5kZWZhdWx0Q29sbGFwc2VkLCBkZWZhdWx0Q29sc051bWJlcjogc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLmRlZmF1bHRDb2xzTnVtYmVyLCBsYWJlbFdpZHRoOiBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcubGFiZWxXaWR0aCwgc3luY1RvVXJsOiBzeW5jVG9VcmwsIHNlYXJjaENvbmZpZzoge1xuICAgICAgICAgICAgICAgIHNlYXJjaFRleHQ6IChfYSA9IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoLFxuICAgICAgICAgICAgICAgIHJlc2V0VGV4dDogKF9iID0gc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLnJlc2V0VGV4dCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogREVGQVVMVF9URVhULnJlc2V0LFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgfSwgb25GaW5pc2g6IGhhbmRsZVNlYXJjaEZpbmlzaCwgb25SZXNldDogaGFuZGxlU2VhcmNoUmVzZXQsIGNoaWxkcmVuOiBzZWFyY2hGaWVsZHMgfSkpO1xuICAgICAgICBzZWFyY2hOb2RlID0gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NlYXJjaCcpLCBjaGlsZHJlbjogc2VhcmNoRm9ybVJlbmRlciA/IHNlYXJjaEZvcm1SZW5kZXIoc2VhcmNoRm9ybSkgOiBzZWFyY2hGb3JtIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh1bmRlZmluZWQsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbc2VhcmNoTm9kZSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRhaW5lcicpLCBjaGlsZHJlbjogW19qc3goVGFibGUsIHsgcm93S2V5OiByb3dLZXksIGNvbHVtbnM6IHRhYmxlQ29sdW1ucywgZGF0YVNvdXJjZTogZGF0YVNvdXJjZSwgbG9hZGluZzogbG9hZGluZywgcGFnaW5hdGlvbjogZmFsc2UsIHJvd1NlbGVjdGlvbjogcm93U2VsZWN0aW9uLCBvbkNoYW5nZTogaGFuZGxlVGFibGVDaGFuZ2UsIHZhcmlhbnQ6IHZhcmlhbnQsIGJvcmRlcmVkOiBib3JkZXJlZCwgc2Nyb2xsOiBzY3JvbGwsIHN0aWNreTogc3RpY2t5LCBleHBhbmRhYmxlOiBleHBhbmRhYmxlLCBlbXB0eTogZW1wdHksIHRhYmxlTGF5b3V0OiB0YWJsZUxheW91dCwgcm93Q2xhc3NOYW1lOiByb3dDbGFzc05hbWUsIG9uUm93OiBvblJvdywgc3VtbWFyeTogc3VtbWFyeSwgZm9vdGVyOiBmb290ZXIgfSksIHBhZ2luYXRlZCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFnaW5hdGlvbicpLCBjaGlsZHJlbjogX2pzeChQYWdpbmF0aW9uLCB7IHRvdGFsOiBwYWdlSW5mby50b3RhbCwgY3VycmVudDogcGFnZUluZm8uY3VycmVudCwgcGFnZVNpemU6IHBhZ2VJbmZvLnBhZ2VTaXplLCBvbkNoYW5nZTogaGFuZGxlUGFnZUNoYW5nZSB9KSB9KSldIH0pXSB9KSk7XG59XG5leHBvcnQgY29uc3QgUHJvVGFibGUgPSBtZW1vKFByb1RhYmxlSW5uZXIpO1xuZXhwb3J0IGRlZmF1bHQgUHJvVGFibGU7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ReactNode, Ref } from 'react';
|
|
2
|
-
import type { TableChangeMeta, TableColumn, TableProps, TableRecord, TableRowSelection,
|
|
2
|
+
import type { TableChangeMeta, TableColumn, TableProps, TableRecord, TableRowSelection, TableSortOrder } from "../Table";
|
|
3
3
|
import type { ProFormValueEnumObj } from "../ProForm";
|
|
4
4
|
import type { ProTableValueType } from './constants';
|
|
5
5
|
export type { ProTableValueType } from './constants';
|
|
@@ -87,7 +87,7 @@ export interface ProTableActionRef {
|
|
|
87
87
|
reset: () => void;
|
|
88
88
|
setPageInfo: (info: Partial<PageInfo>) => void;
|
|
89
89
|
}
|
|
90
|
-
export interface ProTableProps<T extends TableRecord = TableRecord, Params extends Record<string, unknown> = Record<string, unknown>> extends Pick<TableProps<T>, 'rowKey' | 'rowSelection' | 'variant' | 'bordered' | 'scroll' | 'sticky' | 'expandable' | 'empty' | 'tableLayout' | 'rowClassName' | 'onRow' | '
|
|
90
|
+
export interface ProTableProps<T extends TableRecord = TableRecord, Params extends Record<string, unknown> = Record<string, unknown>> extends Pick<TableProps<T>, 'rowKey' | 'rowSelection' | 'variant' | 'bordered' | 'scroll' | 'sticky' | 'expandable' | 'empty' | 'tableLayout' | 'rowClassName' | 'onRow' | 'summary' | 'footer'> {
|
|
91
91
|
prefixCls?: string;
|
|
92
92
|
className?: string;
|
|
93
93
|
/**
|
|
@@ -122,7 +122,6 @@ export interface ProTableProps<T extends TableRecord = TableRecord, Params exten
|
|
|
122
122
|
pagination?: false | ProTablePaginationConfig;
|
|
123
123
|
search?: false | SearchConfig;
|
|
124
124
|
rowSelection?: TableRowSelection<T>;
|
|
125
|
-
size?: TableSize;
|
|
126
125
|
actionRef?: Ref<ProTableActionRef>;
|
|
127
126
|
onLoad?: (data: T[]) => void;
|
|
128
127
|
onLoadingChange?: (loading: boolean) => void;
|
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.TABLE_DEFAULT_VARIANT = exports.
|
|
6
|
+
exports.TABLE_DEFAULT_VARIANT = exports.TABLE_DEFAULT_PREFIX = exports.TABLE_BLOCK = void 0;
|
|
7
7
|
var TABLE_DEFAULT_PREFIX = exports.TABLE_DEFAULT_PREFIX = 'om-component-ui-table';
|
|
8
8
|
var TABLE_BLOCK = exports.TABLE_BLOCK = 'table';
|
|
9
|
-
var TABLE_DEFAULT_SIZE = exports.TABLE_DEFAULT_SIZE = 'large';
|
|
10
9
|
var TABLE_DEFAULT_VARIANT = exports.TABLE_DEFAULT_VARIANT = 'fill';
|
|
11
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvVGFibGUvY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbIlRBQkxFX0RFRkFVTFRfUFJFRklYIiwiZXhwb3J0cyIsIlRBQkxFX0JMT0NLIiwiVEFCTEVfREVGQVVMVF9WQVJJQU5UIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBTyxJQUFNQSxvQkFBb0IsR0FBQUMsT0FBQSxDQUFBRCxvQkFBQSxHQUFHLHVCQUF1QjtBQUNwRCxJQUFNRSxXQUFXLEdBQUFELE9BQUEsQ0FBQUMsV0FBQSxHQUFHLE9BQU87QUFDM0IsSUFBTUMscUJBQXFCLEdBQUFGLE9BQUEsQ0FBQUUscUJBQUEsR0FBRyxNQUFNIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { type Key } from 'react';
|
|
2
|
-
import type { TableCheckboxProps, TableColumnType, TableExpandableConfig, TableRecord, TableRowSelection,
|
|
2
|
+
import type { TableCheckboxProps, TableColumnType, TableExpandableConfig, TableRecord, TableRowSelection, TableVariant } from '../interface';
|
|
3
3
|
import type { TableFilterState, TableSorterState, Updater } from './useTableDataPipeline';
|
|
4
4
|
import type { ColumnsType as InternalColumnsType } from '../internal/kernel/interface';
|
|
5
5
|
interface UseTableColumnsConfig<T extends TableRecord = TableRecord> {
|
|
6
6
|
columns: TableColumnType<T>[];
|
|
7
|
-
size: TableSize;
|
|
8
7
|
variant: TableVariant;
|
|
9
8
|
expandable?: TableExpandableConfig<T>;
|
|
10
9
|
mergedExpandedRowKeys: Key[];
|
|
@@ -118,8 +118,7 @@ function ariaSortFor(order) {
|
|
|
118
118
|
// confirm / reset.
|
|
119
119
|
var EMPTY_FILTER_VALUE = [];
|
|
120
120
|
function makeHeaderTransform(config) {
|
|
121
|
-
var
|
|
122
|
-
sorter = config.sorter,
|
|
121
|
+
var sorter = config.sorter,
|
|
123
122
|
setSorter = config.setSorter,
|
|
124
123
|
filters = config.filters,
|
|
125
124
|
setFilters = config.setFilters;
|
|
@@ -152,7 +151,6 @@ function makeHeaderTransform(config) {
|
|
|
152
151
|
column: column
|
|
153
152
|
}) : (0, _jsxRuntime.jsx)(_HeaderCell.HeaderCell, {
|
|
154
153
|
column: column,
|
|
155
|
-
size: size,
|
|
156
154
|
sortOrder: activeOrder,
|
|
157
155
|
onSortClick: function onSortClick() {
|
|
158
156
|
return setSorter(function (currentSorter) {
|
|
@@ -246,10 +244,9 @@ function useTableColumns(config) {
|
|
|
246
244
|
setSorter = config.setSorter,
|
|
247
245
|
filters = config.filters,
|
|
248
246
|
setFilters = config.setFilters,
|
|
249
|
-
size = config.size,
|
|
250
247
|
getRowKey = config.getRowKey;
|
|
251
248
|
// The user's data columns only depend on the header / render inputs
|
|
252
|
-
// (sort, filter
|
|
249
|
+
// (sort, filter) — NOT on selection or expansion state. Memoising them
|
|
253
250
|
// on their own means toggling a checkbox or chevron no longer rebuilds and
|
|
254
251
|
// re-wraps the render closure of *every* data column; only the small
|
|
255
252
|
// selection/expand prefix below is rebuilt. `makeHeaderTransform` and
|
|
@@ -265,7 +262,7 @@ function useTableColumns(config) {
|
|
|
265
262
|
var cols = makeHeaderTransform(config)(columns);
|
|
266
263
|
cols = makeRenderTransform()(cols);
|
|
267
264
|
return cols;
|
|
268
|
-
}, [columns, sorter, filters,
|
|
265
|
+
}, [columns, sorter, filters, setSorter, setFilters]);
|
|
269
266
|
// The selection / expand prefix carries live selected/expanded state in its
|
|
270
267
|
// render output, which is the signal that re-renders the affected rows — so it
|
|
271
268
|
// must rebuild on every toggle. It is at most two columns, so this is cheap.
|
|
@@ -283,7 +280,7 @@ function useTableColumns(config) {
|
|
|
283
280
|
cols = makeHeaderTransform(config)(cols);
|
|
284
281
|
cols = makeRenderTransform()(cols);
|
|
285
282
|
return cols;
|
|
286
|
-
}, [expandable, rowSelection, mergedExpandedRowKeys, mergedSelectedRowKeys, checkboxPropsMap, isAllSelected, isIndeterminate, triggerExpand, triggerSelection, triggerSelectAll, sorter, setSorter, filters, setFilters,
|
|
283
|
+
}, [expandable, rowSelection, mergedExpandedRowKeys, mergedSelectedRowKeys, checkboxPropsMap, isAllSelected, isIndeterminate, triggerExpand, triggerSelection, triggerSelectAll, sorter, setSorter, filters, setFilters, getRowKey]);
|
|
287
284
|
return (0, _react.useMemo)(function () {
|
|
288
285
|
var cols = [].concat((0, _toConsumableArray2["default"])(prefixColumns), (0, _toConsumableArray2["default"])(baseUserColumns));
|
|
289
286
|
if (variant === 'stroke') {
|
|
@@ -292,4 +289,4 @@ function useTableColumns(config) {
|
|
|
292
289
|
return cols;
|
|
293
290
|
}, [prefixColumns, baseUserColumns, variant]);
|
|
294
291
|
}
|
|
295
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZUNvbHVtbnMuanMiLCJjb21wb25lbnRzL1RhYmxlL3NyYy9jb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVDb2x1bW5zLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfU2VsZWN0aW9uQ29sdW1uIiwiX0V4cGFuZFRyaWdnZXIiLCJfSGVhZGVyQ2VsbCIsIl9Cb2R5Q2VsbCIsIl9jb25zdGFudHMiLCJfY29sdW1uVXRpbCIsIm1ha2VFeHBhbmRUcmFuc2Zvcm0iLCJjb25maWciLCJleHBhbmRhYmxlIiwibWVyZ2VkRXhwYW5kZWRSb3dLZXlzIiwidHJpZ2dlckV4cGFuZCIsImdldFJvd0tleSIsImN1c3RvbUV4cGFuZEljb24iLCJleHBhbmRJY29uIiwicm93RXhwYW5kYWJsZSIsImV4cGFuZGVkS2V5U2V0IiwiU2V0IiwiY29sdW1ucyIsIl9hIiwia2V5IiwiY2xhc3NOYW1lIiwiRVhQQU5EX0NPTFVNTl9DTFMiLCJ3aWR0aCIsImNvbHVtbldpZHRoIiwidGl0bGUiLCJjb2x1bW5UaXRsZSIsImZpeGVkIiwidW5kZWZpbmVkIiwicmVuZGVyIiwiXyIsInJlY29yZCIsImluZGV4IiwiY2FuRXhwYW5kIiwicmVjb3JkS2V5IiwiZXhwYW5kZWQiLCJoYXMiLCJwcmVmaXhDbHMiLCJUQUJMRV9ERUZBVUxUX1BSRUZJWCIsIm9uRXhwYW5kIiwicmVjIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIl9qc3giLCJFeHBhbmRUcmlnZ2VyIiwib25Ub2dnbGUiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwibWFrZVNlbGVjdGlvblRyYW5zZm9ybSIsInJvd1NlbGVjdGlvbiIsIm1lcmdlZFNlbGVjdGVkUm93S2V5cyIsImNoZWNrYm94UHJvcHNNYXAiLCJpc0FsbFNlbGVjdGVkIiwiaXNJbmRldGVybWluYXRlIiwidHJpZ2dlclNlbGVjdGlvbiIsInRyaWdnZXJTZWxlY3RBbGwiLCJzZWxlY3Rpb25UeXBlIiwidHlwZSIsInNlbGVjdGVkS2V5U2V0IiwiT2JqZWN0IiwiYXNzaWduIiwiU0VMRUNUSU9OX0NPTFVNTl9DTFMiLCJyZW5kZXJIZWFkZXIiLCJTZWxlY3Rpb25IZWFkZXJDb250cm9sIiwiY2hlY2tlZCIsImluZGV0ZXJtaW5hdGUiLCJvbkNoYW5nZSIsInJvd1Byb3BzIiwiZ2V0IiwiU2VsZWN0aW9uQ29udHJvbCIsImFyaWFTb3J0Rm9yIiwib3JkZXIiLCJFTVBUWV9GSUxURVJfVkFMVUUiLCJtYWtlSGVhZGVyVHJhbnNmb3JtIiwic2l6ZSIsInNvcnRlciIsInNldFNvcnRlciIsImZpbHRlcnMiLCJzZXRGaWx0ZXJzIiwibWFwIiwiY29sdW1uIiwiX2IiLCJpc0NvbHVtbkdyb3VwIiwiaXNTb3J0YWJsZSIsIkJvb2xlYW4iLCJhY3RpdmVPcmRlciIsImNvbHVtbktleSIsIlN0cmluZyIsImZpbHRlclNlbGVjdGVkIiwidXNlck9uSGVhZGVyQ2VsbCIsIm9uSGVhZGVyQ2VsbCIsImNvbCIsInVzZXJBdHRycyIsIm9uRmlsdGVyQ2hhbmdlIiwibmV4dCIsImN1cnJlbnQiLCJfZGVmaW5lUHJvcGVydHkyIiwibGVuZ3RoIiwiSGVhZGVyQ2VsbCIsInNvcnRPcmRlciIsIm9uU29ydENsaWNrIiwiY3VycmVudFNvcnRlciIsIlNQQUNFUl9DT0xVTU5fQ0xTIiwibWFrZVNwYWNlclRyYW5zZm9ybSIsIm1ha2VSZW5kZXJUcmFuc2Zvcm0iLCJ2YWx1ZSIsIkJvZHlDZWxsIiwidXNlVGFibGVDb2x1bW5zIiwidmFyaWFudCIsImJhc2VVc2VyQ29sdW1ucyIsInVzZU1lbW8iLCJjb2xzIiwicHJlZml4Q29sdW1ucyIsInNob3dFeHBhbmRDb2x1bW4iLCJzZWxlY3Rpb25UcmFuc2Zvcm0iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ0FBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGdCQUFBLEdB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RUFDYkMsZUFBZSxFQUNmMUMsYUFBYSxFQUNiMkMsZ0JBQWdCLEVBQ2hCQyxnQkFBZ0IsRUFDaEJvQixNQUFNLEVBQ05DLFNBQVMsRUFDVEMsT0FBTyxFQUNQQyxVQUFVLEVBQ1ZKLElBQUksRUFDSjlELFNBQVMsQ0FDVixDQUFDO0VBRUYsT0FBTyxJQUFBa0csY0FBTyxFQUFDLFlBQUs7SUFDbEIsSUFBSUMsSUFBSSxNQUFBakUsTUFBQSxLQUFBQyxtQkFBQSxhQUFPaUUsYUFBYSxPQUFBakUsbUJBQUEsYUFBSzhELGVBQWUsRUFBQztJQUNqRCxJQUFJRCxPQUFPLEtBQUssUUFBUSxFQUFFO01BQ3hCRyxJQUFJLEdBQUdSLG1CQUFtQixDQUFBLENBQUssQ0FBQ1EsSUFBSSxDQUFDO0lBQ3ZDO0lBQ0EsT0FBT0EsSUFBeUM7RUFDbEQsQ0FBQyxFQUFFLENBQUNDLGFBQWEsRUFBRUgsZUFBZSxFQUFFRCxPQUFPLENBQUMsQ0FBQztBQUMvQyIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVDb2x1bW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Db250cm9sLCBTZWxlY3Rpb25IZWFkZXJDb250cm9sIH0gZnJvbSAnLi4vZmVhdHVyZXMvU2VsZWN0aW9uQ29sdW1uJztcbmltcG9ydCB7IEV4cGFuZFRyaWdnZXIgfSBmcm9tICcuLi9mZWF0dXJlcy9FeHBhbmRUcmlnZ2VyJztcbmltcG9ydCB7IEhlYWRlckNlbGwgfSBmcm9tICcuLi9yZW5kZXJlcnMvSGVhZGVyQ2VsbCc7XG5pbXBvcnQgeyBCb2R5Q2VsbCB9IGZyb20gJy4uL3JlbmRlcmVycy9Cb2R5Q2VsbCc7XG5pbXBvcnQgeyBUQUJMRV9ERUZBVUxUX1BSRUZJWCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBpc0NvbHVtbkdyb3VwIH0gZnJvbSAnLi9jb2x1bW5VdGlsJztcbmZ1bmN0aW9uIG1ha2VFeHBhbmRUcmFuc2Zvcm0oY29uZmlnKSB7XG4gICAgY29uc3QgeyBleHBhbmRhYmxlLCBtZXJnZWRFeHBhbmRlZFJvd0tleXMsIHRyaWdnZXJFeHBhbmQsIGdldFJvd0tleSB9ID0gY29uZmlnO1xuICAgIGNvbnN0IGN1c3RvbUV4cGFuZEljb24gPSBleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuZXhwYW5kSWNvbjtcbiAgICBjb25zdCByb3dFeHBhbmRhYmxlID0gZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLnJvd0V4cGFuZGFibGU7XG4gICAgLy8gTygxKSBwZXItcm93IGV4cGFuc2lvbiBsb29rdXAg4oCUIGAuaW5jbHVkZXNgIGhlcmUgcmFuIG9uY2UgcGVyIHJlbmRlcmVkIHJvdy5cbiAgICBjb25zdCBleHBhbmRlZEtleVNldCA9IG5ldyBTZXQobWVyZ2VkRXhwYW5kZWRSb3dLZXlzKTtcbiAgICByZXR1cm4gKGNvbHVtbnMpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ19fZXhwYW5kX18nLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogRVhQQU5EX0NPTFVNTl9DTFMsXG4gICAgICAgICAgICAgICAgLy8gSG9ub3IgYGV4cGFuZGFibGUuY29sdW1uV2lkdGhgIC8gYGNvbHVtblRpdGxlYCAvIGBmaXhlZGA7XG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byBhIGZpeGVkIDE2cHggY29sdW1uIChjaGV2cm9uLW9ubHksIHBhZGRpbmc6IDApLlxuICAgICAgICAgICAgICAgIHdpZHRoOiAoX2EgPSBleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuY29sdW1uV2lkdGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDE2LFxuICAgICAgICAgICAgICAgIHRpdGxlOiBleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuY29sdW1uVGl0bGUsXG4gICAgICAgICAgICAgICAgZml4ZWQ6IChleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuZml4ZWQpID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgID8gJ2xlZnQnXG4gICAgICAgICAgICAgICAgICAgIDogKGV4cGFuZGFibGUgPT09IG51bGwgfHwgZXhwYW5kYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwYW5kYWJsZS5maXhlZCkgPT09IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuZml4ZWQsXG4gICAgICAgICAgICAgICAgcmVuZGVyOiAoXywgcmVjb3JkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBIb25vciBgcm93RXhwYW5kYWJsZWA6IHdoZW4gdGhlIHByZWRpY2F0ZSBkZW5pZXMgYSByZWNvcmQsIHJlbmRlciBub1xuICAgICAgICAgICAgICAgICAgICAvLyBjaGV2cm9uIGF0IGFsbCAodGhlIHJvdyBpcyBub24tZXhwYW5kYWJsZSkuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbkV4cGFuZCA9IHJvd0V4cGFuZGFibGUgPyByb3dFeHBhbmRhYmxlKHJlY29yZCkgOiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbkV4cGFuZClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWNvcmRLZXkgPSBnZXRSb3dLZXkocmVjb3JkLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cGFuZGVkID0gZXhwYW5kZWRLZXlTZXQuaGFzKHJlY29yZEtleSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXN0b21FeHBhbmRJY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VzdG9tRXhwYW5kSWNvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4Q2xzOiBUQUJMRV9ERUZBVUxUX1BSRUZJWCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkV4cGFuZDogKHJlYywgZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyRXhwYW5kKGdldFJvd0tleShyZWMsIGluZGV4KSwgcmVjKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KEV4cGFuZFRyaWdnZXIsIHsgZXhwYW5kZWQ6IGV4cGFuZGVkLCByZWNvcmRLZXk6IHJlY29yZEtleSwgcmVjb3JkOiByZWNvcmQsIG9uVG9nZ2xlOiB0cmlnZ2VyRXhwYW5kIH0pKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC4uLmNvbHVtbnMsXG4gICAgICAgIF07XG4gICAgfTtcbn1cbmZ1bmN0aW9uIG1ha2VTZWxlY3Rpb25UcmFuc2Zvcm0oY29uZmlnKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgcm93U2VsZWN0aW9uLCBtZXJnZWRTZWxlY3RlZFJvd0tleXMsIGNoZWNrYm94UHJvcHNNYXAsIGlzQWxsU2VsZWN0ZWQsIGlzSW5kZXRlcm1pbmF0ZSwgdHJpZ2dlclNlbGVjdGlvbiwgdHJpZ2dlclNlbGVjdEFsbCwgZ2V0Um93S2V5LCB9ID0gY29uZmlnO1xuICAgIGlmICghcm93U2VsZWN0aW9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBzZWxlY3Rpb25UeXBlID0gKF9hID0gcm93U2VsZWN0aW9uLnR5cGUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdjaGVja2JveCc7XG4gICAgLy8gTygxKSBwZXItcm93IHNlbGVjdGlvbiBsb29rdXAg4oCUIGAuaW5jbHVkZXNgIGhlcmUgcmFuIG9uY2UgcGVyIHJlbmRlcmVkIHJvdy5cbiAgICBjb25zdCBzZWxlY3RlZEtleVNldCA9IG5ldyBTZXQobWVyZ2VkU2VsZWN0ZWRSb3dLZXlzKTtcbiAgICByZXR1cm4gKGNvbHVtbnMpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsga2V5OiAnX19zZWxlY3Rpb25fXycsIGNsYXNzTmFtZTogU0VMRUNUSU9OX0NPTFVNTl9DTFMsIHdpZHRoOiAoX2EgPSByb3dTZWxlY3Rpb24uY29sdW1uV2lkdGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDE2LCBmaXhlZDogcm93U2VsZWN0aW9uLmZpeGVkID8gJ2xlZnQnIDogdW5kZWZpbmVkIH0sIChzZWxlY3Rpb25UeXBlID09PSAnY2hlY2tib3gnXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckhlYWRlcjogKCkgPT4gKF9qc3goU2VsZWN0aW9uSGVhZGVyQ29udHJvbCwgeyBjaGVja2VkOiBpc0FsbFNlbGVjdGVkLCBpbmRldGVybWluYXRlOiBpc0luZGV0ZXJtaW5hdGUsIG9uQ2hhbmdlOiB0cmlnZ2VyU2VsZWN0QWxsIH0pKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7fSkpLCB7IHJlbmRlcjogKF8sIHJlY29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkS2V5ID0gZ2V0Um93S2V5KHJlY29yZCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dQcm9wcyA9IGNoZWNrYm94UHJvcHNNYXAuZ2V0KHJlY29yZEtleSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChTZWxlY3Rpb25Db250cm9sLCB7IHR5cGU6IHNlbGVjdGlvblR5cGUsIGNoZWNrZWQ6IHNlbGVjdGVkS2V5U2V0LmhhcyhyZWNvcmRLZXkpLCByb3dQcm9wczogcm93UHJvcHMsIHJlY29yZEtleTogcmVjb3JkS2V5LCBvbkNoYW5nZTogdHJpZ2dlclNlbGVjdGlvbiB9KSk7XG4gICAgICAgICAgICAgICAgfSB9KSxcbiAgICAgICAgICAgIC4uLmNvbHVtbnMsXG4gICAgICAgIF07XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGFyaWFTb3J0Rm9yKG9yZGVyKSB7XG4gICAgaWYgKG9yZGVyID09PSAnYXNjZW5kJylcbiAgICAgICAgcmV0dXJuICdhc2NlbmRpbmcnO1xuICAgIGlmIChvcmRlciA9PT0gJ2Rlc2NlbmQnKVxuICAgICAgICByZXR1cm4gJ2Rlc2NlbmRpbmcnO1xuICAgIHJldHVybiAnbm9uZSc7XG59XG4vLyBTdGFibGUgZW1wdHktZmlsdGVyIHJlZmVyZW5jZS4gV2l0aG91dCB0aGlzLCBgZmlsdGVyc1trZXldID8/IFtdYCBjcmVhdGVzIGFcbi8vIGZyZXNoIGBbXWAgb24gZXZlcnkgcmVuZGVyLCB3aGljaCB0aHJhc2hlcyBgRmlsdGVyVHJpZ2dlcmAnc1xuLy8gYHVzZUVmZmVjdChbc2VsZWN0ZWRLZXlzXSlgIGFuZCBjYXVzZXMgYW4gaW5maW5pdGUgc2V0U3RhdGUgbG9vcCBhZnRlclxuLy8gY29uZmlybSAvIHJlc2V0LlxuY29uc3QgRU1QVFlfRklMVEVSX1ZBTFVFID0gW107XG5mdW5jdGlvbiBtYWtlSGVhZGVyVHJhbnNmb3JtKGNvbmZpZykge1xuICAgIGNvbnN0IHsgc2l6ZSwgc29ydGVyLCBzZXRTb3J0ZXIsIGZpbHRlcnMsIHNldEZpbHRlcnMgfSA9IGNvbmZpZztcbiAgICByZXR1cm4gKGNvbHVtbnMpID0+IGNvbHVtbnMubWFwKChjb2x1bW4pID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKGlzQ29sdW1uR3JvdXAoY29sdW1uKSlcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgICAgIGNvbnN0IGlzU29ydGFibGUgPSBCb29sZWFuKGNvbHVtbi5zb3J0ZXIpO1xuICAgICAgICBjb25zdCBhY3RpdmVPcmRlciA9IHNvcnRlci5jb2x1bW5LZXkgPT09IGNvbHVtbi5rZXkgPyAoX2EgPSBzb3J0ZXIub3JkZXIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG51bGwgOiBudWxsO1xuICAgICAgICBjb25zdCBjb2x1bW5LZXkgPSBjb2x1bW4ua2V5ICE9IG51bGwgPyBTdHJpbmcoY29sdW1uLmtleSkgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGZpbHRlclNlbGVjdGVkID0gY29sdW1uS2V5ICE9IG51bGwgPyAoKF9iID0gZmlsdGVyc1tjb2x1bW5LZXldKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBFTVBUWV9GSUxURVJfVkFMVUUpIDogRU1QVFlfRklMVEVSX1ZBTFVFO1xuICAgICAgICAvLyBDb21wb3NlIG9uSGVhZGVyQ2VsbCBzbyB3ZSBkb24ndCBjbG9iYmVyIHVzZXItcHJvdmlkZWQgYXR0cmlidXRlcy5cbiAgICAgICAgY29uc3QgdXNlck9uSGVhZGVyQ2VsbCA9IGNvbHVtbi5vbkhlYWRlckNlbGw7XG4gICAgICAgIGNvbnN0IG9uSGVhZGVyQ2VsbCA9IChjb2wsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCB1c2VyQXR0cnMgPSAoX2EgPSB1c2VyT25IZWFkZXJDZWxsID09PSBudWxsIHx8IHVzZXJPbkhlYWRlckNlbGwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHVzZXJPbkhlYWRlckNlbGwoY29sLCBpbmRleCkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHt9O1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdXNlckF0dHJzKSwgKGlzU29ydGFibGUgPyB7ICdhcmlhLXNvcnQnOiBhcmlhU29ydEZvcihhY3RpdmVPcmRlcikgfSA6IG51bGwpKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25GaWx0ZXJDaGFuZ2UgPSAobmV4dCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbHVtbktleSA9PSBudWxsKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHNldEZpbHRlcnMoKGN1cnJlbnQpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGN1cnJlbnQpLCB7IFtjb2x1bW5LZXldOiBuZXh0Lmxlbmd0aCA/IG5leHQgOiBudWxsIH0pKSk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGNvbHVtbiksIHsgb25IZWFkZXJDZWxsLCB0aXRsZTogY29sdW1uLnJlbmRlckhlYWRlclxuICAgICAgICAgICAgICAgID8gY29sdW1uLnJlbmRlckhlYWRlcih7IGNvbHVtbiB9KVxuICAgICAgICAgICAgICAgIDogKF9qc3goSGVhZGVyQ2VsbCwgeyBjb2x1bW46IGNvbHVtbiwgc2l6ZTogc2l6ZSwgc29ydE9yZGVyOiBhY3RpdmVPcmRlciwgb25Tb3J0Q2xpY2s6ICgpID0+IHNldFNvcnRlcigoY3VycmVudFNvcnRlcikgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbktleTogY29sdW1uLmtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiBjdXJyZW50U29ydGVyLmNvbHVtbktleSAhPT0gY29sdW1uLmtleSB8fCBjdXJyZW50U29ydGVyLm9yZGVyID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnYXNjZW5kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY3VycmVudFNvcnRlci5vcmRlciA9PT0gJ2FzY2VuZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnZGVzY2VuZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICB9KSksIGZpbHRlclNlbGVjdGVkOiBmaWx0ZXJTZWxlY3RlZCwgb25GaWx0ZXJDaGFuZ2U6IG9uRmlsdGVyQ2hhbmdlIH0pKSB9KTtcbiAgICB9KTtcbn1cbmNvbnN0IFNQQUNFUl9DT0xVTU5fQ0xTID0gJ29tLWNvbXBvbmVudC11aS10YWJsZS1jZWxsLS1zcGFjZXInO1xuY29uc3QgRVhQQU5EX0NPTFVNTl9DTFMgPSAnb20tY29tcG9uZW50LXVpLXRhYmxlLWNlbGwtLWV4cGFuZCc7XG5jb25zdCBTRUxFQ1RJT05fQ09MVU1OX0NMUyA9ICdvbS1jb21wb25lbnQtdWktdGFibGUtY2VsbC0tc2VsZWN0aW9uJztcbmZ1bmN0aW9uIG1ha2VTcGFjZXJUcmFuc2Zvcm0oKSB7XG4gICAgcmV0dXJuIChjb2x1bW5zKSA9PiBbXG4gICAgICAgIHsga2V5OiAnX19zcGFjZXJfc3RhcnRfXycsIHdpZHRoOiAxNiwgdGl0bGU6ICcnLCBjbGFzc05hbWU6IFNQQUNFUl9DT0xVTU5fQ0xTLCByZW5kZXI6ICgpID0+IG51bGwgfSxcbiAgICAgICAgLi4uY29sdW1ucyxcbiAgICAgICAgeyBrZXk6ICdfX3NwYWNlcl9lbmRfXycsIHdpZHRoOiAxNiwgdGl0bGU6ICcnLCBjbGFzc05hbWU6IFNQQUNFUl9DT0xVTU5fQ0xTLCByZW5kZXI6ICgpID0+IG51bGwgfSxcbiAgICBdO1xufVxuZnVuY3Rpb24gbWFrZVJlbmRlclRyYW5zZm9ybSgpIHtcbiAgICByZXR1cm4gKGNvbHVtbnMpID0+IGNvbHVtbnMubWFwKChjb2x1bW4pID0+IHtcbiAgICAgICAgaWYgKGlzQ29sdW1uR3JvdXAoY29sdW1uKSlcbiAgICAgICAgICAgIHJldHVybiBjb2x1bW47XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGNvbHVtbiksIHsgXG4gICAgICAgICAgICAvLyBCb2R5Q2VsbCBpcyBpbnRlbnRpb25hbGx5IENBTExFRCBhcyBhIGZ1bmN0aW9uLCBub3QgcmVuZGVyZWQgYXNcbiAgICAgICAgICAgIC8vIGA8Qm9keUNlbGwgLz5gLiBUaGUga2VybmVsJ3MgYHJlbmRlcmAgY29udHJhY3QgYWxsb3dzIHJldHVybmluZyBlaXRoZXJcbiAgICAgICAgICAgIC8vIGEgUmVhY3ROb2RlIG9yIGEgYHsgY2hpbGRyZW4sIHByb3BzIH1gIGNlbGwtc3Bhbm5pbmcgZGVzY3JpcHRvciwgYW5kXG4gICAgICAgICAgICAvLyBCb2R5Q2VsbCBmb3J3YXJkcyB0aGF0IGRlc2NyaXB0b3IgdGhyb3VnaCBmb3IgY29sU3BhbiAvIHJvd1NwYW4gc3VwcG9ydC5cbiAgICAgICAgICAgIC8vIFdyYXBwaW5nIGl0IGluIEpTWCB3b3VsZCBjb2xsYXBzZSB0aGUgZGVzY3JpcHRvciBpbnRvIGFuIGVsZW1lbnQgYW5kXG4gICAgICAgICAgICAvLyBicmVhayBjZWxsIG1lcmdpbmcg4oCUIGRvIG5vdCBcImZpeFwiIHRoaXMgaW50byBhbiBlbGVtZW50LlxuICAgICAgICAgICAgcmVuZGVyOiAodmFsdWUsIHJlY29yZCwgaW5kZXgpID0+IEJvZHlDZWxsKHtcbiAgICAgICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgcmVjb3JkLFxuICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgfSkgfSk7XG4gICAgfSk7XG59XG4vKipcbiAqIFJldHVybnMgY29sdW1ucyByZWFkeSB0byBiZSBwYXNzZWQgdG8gdGhlIHRhYmxlIGtlcm5lbC5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc2hhcGUgSVMgc3RydWN0dXJhbGx5IHRoZSBrZXJuZWwncyBgQ29sdW1uc1R5cGU8VD5gOlxuICogICAtIEV2ZXJ5IGxlYWYgY29sdW1uJ3MgYHJlbmRlcmAgaXMgcmVwbGFjZWQgYnkgYG1ha2VSZW5kZXJUcmFuc2Zvcm1gLCB3aGljaFxuICogICAgIGFsd2F5cyByZXR1cm5zIGEgYFJlYWN0Tm9kZWAgKEJvZHlDZWxsIGhhbmRsZXMgYFRhYmxlQ2VsbENvbnRlbnRWYWx1ZWAgL1xuICogICAgIGBUYWJsZVJlbmRlcmVkQ2VsbGAgZXh0cmFzIGFuZCBlbWl0cyBSZWFjdE5vZGUvUmVuZGVyZWRDZWxsKS5cbiAqICAgLSBFdmVyeSBsZWFmIGNvbHVtbidzIGB0aXRsZWAgaXMgZWl0aGVyIGEgUmVhY3ROb2RlIG9yIHJlcGxhY2VkIGJ5XG4gKiAgICAgYDxIZWFkZXJDZWxsIC8+YC5cbiAqIEJlY2F1c2UgVFMgY2FuJ3QgdHJhY2sgdGhhdCB0aG9zZSByZXBsYWNlbWVudHMgaGF2ZSBoYXBwZW5lZCBhY3Jvc3MgdGhlXG4gKiBgdHJhbnNmb3Jtcy5yZWR1Y2VgIGNoYWluLCBhIHNpbmdsZSBpbnRlcm5hbCBjYXN0IGlzIHJlcXVpcmVkIOKAlCBjYWxsIHNpdGVzIG5vXG4gKiBsb25nZXIgbmVlZCB0aGVpciBvd24gYGFzIHVua25vd24gYXMgSW50ZXJuYWxDb2x1bW5zVHlwZTxUPmAgY2FzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVRhYmxlQ29sdW1ucyhjb25maWcpIHtcbiAgICBjb25zdCB7IGNvbHVtbnMsIHZhcmlhbnQsIGV4cGFuZGFibGUsIHJvd1NlbGVjdGlvbiwgbWVyZ2VkRXhwYW5kZWRSb3dLZXlzLCBtZXJnZWRTZWxlY3RlZFJvd0tleXMsIGNoZWNrYm94UHJvcHNNYXAsIGlzQWxsU2VsZWN0ZWQsIGlzSW5kZXRlcm1pbmF0ZSwgdHJpZ2dlckV4cGFuZCwgdHJpZ2dlclNlbGVjdGlvbiwgdHJpZ2dlclNlbGVjdEFsbCwgc29ydGVyLCBzZXRTb3J0ZXIsIGZpbHRlcnMsIHNldEZpbHRlcnMsIHNpemUsIGdldFJvd0tleSwgfSA9IGNvbmZpZztcbiAgICAvLyBUaGUgdXNlcidzIGRhdGEgY29sdW1ucyBvbmx5IGRlcGVuZCBvbiB0aGUgaGVhZGVyIC8gcmVuZGVyIGlucHV0c1xuICAgIC8vIChzb3J0LCBmaWx0ZXIsIHNpemUpIOKAlCBOT1Qgb24gc2VsZWN0aW9uIG9yIGV4cGFuc2lvbiBzdGF0ZS4gTWVtb2lzaW5nIHRoZW1cbiAgICAvLyBvbiB0aGVpciBvd24gbWVhbnMgdG9nZ2xpbmcgYSBjaGVja2JveCBvciBjaGV2cm9uIG5vIGxvbmdlciByZWJ1aWxkcyBhbmRcbiAgICAvLyByZS13cmFwcyB0aGUgcmVuZGVyIGNsb3N1cmUgb2YgKmV2ZXJ5KiBkYXRhIGNvbHVtbjsgb25seSB0aGUgc21hbGxcbiAgICAvLyBzZWxlY3Rpb24vZXhwYW5kIHByZWZpeCBiZWxvdyBpcyByZWJ1aWx0LiBgbWFrZUhlYWRlclRyYW5zZm9ybWAgYW5kXG4gICAgLy8gYG1ha2VSZW5kZXJUcmFuc2Zvcm1gIGFyZSBwZXItY29sdW1uIGluZGVwZW5kZW50IG1hcHMsIHNvIGFwcGx5aW5nIHRoZW0gdG9cbiAgICAvLyB0aGUgdXNlciBjb2x1bW5zIGFuZCB0aGUgcHJlZml4IHNlcGFyYXRlbHkgYW5kIGNvbmNhdGVuYXRpbmcgaXMgZXF1aXZhbGVudFxuICAgIC8vIHRvIHRoZSBvcmlnaW5hbCBzaW5nbGUgcmVkdWNlLWNoYWluLlxuICAgIC8vXG4gICAgLy8gRGVwLWxpc3Qgbm90ZTogdGhlIHRyYW5zZm9ybSBmYWN0b3JpZXMgY2FwdHVyZSB0aGUgd2hvbGUgYGNvbmZpZ2AsIGJ1dFxuICAgIC8vIGV2ZXJ5IGNhbGxiYWNrIGluIGl0IChgc2V0U29ydGVyYCwgYHRyaWdnZXJFeHBhbmRgLCBgZ2V0Um93S2V5YCwg4oCmKSBpcyBhXG4gICAgLy8gc3RhYmxlIGB1c2VNZW1vaXplZEZuYCwgc28gbGlzdGluZyB0aGUgZ2VudWluZSB2YWx1ZSBpbnB1dHMgaXMgc3VmZmljaWVudFxuICAgIC8vIGFuZCBpbnRlbnRpb25hbC4gS2VlcCB0aGUgbGlzdHMgaW4gc3luYyB3aGVuIGFkZGluZyBpbnB1dHMuXG4gICAgY29uc3QgYmFzZVVzZXJDb2x1bW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBjb2xzID0gbWFrZUhlYWRlclRyYW5zZm9ybShjb25maWcpKGNvbHVtbnMpO1xuICAgICAgICBjb2xzID0gbWFrZVJlbmRlclRyYW5zZm9ybSgpKGNvbHMpO1xuICAgICAgICByZXR1cm4gY29scztcbiAgICB9LCBbY29sdW1ucywgc29ydGVyLCBmaWx0ZXJzLCBzaXplLCBzZXRTb3J0ZXIsIHNldEZpbHRlcnNdKTtcbiAgICAvLyBUaGUgc2VsZWN0aW9uIC8gZXhwYW5kIHByZWZpeCBjYXJyaWVzIGxpdmUgc2VsZWN0ZWQvZXhwYW5kZWQgc3RhdGUgaW4gaXRzXG4gICAgLy8gcmVuZGVyIG91dHB1dCwgd2hpY2ggaXMgdGhlIHNpZ25hbCB0aGF0IHJlLXJlbmRlcnMgdGhlIGFmZmVjdGVkIHJvd3Mg4oCUIHNvIGl0XG4gICAgLy8gbXVzdCByZWJ1aWxkIG9uIGV2ZXJ5IHRvZ2dsZS4gSXQgaXMgYXQgbW9zdCB0d28gY29sdW1ucywgc28gdGhpcyBpcyBjaGVhcC5cbiAgICBjb25zdCBwcmVmaXhDb2x1bW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBjb2xzID0gW107XG4gICAgICAgIGlmIChleHBhbmRhYmxlICYmIGV4cGFuZGFibGUuc2hvd0V4cGFuZENvbHVtbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbHMgPSBtYWtlRXhwYW5kVHJhbnNmb3JtKGNvbmZpZykoY29scyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uVHJhbnNmb3JtID0gcm93U2VsZWN0aW9uID8gbWFrZVNlbGVjdGlvblRyYW5zZm9ybShjb25maWcpIDogbnVsbDtcbiAgICAgICAgaWYgKHNlbGVjdGlvblRyYW5zZm9ybSkge1xuICAgICAgICAgICAgY29scyA9IHNlbGVjdGlvblRyYW5zZm9ybShjb2xzKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBSdW4gdGhlIHByZWZpeCB0aHJvdWdoIHRoZSBzYW1lIGhlYWRlci9yZW5kZXIgbWFwcyB0aGUgdXNlciBjb2x1bW5zIGdldCBzb1xuICAgICAgICAvLyB0aGUgZmluYWwgYXJyYXkgaXMgYnl0ZS1mb3ItYnl0ZSB0aGUgb3JpZ2luYWwgc2luZ2xlLXBpcGVsaW5lIG91dHB1dC5cbiAgICAgICAgY29scyA9IG1ha2VIZWFkZXJUcmFuc2Zvcm0oY29uZmlnKShjb2xzKTtcbiAgICAgICAgY29scyA9IG1ha2VSZW5kZXJUcmFuc2Zvcm0oKShjb2xzKTtcbiAgICAgICAgcmV0dXJuIGNvbHM7XG4gICAgfSwgW1xuICAgICAgICBleHBhbmRhYmxlLFxuICAgICAgICByb3dTZWxlY3Rpb24sXG4gICAgICAgIG1lcmdlZEV4cGFuZGVkUm93S2V5cyxcbiAgICAgICAgbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLFxuICAgICAgICBjaGVja2JveFByb3BzTWFwLFxuICAgICAgICBpc0FsbFNlbGVjdGVkLFxuICAgICAgICBpc0luZGV0ZXJtaW5hdGUsXG4gICAgICAgIHRyaWdnZXJFeHBhbmQsXG4gICAgICAgIHRyaWdnZXJTZWxlY3Rpb24sXG4gICAgICAgIHRyaWdnZXJTZWxlY3RBbGwsXG4gICAgICAgIHNvcnRlcixcbiAgICAgICAgc2V0U29ydGVyLFxuICAgICAgICBmaWx0ZXJzLFxuICAgICAgICBzZXRGaWx0ZXJzLFxuICAgICAgICBzaXplLFxuICAgICAgICBnZXRSb3dLZXksXG4gICAgXSk7XG4gICAgcmV0dXJuIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBsZXQgY29scyA9IFsuLi5wcmVmaXhDb2x1bW5zLCAuLi5iYXNlVXNlckNvbHVtbnNdO1xuICAgICAgICBpZiAodmFyaWFudCA9PT0gJ3N0cm9rZScpIHtcbiAgICAgICAgICAgIGNvbHMgPSBtYWtlU3BhY2VyVHJhbnNmb3JtKCkoY29scyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbHM7XG4gICAgfSwgW3ByZWZpeENvbHVtbnMsIGJhc2VVc2VyQ29sdW1ucywgdmFyaWFudF0pO1xufSIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
292
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZUNvbHVtbnMuanMiLCJjb21wb25lbnRzL1RhYmxlL3NyYy9jb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVDb2x1bW5zLnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfU2VsZWN0aW9uQ29sdW1uIiwiX0V4cGFuZFRyaWdnZXIiLCJfSGVhZGVyQ2VsbCIsIl9Cb2R5Q2VsbCIsIl9jb25zdGFudHMiLCJfY29sdW1uVXRpbCIsIm1ha2VFeHBhbmRUcmFuc2Zvcm0iLCJjb25maWciLCJleHBhbmRhYmxlIiwibWVyZ2VkRXhwYW5kZWRSb3dLZXlzIiwidHJpZ2dlckV4cGFuZCIsImdldFJvd0tleSIsImN1c3RvbUV4cGFuZEljb24iLCJleHBhbmRJY29uIiwicm93RXhwYW5kYWJsZSIsImV4cGFuZGVkS2V5U2V0IiwiU2V0IiwiY29sdW1ucyIsIl9hIiwia2V5IiwiY2xhc3NOYW1lIiwiRVhQQU5EX0NPTFVNTl9DTFMiLCJ3aWR0aCIsImNvbHVtbldpZHRoIiwidGl0bGUiLCJjb2x1bW5UaXRsZSIsImZpeGVkIiwidW5kZWZpbmVkIiwicmVuZGVyIiwiXyIsInJlY29yZCIsImluZGV4IiwiY2FuRXhwYW5kIiwicmVjb3JkS2V5IiwiZXhwYW5kZWQiLCJoYXMiLCJwcmVmaXhDbHMiLCJUQUJMRV9ERUZBVUxUX1BSRUZJWCIsIm9uRXhwYW5kIiwicmVjIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIl9qc3giLCJFeHBhbmRUcmlnZ2VyIiwib25Ub2dnbGUiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwibWFrZVNlbGVjdGlvblRyYW5zZm9ybSIsInJvd1NlbGVjdGlvbiIsIm1lcmdlZFNlbGVjdGVkUm93S2V5cyIsImNoZWNrYm94UHJvcHNNYXAiLCJpc0FsbFNlbGVjdGVkIiwiaXNJbmRldGVybWluYXRlIiwidHJpZ2dlclNlbGVjdGlvbiIsInRyaWdnZXJTZWxlY3RBbGwiLCJzZWxlY3Rpb25UeXBlIiwidHlwZSIsInNlbGVjdGVkS2V5U2V0IiwiT2JqZWN0IiwiYXNzaWduIiwiU0VMRUNUSU9OX0NPTFVNTl9DTFMiLCJyZW5kZXJIZWFkZXIiLCJTZWxlY3Rpb25IZWFkZXJDb250cm9sIiwiY2hlY2tlZCIsImluZGV0ZXJtaW5hdGUiLCJvbkNoYW5nZSIsInJvd1Byb3BzIiwiZ2V0IiwiU2VsZWN0aW9uQ29udHJvbCIsImFyaWFTb3J0Rm9yIiwib3JkZXIiLCJFTVBUWV9GSUxURVJfVkFMVUUiLCJtYWtlSGVhZGVyVHJhbnNmb3JtIiwic29ydGVyIiwic2V0U29ydGVyIiwiZmlsdGVycyIsInNldEZpbHRlcnMiLCJtYXAiLCJjb2x1bW4iLCJfYiIsImlzQ29sdW1uR3JvdXAiLCJpc1NvcnRhYmxlIiwiQm9vbGVhbiIsImFjdGl2ZU9yZGVyIiwiY29sdW1uS2V5IiwiU3RyaW5nIiwiZmlsdGVyU2VsZWN0ZWQiLCJ1c2VyT25IZWFkZXJDZWxsIiwib25IZWFkZXJDZWxsIiwiY29sIiwidXNlckF0dHJzIiwib25GaWx0ZXJDaGFuZ2UiLCJuZXh0IiwiY3VycmVudCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJsZW5ndGgiLCJIZWFkZXJDZWxsIiwic29ydE9yZGVyIiwib25Tb3J0Q2xpY2siLCJjdXJyZW50U29ydGVyIiwiU1BBQ0VSX0NPTFVNTl9DTFMiLCJtYWtlU3BhY2VyVHJhbnNmb3JtIiwibWFrZVJlbmRlclRyYW5zZm9ybSIsInZhbHVlIiwiQm9keUNlbGwiLCJ1c2VUYWJsZUNvbHVtbnMiLCJ2YXJpYW50IiwiYmFzZVVzZXJDb2x1bW5zIiwidXNlTWVtbyIsImNvbHMiLCJwcmVmaXhDb2x1bW5zIiwic2hvd0V4cGFuZENvbHVtbiIsInNlbGVjdGlvblRyYW5zZm9ybSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZ0JBQUEsR0FBQUYsT0FB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Q0FBQztFQUVGLE9BQU8sSUFBQWlHLGNBQU8sRUFBQyxZQUFLO0lBQ2xCLElBQUlDLElBQUksTUFBQWhFLE1BQUEsS0FBQUMsbUJBQUEsYUFBT2dFLGFBQWEsT0FBQWhFLG1CQUFBLGFBQUs2RCxlQUFlLEVBQUM7SUFDakQsSUFBSUQsT0FBTyxLQUFLLFFBQVEsRUFBRTtNQUN4QkcsSUFBSSxHQUFHUixtQkFBbUIsQ0FBQSxDQUFLLENBQUNRLElBQUksQ0FBQztJQUN2QztJQUNBLE9BQU9BLElBQXlDO0VBQ2xELENBQUMsRUFBRSxDQUFDQyxhQUFhLEVBQUVILGVBQWUsRUFBRUQsT0FBTyxDQUFDLENBQUM7QUFDL0MiLCJmaWxlIjoiY29tcG9uZW50cy9UYWJsZS9jb3JlL3VzZVRhYmxlQ29sdW1ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgU2VsZWN0aW9uQ29udHJvbCwgU2VsZWN0aW9uSGVhZGVyQ29udHJvbCB9IGZyb20gJy4uL2ZlYXR1cmVzL1NlbGVjdGlvbkNvbHVtbic7XG5pbXBvcnQgeyBFeHBhbmRUcmlnZ2VyIH0gZnJvbSAnLi4vZmVhdHVyZXMvRXhwYW5kVHJpZ2dlcic7XG5pbXBvcnQgeyBIZWFkZXJDZWxsIH0gZnJvbSAnLi4vcmVuZGVyZXJzL0hlYWRlckNlbGwnO1xuaW1wb3J0IHsgQm9keUNlbGwgfSBmcm9tICcuLi9yZW5kZXJlcnMvQm9keUNlbGwnO1xuaW1wb3J0IHsgVEFCTEVfREVGQVVMVF9QUkVGSVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgaXNDb2x1bW5Hcm91cCB9IGZyb20gJy4vY29sdW1uVXRpbCc7XG5mdW5jdGlvbiBtYWtlRXhwYW5kVHJhbnNmb3JtKGNvbmZpZykge1xuICAgIGNvbnN0IHsgZXhwYW5kYWJsZSwgbWVyZ2VkRXhwYW5kZWRSb3dLZXlzLCB0cmlnZ2VyRXhwYW5kLCBnZXRSb3dLZXkgfSA9IGNvbmZpZztcbiAgICBjb25zdCBjdXN0b21FeHBhbmRJY29uID0gZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmV4cGFuZEljb247XG4gICAgY29uc3Qgcm93RXhwYW5kYWJsZSA9IGV4cGFuZGFibGUgPT09IG51bGwgfHwgZXhwYW5kYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwYW5kYWJsZS5yb3dFeHBhbmRhYmxlO1xuICAgIC8vIE8oMSkgcGVyLXJvdyBleHBhbnNpb24gbG9va3VwIOKAlCBgLmluY2x1ZGVzYCBoZXJlIHJhbiBvbmNlIHBlciByZW5kZXJlZCByb3cuXG4gICAgY29uc3QgZXhwYW5kZWRLZXlTZXQgPSBuZXcgU2V0KG1lcmdlZEV4cGFuZGVkUm93S2V5cyk7XG4gICAgcmV0dXJuIChjb2x1bW5zKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdfX2V4cGFuZF9fJyxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IEVYUEFORF9DT0xVTU5fQ0xTLFxuICAgICAgICAgICAgICAgIC8vIEhvbm9yIGBleHBhbmRhYmxlLmNvbHVtbldpZHRoYCAvIGBjb2x1bW5UaXRsZWAgLyBgZml4ZWRgO1xuICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgdG8gYSBmaXhlZCAxNnB4IGNvbHVtbiAoY2hldnJvbi1vbmx5LCBwYWRkaW5nOiAwKS5cbiAgICAgICAgICAgICAgICB3aWR0aDogKF9hID0gZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmNvbHVtbldpZHRoKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAxNixcbiAgICAgICAgICAgICAgICB0aXRsZTogZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmNvbHVtblRpdGxlLFxuICAgICAgICAgICAgICAgIGZpeGVkOiAoZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmZpeGVkKSA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICA/ICdsZWZ0J1xuICAgICAgICAgICAgICAgICAgICA6IChleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuZml4ZWQpID09PSBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmZpeGVkLFxuICAgICAgICAgICAgICAgIHJlbmRlcjogKF8sIHJlY29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSG9ub3IgYHJvd0V4cGFuZGFibGVgOiB3aGVuIHRoZSBwcmVkaWNhdGUgZGVuaWVzIGEgcmVjb3JkLCByZW5kZXIgbm9cbiAgICAgICAgICAgICAgICAgICAgLy8gY2hldnJvbiBhdCBhbGwgKHRoZSByb3cgaXMgbm9uLWV4cGFuZGFibGUpLlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW5FeHBhbmQgPSByb3dFeHBhbmRhYmxlID8gcm93RXhwYW5kYWJsZShyZWNvcmQpIDogdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjYW5FeHBhbmQpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkS2V5ID0gZ2V0Um93S2V5KHJlY29yZCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBleHBhbmRlZCA9IGV4cGFuZGVkS2V5U2V0LmhhcyhyZWNvcmRLZXkpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY3VzdG9tRXhwYW5kSWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGN1c3RvbUV4cGFuZEljb24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeENsczogVEFCTEVfREVGQVVMVF9QUkVGSVgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25FeHBhbmQ6IChyZWMsIGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckV4cGFuZChnZXRSb3dLZXkocmVjLCBpbmRleCksIHJlYyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChFeHBhbmRUcmlnZ2VyLCB7IGV4cGFuZGVkOiBleHBhbmRlZCwgcmVjb3JkS2V5OiByZWNvcmRLZXksIHJlY29yZDogcmVjb3JkLCBvblRvZ2dsZTogdHJpZ2dlckV4cGFuZCB9KSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAuLi5jb2x1bW5zLFxuICAgICAgICBdO1xuICAgIH07XG59XG5mdW5jdGlvbiBtYWtlU2VsZWN0aW9uVHJhbnNmb3JtKGNvbmZpZykge1xuICAgIHZhciBfYTtcbiAgICBjb25zdCB7IHJvd1NlbGVjdGlvbiwgbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLCBjaGVja2JveFByb3BzTWFwLCBpc0FsbFNlbGVjdGVkLCBpc0luZGV0ZXJtaW5hdGUsIHRyaWdnZXJTZWxlY3Rpb24sIHRyaWdnZXJTZWxlY3RBbGwsIGdldFJvd0tleSwgfSA9IGNvbmZpZztcbiAgICBpZiAoIXJvd1NlbGVjdGlvbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgY29uc3Qgc2VsZWN0aW9uVHlwZSA9IChfYSA9IHJvd1NlbGVjdGlvbi50eXBlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnY2hlY2tib3gnO1xuICAgIC8vIE8oMSkgcGVyLXJvdyBzZWxlY3Rpb24gbG9va3VwIOKAlCBgLmluY2x1ZGVzYCBoZXJlIHJhbiBvbmNlIHBlciByZW5kZXJlZCByb3cuXG4gICAgY29uc3Qgc2VsZWN0ZWRLZXlTZXQgPSBuZXcgU2V0KG1lcmdlZFNlbGVjdGVkUm93S2V5cyk7XG4gICAgcmV0dXJuIChjb2x1bW5zKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IGtleTogJ19fc2VsZWN0aW9uX18nLCBjbGFzc05hbWU6IFNFTEVDVElPTl9DT0xVTU5fQ0xTLCB3aWR0aDogKF9hID0gcm93U2VsZWN0aW9uLmNvbHVtbldpZHRoKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAxNiwgZml4ZWQ6IHJvd1NlbGVjdGlvbi5maXhlZCA/ICdsZWZ0JyA6IHVuZGVmaW5lZCB9LCAoc2VsZWN0aW9uVHlwZSA9PT0gJ2NoZWNrYm94J1xuICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICByZW5kZXJIZWFkZXI6ICgpID0+IChfanN4KFNlbGVjdGlvbkhlYWRlckNvbnRyb2wsIHsgY2hlY2tlZDogaXNBbGxTZWxlY3RlZCwgaW5kZXRlcm1pbmF0ZTogaXNJbmRldGVybWluYXRlLCBvbkNoYW5nZTogdHJpZ2dlclNlbGVjdEFsbCB9KSksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDoge30pKSwgeyByZW5kZXI6IChfLCByZWNvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZEtleSA9IGdldFJvd0tleShyZWNvcmQsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm93UHJvcHMgPSBjaGVja2JveFByb3BzTWFwLmdldChyZWNvcmRLZXkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goU2VsZWN0aW9uQ29udHJvbCwgeyB0eXBlOiBzZWxlY3Rpb25UeXBlLCBjaGVja2VkOiBzZWxlY3RlZEtleVNldC5oYXMocmVjb3JkS2V5KSwgcm93UHJvcHM6IHJvd1Byb3BzLCByZWNvcmRLZXk6IHJlY29yZEtleSwgb25DaGFuZ2U6IHRyaWdnZXJTZWxlY3Rpb24gfSkpO1xuICAgICAgICAgICAgICAgIH0gfSksXG4gICAgICAgICAgICAuLi5jb2x1bW5zLFxuICAgICAgICBdO1xuICAgIH07XG59XG5mdW5jdGlvbiBhcmlhU29ydEZvcihvcmRlcikge1xuICAgIGlmIChvcmRlciA9PT0gJ2FzY2VuZCcpXG4gICAgICAgIHJldHVybiAnYXNjZW5kaW5nJztcbiAgICBpZiAob3JkZXIgPT09ICdkZXNjZW5kJylcbiAgICAgICAgcmV0dXJuICdkZXNjZW5kaW5nJztcbiAgICByZXR1cm4gJ25vbmUnO1xufVxuLy8gU3RhYmxlIGVtcHR5LWZpbHRlciByZWZlcmVuY2UuIFdpdGhvdXQgdGhpcywgYGZpbHRlcnNba2V5XSA/PyBbXWAgY3JlYXRlcyBhXG4vLyBmcmVzaCBgW11gIG9uIGV2ZXJ5IHJlbmRlciwgd2hpY2ggdGhyYXNoZXMgYEZpbHRlclRyaWdnZXJgJ3Ncbi8vIGB1c2VFZmZlY3QoW3NlbGVjdGVkS2V5c10pYCBhbmQgY2F1c2VzIGFuIGluZmluaXRlIHNldFN0YXRlIGxvb3AgYWZ0ZXJcbi8vIGNvbmZpcm0gLyByZXNldC5cbmNvbnN0IEVNUFRZX0ZJTFRFUl9WQUxVRSA9IFtdO1xuZnVuY3Rpb24gbWFrZUhlYWRlclRyYW5zZm9ybShjb25maWcpIHtcbiAgICBjb25zdCB7IHNvcnRlciwgc2V0U29ydGVyLCBmaWx0ZXJzLCBzZXRGaWx0ZXJzIH0gPSBjb25maWc7XG4gICAgcmV0dXJuIChjb2x1bW5zKSA9PiBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChpc0NvbHVtbkdyb3VwKGNvbHVtbikpXG4gICAgICAgICAgICByZXR1cm4gY29sdW1uO1xuICAgICAgICBjb25zdCBpc1NvcnRhYmxlID0gQm9vbGVhbihjb2x1bW4uc29ydGVyKTtcbiAgICAgICAgY29uc3QgYWN0aXZlT3JkZXIgPSBzb3J0ZXIuY29sdW1uS2V5ID09PSBjb2x1bW4ua2V5ID8gKF9hID0gc29ydGVyLm9yZGVyKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsIDogbnVsbDtcbiAgICAgICAgY29uc3QgY29sdW1uS2V5ID0gY29sdW1uLmtleSAhPSBudWxsID8gU3RyaW5nKGNvbHVtbi5rZXkpIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBmaWx0ZXJTZWxlY3RlZCA9IGNvbHVtbktleSAhPSBudWxsID8gKChfYiA9IGZpbHRlcnNbY29sdW1uS2V5XSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogRU1QVFlfRklMVEVSX1ZBTFVFKSA6IEVNUFRZX0ZJTFRFUl9WQUxVRTtcbiAgICAgICAgLy8gQ29tcG9zZSBvbkhlYWRlckNlbGwgc28gd2UgZG9uJ3QgY2xvYmJlciB1c2VyLXByb3ZpZGVkIGF0dHJpYnV0ZXMuXG4gICAgICAgIGNvbnN0IHVzZXJPbkhlYWRlckNlbGwgPSBjb2x1bW4ub25IZWFkZXJDZWxsO1xuICAgICAgICBjb25zdCBvbkhlYWRlckNlbGwgPSAoY29sLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgY29uc3QgdXNlckF0dHJzID0gKF9hID0gdXNlck9uSGVhZGVyQ2VsbCA9PT0gbnVsbCB8fCB1c2VyT25IZWFkZXJDZWxsID09PSB2b2lkIDAgPyB2b2lkIDAgOiB1c2VyT25IZWFkZXJDZWxsKGNvbCwgaW5kZXgpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB7fTtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHVzZXJBdHRycyksIChpc1NvcnRhYmxlID8geyAnYXJpYS1zb3J0JzogYXJpYVNvcnRGb3IoYWN0aXZlT3JkZXIpIH0gOiBudWxsKSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uRmlsdGVyQ2hhbmdlID0gKG5leHQpID0+IHtcbiAgICAgICAgICAgIGlmIChjb2x1bW5LZXkgPT0gbnVsbClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXRGaWx0ZXJzKChjdXJyZW50KSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdXJyZW50KSwgeyBbY29sdW1uS2V5XTogbmV4dC5sZW5ndGggPyBuZXh0IDogbnVsbCB9KSkpO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjb2x1bW4pLCB7IG9uSGVhZGVyQ2VsbCwgdGl0bGU6IGNvbHVtbi5yZW5kZXJIZWFkZXJcbiAgICAgICAgICAgICAgICA/IGNvbHVtbi5yZW5kZXJIZWFkZXIoeyBjb2x1bW4gfSlcbiAgICAgICAgICAgICAgICA6IChfanN4KEhlYWRlckNlbGwsIHsgY29sdW1uOiBjb2x1bW4sIHNvcnRPcmRlcjogYWN0aXZlT3JkZXIsIG9uU29ydENsaWNrOiAoKSA9PiBzZXRTb3J0ZXIoKGN1cnJlbnRTb3J0ZXIpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5LZXk6IGNvbHVtbi5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogY3VycmVudFNvcnRlci5jb2x1bW5LZXkgIT09IGNvbHVtbi5rZXkgfHwgY3VycmVudFNvcnRlci5vcmRlciA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2FzY2VuZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnRTb3J0ZXIub3JkZXIgPT09ICdhc2NlbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2Rlc2NlbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgfSkpLCBmaWx0ZXJTZWxlY3RlZDogZmlsdGVyU2VsZWN0ZWQsIG9uRmlsdGVyQ2hhbmdlOiBvbkZpbHRlckNoYW5nZSB9KSkgfSk7XG4gICAgfSk7XG59XG5jb25zdCBTUEFDRVJfQ09MVU1OX0NMUyA9ICdvbS1jb21wb25lbnQtdWktdGFibGUtY2VsbC0tc3BhY2VyJztcbmNvbnN0IEVYUEFORF9DT0xVTU5fQ0xTID0gJ29tLWNvbXBvbmVudC11aS10YWJsZS1jZWxsLS1leHBhbmQnO1xuY29uc3QgU0VMRUNUSU9OX0NPTFVNTl9DTFMgPSAnb20tY29tcG9uZW50LXVpLXRhYmxlLWNlbGwtLXNlbGVjdGlvbic7XG5mdW5jdGlvbiBtYWtlU3BhY2VyVHJhbnNmb3JtKCkge1xuICAgIHJldHVybiAoY29sdW1ucykgPT4gW1xuICAgICAgICB7IGtleTogJ19fc3BhY2VyX3N0YXJ0X18nLCB3aWR0aDogMTYsIHRpdGxlOiAnJywgY2xhc3NOYW1lOiBTUEFDRVJfQ09MVU1OX0NMUywgcmVuZGVyOiAoKSA9PiBudWxsIH0sXG4gICAgICAgIC4uLmNvbHVtbnMsXG4gICAgICAgIHsga2V5OiAnX19zcGFjZXJfZW5kX18nLCB3aWR0aDogMTYsIHRpdGxlOiAnJywgY2xhc3NOYW1lOiBTUEFDRVJfQ09MVU1OX0NMUywgcmVuZGVyOiAoKSA9PiBudWxsIH0sXG4gICAgXTtcbn1cbmZ1bmN0aW9uIG1ha2VSZW5kZXJUcmFuc2Zvcm0oKSB7XG4gICAgcmV0dXJuIChjb2x1bW5zKSA9PiBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGlmIChpc0NvbHVtbkdyb3VwKGNvbHVtbikpXG4gICAgICAgICAgICByZXR1cm4gY29sdW1uO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjb2x1bW4pLCB7IFxuICAgICAgICAgICAgLy8gQm9keUNlbGwgaXMgaW50ZW50aW9uYWxseSBDQUxMRUQgYXMgYSBmdW5jdGlvbiwgbm90IHJlbmRlcmVkIGFzXG4gICAgICAgICAgICAvLyBgPEJvZHlDZWxsIC8+YC4gVGhlIGtlcm5lbCdzIGByZW5kZXJgIGNvbnRyYWN0IGFsbG93cyByZXR1cm5pbmcgZWl0aGVyXG4gICAgICAgICAgICAvLyBhIFJlYWN0Tm9kZSBvciBhIGB7IGNoaWxkcmVuLCBwcm9wcyB9YCBjZWxsLXNwYW5uaW5nIGRlc2NyaXB0b3IsIGFuZFxuICAgICAgICAgICAgLy8gQm9keUNlbGwgZm9yd2FyZHMgdGhhdCBkZXNjcmlwdG9yIHRocm91Z2ggZm9yIGNvbFNwYW4gLyByb3dTcGFuIHN1cHBvcnQuXG4gICAgICAgICAgICAvLyBXcmFwcGluZyBpdCBpbiBKU1ggd291bGQgY29sbGFwc2UgdGhlIGRlc2NyaXB0b3IgaW50byBhbiBlbGVtZW50IGFuZFxuICAgICAgICAgICAgLy8gYnJlYWsgY2VsbCBtZXJnaW5nIOKAlCBkbyBub3QgXCJmaXhcIiB0aGlzIGludG8gYW4gZWxlbWVudC5cbiAgICAgICAgICAgIHJlbmRlcjogKHZhbHVlLCByZWNvcmQsIGluZGV4KSA9PiBCb2R5Q2VsbCh7XG4gICAgICAgICAgICAgICAgY29sdW1uLFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgIHJlY29yZCxcbiAgICAgICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIH0pIH0pO1xuICAgIH0pO1xufVxuLyoqXG4gKiBSZXR1cm5zIGNvbHVtbnMgcmVhZHkgdG8gYmUgcGFzc2VkIHRvIHRoZSB0YWJsZSBrZXJuZWwuXG4gKlxuICogVGhlIHJldHVybmVkIHNoYXBlIElTIHN0cnVjdHVyYWxseSB0aGUga2VybmVsJ3MgYENvbHVtbnNUeXBlPFQ+YDpcbiAqICAgLSBFdmVyeSBsZWFmIGNvbHVtbidzIGByZW5kZXJgIGlzIHJlcGxhY2VkIGJ5IGBtYWtlUmVuZGVyVHJhbnNmb3JtYCwgd2hpY2hcbiAqICAgICBhbHdheXMgcmV0dXJucyBhIGBSZWFjdE5vZGVgIChCb2R5Q2VsbCBoYW5kbGVzIGBUYWJsZUNlbGxDb250ZW50VmFsdWVgIC9cbiAqICAgICBgVGFibGVSZW5kZXJlZENlbGxgIGV4dHJhcyBhbmQgZW1pdHMgUmVhY3ROb2RlL1JlbmRlcmVkQ2VsbCkuXG4gKiAgIC0gRXZlcnkgbGVhZiBjb2x1bW4ncyBgdGl0bGVgIGlzIGVpdGhlciBhIFJlYWN0Tm9kZSBvciByZXBsYWNlZCBieVxuICogICAgIGA8SGVhZGVyQ2VsbCAvPmAuXG4gKiBCZWNhdXNlIFRTIGNhbid0IHRyYWNrIHRoYXQgdGhvc2UgcmVwbGFjZW1lbnRzIGhhdmUgaGFwcGVuZWQgYWNyb3NzIHRoZVxuICogYHRyYW5zZm9ybXMucmVkdWNlYCBjaGFpbiwgYSBzaW5nbGUgaW50ZXJuYWwgY2FzdCBpcyByZXF1aXJlZCDigJQgY2FsbCBzaXRlcyBub1xuICogbG9uZ2VyIG5lZWQgdGhlaXIgb3duIGBhcyB1bmtub3duIGFzIEludGVybmFsQ29sdW1uc1R5cGU8VD5gIGNhc3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VUYWJsZUNvbHVtbnMoY29uZmlnKSB7XG4gICAgY29uc3QgeyBjb2x1bW5zLCB2YXJpYW50LCBleHBhbmRhYmxlLCByb3dTZWxlY3Rpb24sIG1lcmdlZEV4cGFuZGVkUm93S2V5cywgbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLCBjaGVja2JveFByb3BzTWFwLCBpc0FsbFNlbGVjdGVkLCBpc0luZGV0ZXJtaW5hdGUsIHRyaWdnZXJFeHBhbmQsIHRyaWdnZXJTZWxlY3Rpb24sIHRyaWdnZXJTZWxlY3RBbGwsIHNvcnRlciwgc2V0U29ydGVyLCBmaWx0ZXJzLCBzZXRGaWx0ZXJzLCBnZXRSb3dLZXksIH0gPSBjb25maWc7XG4gICAgLy8gVGhlIHVzZXIncyBkYXRhIGNvbHVtbnMgb25seSBkZXBlbmQgb24gdGhlIGhlYWRlciAvIHJlbmRlciBpbnB1dHNcbiAgICAvLyAoc29ydCwgZmlsdGVyKSDigJQgTk9UIG9uIHNlbGVjdGlvbiBvciBleHBhbnNpb24gc3RhdGUuIE1lbW9pc2luZyB0aGVtXG4gICAgLy8gb24gdGhlaXIgb3duIG1lYW5zIHRvZ2dsaW5nIGEgY2hlY2tib3ggb3IgY2hldnJvbiBubyBsb25nZXIgcmVidWlsZHMgYW5kXG4gICAgLy8gcmUtd3JhcHMgdGhlIHJlbmRlciBjbG9zdXJlIG9mICpldmVyeSogZGF0YSBjb2x1bW47IG9ubHkgdGhlIHNtYWxsXG4gICAgLy8gc2VsZWN0aW9uL2V4cGFuZCBwcmVmaXggYmVsb3cgaXMgcmVidWlsdC4gYG1ha2VIZWFkZXJUcmFuc2Zvcm1gIGFuZFxuICAgIC8vIGBtYWtlUmVuZGVyVHJhbnNmb3JtYCBhcmUgcGVyLWNvbHVtbiBpbmRlcGVuZGVudCBtYXBzLCBzbyBhcHBseWluZyB0aGVtIHRvXG4gICAgLy8gdGhlIHVzZXIgY29sdW1ucyBhbmQgdGhlIHByZWZpeCBzZXBhcmF0ZWx5IGFuZCBjb25jYXRlbmF0aW5nIGlzIGVxdWl2YWxlbnRcbiAgICAvLyB0byB0aGUgb3JpZ2luYWwgc2luZ2xlIHJlZHVjZS1jaGFpbi5cbiAgICAvL1xuICAgIC8vIERlcC1saXN0IG5vdGU6IHRoZSB0cmFuc2Zvcm0gZmFjdG9yaWVzIGNhcHR1cmUgdGhlIHdob2xlIGBjb25maWdgLCBidXRcbiAgICAvLyBldmVyeSBjYWxsYmFjayBpbiBpdCAoYHNldFNvcnRlcmAsIGB0cmlnZ2VyRXhwYW5kYCwgYGdldFJvd0tleWAsIOKApikgaXMgYVxuICAgIC8vIHN0YWJsZSBgdXNlTWVtb2l6ZWRGbmAsIHNvIGxpc3RpbmcgdGhlIGdlbnVpbmUgdmFsdWUgaW5wdXRzIGlzIHN1ZmZpY2llbnRcbiAgICAvLyBhbmQgaW50ZW50aW9uYWwuIEtlZXAgdGhlIGxpc3RzIGluIHN5bmMgd2hlbiBhZGRpbmcgaW5wdXRzLlxuICAgIGNvbnN0IGJhc2VVc2VyQ29sdW1ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBsZXQgY29scyA9IG1ha2VIZWFkZXJUcmFuc2Zvcm0oY29uZmlnKShjb2x1bW5zKTtcbiAgICAgICAgY29scyA9IG1ha2VSZW5kZXJUcmFuc2Zvcm0oKShjb2xzKTtcbiAgICAgICAgcmV0dXJuIGNvbHM7XG4gICAgfSwgW2NvbHVtbnMsIHNvcnRlciwgZmlsdGVycywgc2V0U29ydGVyLCBzZXRGaWx0ZXJzXSk7XG4gICAgLy8gVGhlIHNlbGVjdGlvbiAvIGV4cGFuZCBwcmVmaXggY2FycmllcyBsaXZlIHNlbGVjdGVkL2V4cGFuZGVkIHN0YXRlIGluIGl0c1xuICAgIC8vIHJlbmRlciBvdXRwdXQsIHdoaWNoIGlzIHRoZSBzaWduYWwgdGhhdCByZS1yZW5kZXJzIHRoZSBhZmZlY3RlZCByb3dzIOKAlCBzbyBpdFxuICAgIC8vIG11c3QgcmVidWlsZCBvbiBldmVyeSB0b2dnbGUuIEl0IGlzIGF0IG1vc3QgdHdvIGNvbHVtbnMsIHNvIHRoaXMgaXMgY2hlYXAuXG4gICAgY29uc3QgcHJlZml4Q29sdW1ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBsZXQgY29scyA9IFtdO1xuICAgICAgICBpZiAoZXhwYW5kYWJsZSAmJiBleHBhbmRhYmxlLnNob3dFeHBhbmRDb2x1bW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBjb2xzID0gbWFrZUV4cGFuZFRyYW5zZm9ybShjb25maWcpKGNvbHMpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvblRyYW5zZm9ybSA9IHJvd1NlbGVjdGlvbiA/IG1ha2VTZWxlY3Rpb25UcmFuc2Zvcm0oY29uZmlnKSA6IG51bGw7XG4gICAgICAgIGlmIChzZWxlY3Rpb25UcmFuc2Zvcm0pIHtcbiAgICAgICAgICAgIGNvbHMgPSBzZWxlY3Rpb25UcmFuc2Zvcm0oY29scyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUnVuIHRoZSBwcmVmaXggdGhyb3VnaCB0aGUgc2FtZSBoZWFkZXIvcmVuZGVyIG1hcHMgdGhlIHVzZXIgY29sdW1ucyBnZXQgc29cbiAgICAgICAgLy8gdGhlIGZpbmFsIGFycmF5IGlzIGJ5dGUtZm9yLWJ5dGUgdGhlIG9yaWdpbmFsIHNpbmdsZS1waXBlbGluZSBvdXRwdXQuXG4gICAgICAgIGNvbHMgPSBtYWtlSGVhZGVyVHJhbnNmb3JtKGNvbmZpZykoY29scyk7XG4gICAgICAgIGNvbHMgPSBtYWtlUmVuZGVyVHJhbnNmb3JtKCkoY29scyk7XG4gICAgICAgIHJldHVybiBjb2xzO1xuICAgIH0sIFtcbiAgICAgICAgZXhwYW5kYWJsZSxcbiAgICAgICAgcm93U2VsZWN0aW9uLFxuICAgICAgICBtZXJnZWRFeHBhbmRlZFJvd0tleXMsXG4gICAgICAgIG1lcmdlZFNlbGVjdGVkUm93S2V5cyxcbiAgICAgICAgY2hlY2tib3hQcm9wc01hcCxcbiAgICAgICAgaXNBbGxTZWxlY3RlZCxcbiAgICAgICAgaXNJbmRldGVybWluYXRlLFxuICAgICAgICB0cmlnZ2VyRXhwYW5kLFxuICAgICAgICB0cmlnZ2VyU2VsZWN0aW9uLFxuICAgICAgICB0cmlnZ2VyU2VsZWN0QWxsLFxuICAgICAgICBzb3J0ZXIsXG4gICAgICAgIHNldFNvcnRlcixcbiAgICAgICAgZmlsdGVycyxcbiAgICAgICAgc2V0RmlsdGVycyxcbiAgICAgICAgZ2V0Um93S2V5LFxuICAgIF0pO1xuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgbGV0IGNvbHMgPSBbLi4ucHJlZml4Q29sdW1ucywgLi4uYmFzZVVzZXJDb2x1bW5zXTtcbiAgICAgICAgaWYgKHZhcmlhbnQgPT09ICdzdHJva2UnKSB7XG4gICAgICAgICAgICBjb2xzID0gbWFrZVNwYWNlclRyYW5zZm9ybSgpKGNvbHMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb2xzO1xuICAgIH0sIFtwcmVmaXhDb2x1bW5zLCBiYXNlVXNlckNvbHVtbnMsIHZhcmlhbnRdKTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -44,8 +44,6 @@ var useTableSetup = exports.useTableSetup = function useTableSetup(props) {
|
|
|
44
44
|
className = _props$className === void 0 ? '' : _props$className,
|
|
45
45
|
_props$prefixCls = props.prefixCls,
|
|
46
46
|
prefixCls = _props$prefixCls === void 0 ? _constants.TABLE_DEFAULT_PREFIX : _props$prefixCls,
|
|
47
|
-
_props$size = props.size,
|
|
48
|
-
size = _props$size === void 0 ? _constants.TABLE_DEFAULT_SIZE : _props$size,
|
|
49
47
|
_props$variant = props.variant,
|
|
50
48
|
variant = _props$variant === void 0 ? _constants.TABLE_DEFAULT_VARIANT : _props$variant,
|
|
51
49
|
columns = props.columns,
|
|
@@ -72,7 +70,7 @@ var useTableSetup = exports.useTableSetup = function useTableSetup(props) {
|
|
|
72
70
|
components = props.components,
|
|
73
71
|
direction = props.direction,
|
|
74
72
|
rowHoverable = props.rowHoverable,
|
|
75
|
-
rest = __rest(props, ["className", "prefixCls", "
|
|
73
|
+
rest = __rest(props, ["className", "prefixCls", "variant", "columns", "dataSource", "rowKey", "empty", "bordered", "scroll", "sticky", "pagination", "rowSelection", "loading", "onChange", "childrenColumnName", "indentSize", "expandable", "onRow", "rowClassName", "summary", "footer", "showHeader", "tableLayout", "components", "direction", "rowHoverable"]);
|
|
76
74
|
// Pulled out of `rest` so it doesn't land on the wrapper div; each entry point
|
|
77
75
|
// forwards its own `scroll` to the kernel (see ForwardedKernelProps note).
|
|
78
76
|
void _scroll;
|
|
@@ -111,7 +109,6 @@ var useTableSetup = exports.useTableSetup = function useTableSetup(props) {
|
|
|
111
109
|
});
|
|
112
110
|
var renderedColumns = (0, _useTableColumns.useTableColumns)({
|
|
113
111
|
columns: columns,
|
|
114
|
-
size: size,
|
|
115
112
|
variant: variant,
|
|
116
113
|
expandable: expandable,
|
|
117
114
|
mergedExpandedRowKeys: expand.mergedExpandedRowKeys,
|
|
@@ -186,7 +183,7 @@ var useTableSetup = exports.useTableSetup = function useTableSetup(props) {
|
|
|
186
183
|
})
|
|
187
184
|
}) : null;
|
|
188
185
|
var wrapperClassName = (0, _classnames.joinCls)("".concat(prefixCls, "-wrapper"), isLoading && "".concat(prefixCls, "-wrapper--loading"), bordered && "".concat(prefixCls, "-wrapper--bordered"));
|
|
189
|
-
var tableClassName = (0, _classnames.joinCls)(cls(), cls(
|
|
186
|
+
var tableClassName = (0, _classnames.joinCls)(cls(), cls(variant), rowHoverable === false && cls('no-hover'), className);
|
|
190
187
|
var emptyText = isLoading && !dataSource.length ? (0, _jsxRuntime.jsx)("span", {}) : (0, _jsxRuntime.jsx)(_EmptyState.TableEmptyState, {
|
|
191
188
|
empty: empty
|
|
192
189
|
});
|
|
@@ -219,4 +216,4 @@ var useTableSetup = exports.useTableSetup = function useTableSetup(props) {
|
|
|
219
216
|
paginationNode: paginationNode
|
|
220
217
|
};
|
|
221
218
|
};
|
|
222
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZVNldHVwLmpzIiwiY29tcG9uZW50cy9UYWJsZS9zcmMvY29tcG9uZW50cy9UYWJsZS9jb3JlL3VzZVRhYmxlU2V0dXAudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl91c2VNZW1vaXplZEZuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfUGFnaW5hdGlvbiIsIl9TcGlubmVyIiwiX0V4cGFuZGVkUm93Q29udGFpbmVyIiwiX0VtcHR5U3RhdGUiLCJfY29uc3RhbnRzIiwiX3VzZVRhYmxlRGF0YVBpcGVsaW5lIiwiX3VzZVRhYmxlU2VsZWN0aW9uIiwiX3VzZVRhYmxlRXhwYW5kIiwiX3VzZVRhYmxlQ29sdW1ucyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidXNlVGFibGVTZXR1cCIsImV4cG9ydHMiLCJwcm9wcyIsIl9hIiwiX2IiLCJfYyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiVEFCTEVfREVGQVVMVF9QUkVGSVgiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJUQUJMRV9ERUZBVUxUX1NJWkUiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJUQUJMRV9ERUZBVUxUX1ZBUklBTlQiLCJjb2x1bW5zIiwiZGF0YVNvdXJjZSIsInJvd0tleSIsImVtcHR5IiwiYm9yZGVyZWQiLCJfc2Nyb2xsIiwic2Nyb2xsIiwic3RpY2t5IiwicGFnaW5hdGlvbiIsInJvd1NlbGVjdGlvbiIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsIm9uQ2hhbmdlIiwiY2hpbGRyZW5Db2x1bW5OYW1lIiwiaW5kZW50U2l6ZSIsImV4cGFuZGFibGUiLCJvblJvdyIsInJvd0NsYXNzTmFtZSIsInN1bW1hcnkiLCJmb290ZXIiLCJzaG93SGVhZGVyIiwidGFibGVMYXlvdXQiLCJjb21wb25lbnRzIiwiZGlyZWN0aW9uIiwicm93SG92ZXJhYmxlIiwicmVzdCIsImNscyIsImNsYXNzbmFtZXMiLCJUQUJMRV9CTE9DSyIsImxvYWRpbmdDb25maWciLCJzcGlubmluZyIsImlzTG9hZGluZyIsImxvYWRpbmdJbmRpY2F0b3IiLCJpbmRpY2F0b3IiLCJfanN4IiwiU3Bpbm5lciIsInR5cGUiLCJ0aXRsZSIsImdldFJvd0tleSIsInVzZU1lbW9pemVkRm4iLCJyZWNvcmQiLCJpbmRleCIsInBpcGVsaW5lIiwidXNlVGFibGVEYXRhUGlwZWxpbmUiLCJzZWxlY3Rpb24iLCJ1c2VUYWJsZVNlbGVjdGlvbiIsImN1cnJlbnREYXRhU291cmNlIiwiZXhwYW5kIiwidXNlVGFibGVFeHBhbmQiLCJyZW5kZXJlZENvbHVtbnMiLCJ1c2VUYWJsZUNvbHVtbnMiLCJtZXJnZWRFeHBhbmRlZFJvd0tleXMiLCJ0cmlnZ2VyRXhwYW5kIiwibWVyZ2VkU2VsZWN0ZWRSb3dLZXlzIiwiY2hlY2tib3hQcm9wc01hcCIsImlzQWxsU2VsZWN0ZWQiLCJpc0luZGV0ZXJtaW5hdGUiLCJ0cmlnZ2VyU2VsZWN0aW9uIiwidHJpZ2dlclNlbGVjdEFsbCIsInNvcnRlciIsInNldFNvcnRlciIsImZpbHRlcnMiLCJzZXRGaWx0ZXJzIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXhwYW5kZWRSb3dSZW5kZXIiLCJ1bmRlZmluZWQiLCJjb25zb2xlIiwid2FybiIsIndyYXBwZWRFeHBhbmRlZFJvd1JlbmRlciIsImluZGVudCIsImV4cGFuZGVkIiwicm93RXhwYW5kYWJsZSIsIkV4cGFuZGVkUm93Q29udGFpbmVyIiwiY2hpbGRyZW4iLCJrZXJuZWxPbkV4cGFuZCIsInJlY29yZEtleSIsIm9uS2VybmVsRXhwYW5kIiwibWVyZ2VkRXhwYW5kYWJsZSIsInVzZU1lbW8iLCJhc3NpZ24iLCJleHBhbmRlZFJvd0tleXMiLCJzaG93RXhwYW5kQ29sdW1uIiwib25FeHBhbmQiLCJyZXNvbHZlZFBhZ2luYXRpb24iLCJjdXJyZW50IiwicGFnZVNpemUiLCJwYWdpbmF0aW9uTm9kZSIsImNvbmNhdCIsIlBhZ2luYXRpb24iLCJ0b3RhbCIsIm5leHRQYWdlIiwibmV4dFBhZ2VTaXplIiwic2V0UGFnaW5hdGlvbiIsImN1cnJlbnRQYWdpbmF0aW9uIiwid3JhcHBlckNsYXNzTmFtZSIsImpvaW5DbHMiLCJ0YWJsZUNsYXNzTmFtZSIsImVtcHR5VGV4dCIsIlRhYmxlRW1wdHlTdGF0ZSIsIndyYXBwZXJIdG1sUHJvcHMiLCJmb3J3YXJkZWRLZXJuZWxQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxjQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFDLHVCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBTSxXQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxxQkFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsV0FBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsVUFBQSxHQUFBVixPQUFBO0FBTUEsSUFBQVcscUJBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLGtCQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxlQUFBLEdB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SUFBQ2pHLEtBQUssRUFBRUE7RUFBSyxDQUFBLENBQUk7RUFFaEYsT0FBTztJQUNMWCxTQUFTLEVBQVRBLFNBQVM7SUFDVHdHLGdCQUFnQixFQUFoQkEsZ0JBQWdCO0lBQ2hCRSxjQUFjLEVBQWRBLGNBQWM7SUFDZHZGLE9BQU8sRUFBRW9CLFNBQVM7SUFDbEJDLGdCQUFnQixFQUFoQkEsZ0JBQWdCO0lBQ2hCaUIsZUFBZSxFQUFmQSxlQUFlO0lBQ2ZILGlCQUFpQixFQUFFSixRQUFRLENBQUNJLGlCQUFpQjtJQUM3Q2lDLGdCQUFnQixFQUFoQkEsZ0JBQWdCO0lBQ2hCb0IsU0FBUyxFQUFUQSxTQUFTO0lBQ1RFLGdCQUFnQixFQUFFNUUsSUFBSTtJQUN0QjZFLG9CQUFvQixFQUFFO01BQ3BCcEcsTUFBTSxFQUFFQSxNQUF1QztNQUMvQ1csa0JBQWtCLEVBQWxCQSxrQkFBa0I7TUFDbEJDLFVBQVUsRUFBVkEsVUFBVTtNQUNWRSxLQUFLLEVBQUxBLEtBQUs7TUFDTEMsWUFBWSxFQUFaQSxZQUFZO01BQ1pDLE9BQU8sRUFBUEEsT0FBTztNQUNQQyxNQUFNLEVBQU5BLE1BQU07TUFDTkMsVUFBVSxFQUFWQSxVQUFVO01BQ1ZDLFdBQVcsRUFBWEEsV0FBVztNQUNYQyxVQUFVLEVBQVZBLFVBQVU7TUFDVkMsU0FBUyxFQUFUQSxTQUFTO01BQ1RDLFlBQVksRUFBWkEsWUFBWTtNQUNaakIsTUFBTSxFQUFOQTtJRHhJRSxDQ3lJSDtJQUNEaUYsY0FBYyxFQUFkQTtFRHhJQSxDQ3lJRDtBQUNILENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9UYWJsZS9jb3JlL3VzZVRhYmxlU2V0dXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgY2xhc3NuYW1lcywgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi4vLi4vUGFnaW5hdGlvbic7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi4vLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBFeHBhbmRlZFJvd0NvbnRhaW5lciB9IGZyb20gJy4uL3JlbmRlcmVycy9FeHBhbmRlZFJvd0NvbnRhaW5lcic7XG5pbXBvcnQgeyBUYWJsZUVtcHR5U3RhdGUgfSBmcm9tICcuLi9yZW5kZXJlcnMvRW1wdHlTdGF0ZSc7XG5pbXBvcnQgeyBUQUJMRV9CTE9DSywgVEFCTEVfREVGQVVMVF9QUkVGSVgsIFRBQkxFX0RFRkFVTFRfU0laRSwgVEFCTEVfREVGQVVMVF9WQVJJQU5ULCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB1c2VUYWJsZURhdGFQaXBlbGluZSB9IGZyb20gJy4vdXNlVGFibGVEYXRhUGlwZWxpbmUnO1xuaW1wb3J0IHsgdXNlVGFibGVTZWxlY3Rpb24gfSBmcm9tICcuL3VzZVRhYmxlU2VsZWN0aW9uJztcbmltcG9ydCB7IHVzZVRhYmxlRXhwYW5kIH0gZnJvbSAnLi91c2VUYWJsZUV4cGFuZCc7XG5pbXBvcnQgeyB1c2VUYWJsZUNvbHVtbnMgfSBmcm9tICcuL3VzZVRhYmxlQ29sdW1ucyc7XG4vKipcbiAqIENlbnRyYWxpc2VzIHRoZSB3aXJpbmcgc2hhcmVkIGJ5IGBUYWJsZWAgYW5kIGBWaXJ0dWFsVGFibGVgOlxuICogIC0gZGVzdHJ1Y3R1cmUgcHJvcHNcbiAqICAtIHJlc29sdmUgcm93IGtleVxuICogIC0gcnVuIHBpcGVsaW5lIC8gc2VsZWN0aW9uIC8gZXhwYW5kIC8gY29sdW1uIHRyYW5zZm9ybXNcbiAqICAtIGJ1aWxkIGtlcm5lbC1yZWFkeSBwcm9wc1xuICogIC0gc3BsaXQgb2ZmIHBhc3MtdGhyb3VnaCBIVE1MIGF0dHJpYnV0ZXMgc28gdGhleSBjYW4gbGFuZCBvbiB0aGUgb3V0ZXIgd3JhcHBlclxuICogICAgZGl2IChpbnN0ZWFkIG9mIGJlaW5nIHNwcmVhZCB1bnR5cGVkIGludG8gdGhlIGtlcm5lbCB2aWEgYHJlc3QgYXMgb2JqZWN0YCkuXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VUYWJsZVNldHVwID0gKHByb3BzKSA9PiB7XG4gICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gVEFCTEVfREVGQVVMVF9QUkVGSVgsIHNpemUgPSBUQUJMRV9ERUZBVUxUX1NJWkUsIHZhcmlhbnQgPSBUQUJMRV9ERUZBVUxUX1ZBUklBTlQsIGNvbHVtbnMsIGRhdGFTb3VyY2UsIHJvd0tleSwgZW1wdHksIGJvcmRlcmVkLCBzY3JvbGw6IF9zY3JvbGwsIHN0aWNreSwgcGFnaW5hdGlvbiwgcm93U2VsZWN0aW9uLCBsb2FkaW5nID0gZmFsc2UsIG9uQ2hhbmdlLCBjaGlsZHJlbkNvbHVtbk5hbWUsIGluZGVudFNpemUsIGV4cGFuZGFibGUsIG9uUm93LCByb3dDbGFzc05hbWUsIHN1bW1hcnksIGZvb3Rlciwgc2hvd0hlYWRlciwgdGFibGVMYXlvdXQsIGNvbXBvbmVudHMsIGRpcmVjdGlvbiwgcm93SG92ZXJhYmxlIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwicHJlZml4Q2xzXCIsIFwic2l6ZVwiLCBcInZhcmlhbnRcIiwgXCJjb2x1bW5zXCIsIFwiZGF0YVNvdXJjZVwiLCBcInJvd0tleVwiLCBcImVtcHR5XCIsIFwiYm9yZGVyZWRcIiwgXCJzY3JvbGxcIiwgXCJzdGlja3lcIiwgXCJwYWdpbmF0aW9uXCIsIFwicm93U2VsZWN0aW9uXCIsIFwibG9hZGluZ1wiLCBcIm9uQ2hhbmdlXCIsIFwiY2hpbGRyZW5Db2x1bW5OYW1lXCIsIFwiaW5kZW50U2l6ZVwiLCBcImV4cGFuZGFibGVcIiwgXCJvblJvd1wiLCBcInJvd0NsYXNzTmFtZVwiLCBcInN1bW1hcnlcIiwgXCJmb290ZXJcIiwgXCJzaG93SGVhZGVyXCIsIFwidGFibGVMYXlvdXRcIiwgXCJjb21wb25lbnRzXCIsIFwiZGlyZWN0aW9uXCIsIFwicm93SG92ZXJhYmxlXCJdKTtcbiAgICAvLyBQdWxsZWQgb3V0IG9mIGByZXN0YCBzbyBpdCBkb2Vzbid0IGxhbmQgb24gdGhlIHdyYXBwZXIgZGl2OyBlYWNoIGVudHJ5IHBvaW50XG4gICAgLy8gZm9yd2FyZHMgaXRzIG93biBgc2Nyb2xsYCB0byB0aGUga2VybmVsIChzZWUgRm9yd2FyZGVkS2VybmVsUHJvcHMgbm90ZSkuXG4gICAgdm9pZCBfc2Nyb2xsO1xuICAgIGNvbnN0IGNscyA9IGNsYXNzbmFtZXMoVEFCTEVfQkxPQ0spO1xuICAgIC8vIGBsb2FkaW5nYCBhY2NlcHRzIGEgYm9vbGVhbiBvciBhbiBvYmplY3Qgb3ZlcnJpZGUuIFRoZSBvYmplY3QgZm9ybSBkZWZhdWx0c1xuICAgIC8vIGBzcGlubmluZ2AgdG8gdHJ1ZSAocGFzc2luZyBhIGNvbmZpZyBpbXBsaWVzIGludGVudCB0byBzaG93IHRoZSBvdmVybGF5KSBhbmRcbiAgICAvLyBmYWxscyBiYWNrIHRvIHRoZSBicmFuZCBTcGlubmVyIHdoZW4gbm8gY3VzdG9tIGBpbmRpY2F0b3JgIGlzIHN1cHBsaWVkLlxuICAgIGNvbnN0IGxvYWRpbmdDb25maWcgPSB0eXBlb2YgbG9hZGluZyA9PT0gJ2Jvb2xlYW4nID8geyBzcGlubmluZzogbG9hZGluZyB9IDogbG9hZGluZztcbiAgICBjb25zdCBpc0xvYWRpbmcgPSAoX2EgPSBsb2FkaW5nQ29uZmlnLnNwaW5uaW5nKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0cnVlO1xuICAgIGNvbnN0IGxvYWRpbmdJbmRpY2F0b3IgPSAoX2IgPSBsb2FkaW5nQ29uZmlnLmluZGljYXRvcikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogX2pzeChTcGlubmVyLCB7IHR5cGU6IFwiYnJhbmRcIiwgdGl0bGU6IFwiTG9hZGluZ1wiIH0pO1xuICAgIGNvbnN0IGdldFJvd0tleSA9IHVzZU1lbW9pemVkRm4oKHJlY29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gdHlwZW9mIHJvd0tleSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgPyByb3dLZXkocmVjb3JkKVxuICAgICAgICAgICAgOiAoX2EgPSByZWNvcmRbcm93S2V5ICE9PSBudWxsICYmIHJvd0tleSAhPT0gdm9pZCAwID8gcm93S2V5IDogJ2tleSddKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleDtcbiAgICB9KTtcbiAgICBjb25zdCBwaXBlbGluZSA9IHVzZVRhYmxlRGF0YVBpcGVsaW5lKHsgY29sdW1ucywgZGF0YVNvdXJjZSwgcGFnaW5hdGlvbiwgb25DaGFuZ2UgfSk7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdXNlVGFibGVTZWxlY3Rpb24oe1xuICAgICAgICByb3dTZWxlY3Rpb24sXG4gICAgICAgIGRhdGFTb3VyY2UsXG4gICAgICAgIGN1cnJlbnREYXRhU291cmNlOiBwaXBlbGluZS5jdXJyZW50RGF0YVNvdXJjZSxcbiAgICAgICAgZ2V0Um93S2V5LFxuICAgIH0pO1xuICAgIGNvbnN0IGV4cGFuZCA9IHVzZVRhYmxlRXhwYW5kKHsgZXhwYW5kYWJsZSwgZGF0YVNvdXJjZSwgZ2V0Um93S2V5IH0pO1xuICAgIGNvbnN0IHJlbmRlcmVkQ29sdW1ucyA9IHVzZVRhYmxlQ29sdW1ucyh7XG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIHNpemUsXG4gICAgICAgIHZhcmlhbnQsXG4gICAgICAgIGV4cGFuZGFibGUsXG4gICAgICAgIG1lcmdlZEV4cGFuZGVkUm93S2V5czogZXhwYW5kLm1lcmdlZEV4cGFuZGVkUm93S2V5cyxcbiAgICAgICAgdHJpZ2dlckV4cGFuZDogZXhwYW5kLnRyaWdnZXJFeHBhbmQsXG4gICAgICAgIHJvd1NlbGVjdGlvbixcbiAgICAgICAgbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzOiBzZWxlY3Rpb24ubWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLFxuICAgICAgICBjaGVja2JveFByb3BzTWFwOiBzZWxlY3Rpb24uY2hlY2tib3hQcm9wc01hcCxcbiAgICAgICAgaXNBbGxTZWxlY3RlZDogc2VsZWN0aW9uLmlzQWxsU2VsZWN0ZWQsXG4gICAgICAgIGlzSW5kZXRlcm1pbmF0ZTogc2VsZWN0aW9uLmlzSW5kZXRlcm1pbmF0ZSxcbiAgICAgICAgdHJpZ2dlclNlbGVjdGlvbjogc2VsZWN0aW9uLnRyaWdnZXJTZWxlY3Rpb24sXG4gICAgICAgIHRyaWdnZXJTZWxlY3RBbGw6IHNlbGVjdGlvbi50cmlnZ2VyU2VsZWN0QWxsLFxuICAgICAgICBzb3J0ZXI6IHBpcGVsaW5lLnNvcnRlcixcbiAgICAgICAgc2V0U29ydGVyOiBwaXBlbGluZS5zZXRTb3J0ZXIsXG4gICAgICAgIGZpbHRlcnM6IHBpcGVsaW5lLmZpbHRlcnMsXG4gICAgICAgIHNldEZpbHRlcnM6IHBpcGVsaW5lLnNldEZpbHRlcnMsXG4gICAgICAgIGdldFJvd0tleSxcbiAgICB9KTtcbiAgICAvLyBEZXYtb25seSB3YXJuaW5nOiBtaXhpbmcgcm93LWV4cGFuc2lvbiB3aXRoIHRyZWUtZGF0YSAoY2hpbGRyZW5Db2x1bW5OYW1lKVxuICAgIC8vIHByb2R1Y2VzIHR3byBjaGV2cm9ucyBwZXIgcm93ICh0aGUgbGVmdG1vc3QgX19leHBhbmRfXyBjb2x1bW4gZnJvbSB0aGUgd3JhcHBlclxuICAgIC8vIHBsdXMgdGhlIGtlcm5lbCdzIHBlci1pbmRlbnQgbmVzdCBleHBhbmQpLiByYy10YWJsZSBoYXMgdGhlIHNhbWUgZ2FwO1xuICAgIC8vIHBpY2sgb25lIG1vZGUgYXQgYSB0aW1lLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgKChfYyA9IHByb2Nlc3MuZW52KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuTk9ERV9FTlYpICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKChleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuZXhwYW5kZWRSb3dSZW5kZXIpICYmIGNoaWxkcmVuQ29sdW1uTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tjb21wb25lbnRzLXVpIFRhYmxlXSBDb21iaW5pbmcgYGV4cGFuZGFibGUuZXhwYW5kZWRSb3dSZW5kZXJgIHdpdGggYGNoaWxkcmVuQ29sdW1uTmFtZWAgaXMgbm90IHN1cHBvcnRlZCDigJQgdGhlIGxlZnRtb3N0IGV4cGFuZCBjb2x1bW4gd2lsbCByZW5kZXIgYWxvbmdzaWRlIHRoZSBuZXN0ZWQgdHJlZSBleHBhbmRlci4gVXNlIG9uZSBtb2RlIGF0IGEgdGltZS4nKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB3cmFwcGVkRXhwYW5kZWRSb3dSZW5kZXIgPSB1c2VNZW1vaXplZEZuKChyZWNvcmQsIGluZGV4LCBpbmRlbnQsIGV4cGFuZGVkKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgLy8gSG9ub3IgYHJvd0V4cGFuZGFibGVgOiBldmVuIGlmIGEgbm9uLWV4cGFuZGFibGUgcm93J3Mga2V5IHNuZWFrcyBpbnRvXG4gICAgICAgIC8vIGBleHBhbmRlZFJvd0tleXNgLCByZWZ1c2UgdG8gcmVuZGVyIGl0cyBleHBhbnNpb24gY29udGVudC5cbiAgICAgICAgaWYgKChleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUucm93RXhwYW5kYWJsZSkgJiYgIWV4cGFuZGFibGUucm93RXhwYW5kYWJsZShyZWNvcmQpKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIHJldHVybiAoX2pzeChFeHBhbmRlZFJvd0NvbnRhaW5lciwgeyBjaGlsZHJlbjogKF9hID0gZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmV4cGFuZGVkUm93UmVuZGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChleHBhbmRhYmxlLCByZWNvcmQsIGluZGV4LCBpbmRlbnQsIGV4cGFuZGVkKSB9KSk7XG4gICAgfSk7XG4gICAgLy8gV2lyZSBrZXJuZWwncyBvbkV4cGFuZCAodHJpZ2dlcmVkIGJ5IGV4cGFuZFJvd0J5Q2xpY2spIHRvIG91ciBzdGF0ZS5cbiAgICBjb25zdCBrZXJuZWxPbkV4cGFuZCA9IHVzZU1lbW9pemVkRm4oKGV4cGFuZGVkLCByZWNvcmQpID0+IHtcbiAgICAgICAgLy8gVGhlIGtlcm5lbCBwYXNzZXMgYSByZWNvcmQgZnJvbSBgY3VycmVudERhdGFTb3VyY2VgIChwb3N0IHNvcnQvZmlsdGVyL3BhZ2luYXRlKS5cbiAgICAgICAgLy8gTG9va2luZyBpdCB1cCBhZ2FpbnN0IHRoZSByYXcgYGRhdGFTb3VyY2VgIHJldHVybnMgLTEgd2hlbiB0aGUgY29uc3VtZXJcbiAgICAgICAgLy8gcmVjcmVhdGVzIHRoZSBhcnJheSBlYWNoIHJlbmRlciwgb3IgYSBwb3NpdGlvbmFsbHkgd3JvbmcgaW5kZXggYWZ0ZXIgc29ydC5cbiAgICAgICAgLy8gVXNlIGBjdXJyZW50RGF0YVNvdXJjZWAgc28gdGhlIGluZGV4IG1hdGNoZXMgd2hhdCB0aGUga2VybmVsIGFjdHVhbGx5IHNlZXMuXG4gICAgICAgIGNvbnN0IHJlY29yZEtleSA9IGdldFJvd0tleShyZWNvcmQsIHBpcGVsaW5lLmN1cnJlbnREYXRhU291cmNlLmluZGV4T2YocmVjb3JkKSk7XG4gICAgICAgIGV4cGFuZC5vbktlcm5lbEV4cGFuZChleHBhbmRlZCwgcmVjb3JkLCByZWNvcmRLZXkpO1xuICAgIH0pO1xuICAgIGNvbnN0IG1lcmdlZEV4cGFuZGFibGUgPSB1c2VNZW1vKCgpID0+IGV4cGFuZGFibGVcbiAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGV4cGFuZGFibGUpLCB7IGV4cGFuZGVkUm93S2V5czogZXhwYW5kLm1lcmdlZEV4cGFuZGVkUm93S2V5cywgZXhwYW5kZWRSb3dSZW5kZXI6IGV4cGFuZGFibGUuZXhwYW5kZWRSb3dSZW5kZXJcbiAgICAgICAgICAgICAgICA/IHdyYXBwZWRFeHBhbmRlZFJvd1JlbmRlclxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLCBzaG93RXhwYW5kQ29sdW1uOiBmYWxzZSwgb25FeHBhbmQ6IGtlcm5lbE9uRXhwYW5kIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLCBbZXhwYW5kYWJsZSwgZXhwYW5kLm1lcmdlZEV4cGFuZGVkUm93S2V5cywgd3JhcHBlZEV4cGFuZGVkUm93UmVuZGVyLCBrZXJuZWxPbkV4cGFuZF0pO1xuICAgIGNvbnN0IHJlc29sdmVkUGFnaW5hdGlvbiA9IHBpcGVsaW5lLnBhZ2luYXRpb24gPT09IGZhbHNlXG4gICAgICAgID8geyBjdXJyZW50OiAxLCBwYWdlU2l6ZTogMTAgfVxuICAgICAgICA6IHBpcGVsaW5lLnBhZ2luYXRpb247XG4gICAgY29uc3QgcGFnaW5hdGlvbk5vZGUgPSBwYWdpbmF0aW9uICE9PSBmYWxzZSA/IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LXBhZ2luYXRpb25gLCBjaGlsZHJlbjogX2pzeChQYWdpbmF0aW9uLCB7IHRvdGFsOiBwaXBlbGluZS50b3RhbCwgcGFnZVNpemU6IHJlc29sdmVkUGFnaW5hdGlvbi5wYWdlU2l6ZSwgY3VycmVudDogcmVzb2x2ZWRQYWdpbmF0aW9uLmN1cnJlbnQsIG9uQ2hhbmdlOiAobmV4dFBhZ2UsIG5leHRQYWdlU2l6ZSkgPT4gcGlwZWxpbmUuc2V0UGFnaW5hdGlvbigoY3VycmVudFBhZ2luYXRpb24pID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGN1cnJlbnRQYWdpbmF0aW9uKSwgeyBjdXJyZW50OiBuZXh0UGFnZSwgcGFnZVNpemU6IG5leHRQYWdlU2l6ZSB9KSkpIH0pIH0pKSA6IG51bGw7XG4gICAgY29uc3Qgd3JhcHBlckNsYXNzTmFtZSA9IGpvaW5DbHMoYCR7cHJlZml4Q2xzfS13cmFwcGVyYCwgaXNMb2FkaW5nICYmIGAke3ByZWZpeENsc30td3JhcHBlci0tbG9hZGluZ2AsIGJvcmRlcmVkICYmIGAke3ByZWZpeENsc30td3JhcHBlci0tYm9yZGVyZWRgKTtcbiAgICBjb25zdCB0YWJsZUNsYXNzTmFtZSA9IGpvaW5DbHMoY2xzKCksIGNscyhzaXplKSwgY2xzKHZhcmlhbnQpLCByb3dIb3ZlcmFibGUgPT09IGZhbHNlICYmIGNscygnbm8taG92ZXInKSwgY2xhc3NOYW1lKTtcbiAgICBjb25zdCBlbXB0eVRleHQgPSBpc0xvYWRpbmcgJiYgIWRhdGFTb3VyY2UubGVuZ3RoID8gX2pzeChcInNwYW5cIiwge30pIDogX2pzeChUYWJsZUVtcHR5U3RhdGUsIHsgZW1wdHk6IGVtcHR5IH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAgd3JhcHBlckNsYXNzTmFtZSxcbiAgICAgICAgdGFibGVDbGFzc05hbWUsXG4gICAgICAgIGxvYWRpbmc6IGlzTG9hZGluZyxcbiAgICAgICAgbG9hZGluZ0luZGljYXRvcixcbiAgICAgICAgcmVuZGVyZWRDb2x1bW5zLFxuICAgICAgICBjdXJyZW50RGF0YVNvdXJjZTogcGlwZWxpbmUuY3VycmVudERhdGFTb3VyY2UsXG4gICAgICAgIG1lcmdlZEV4cGFuZGFibGUsXG4gICAgICAgIGVtcHR5VGV4dCxcbiAgICAgICAgd3JhcHBlckh0bWxQcm9wczogcmVzdCxcbiAgICAgICAgZm9yd2FyZGVkS2VybmVsUHJvcHM6IHtcbiAgICAgICAgICAgIHJvd0tleTogcm93S2V5LFxuICAgICAgICAgICAgY2hpbGRyZW5Db2x1bW5OYW1lLFxuICAgICAgICAgICAgaW5kZW50U2l6ZSxcbiAgICAgICAgICAgIG9uUm93LFxuICAgICAgICAgICAgcm93Q2xhc3NOYW1lLFxuICAgICAgICAgICAgc3VtbWFyeSxcbiAgICAgICAgICAgIGZvb3RlcixcbiAgICAgICAgICAgIHNob3dIZWFkZXIsXG4gICAgICAgICAgICB0YWJsZUxheW91dCxcbiAgICAgICAgICAgIGNvbXBvbmVudHMsXG4gICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICByb3dIb3ZlcmFibGUsXG4gICAgICAgICAgICBzdGlja3ksXG4gICAgICAgIH0sXG4gICAgICAgIHBhZ2luYXRpb25Ob2RlLFxuICAgIH07XG59OyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
219
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZVNldHVwLmpzIiwiY29tcG9uZW50cy9UYWJsZS9zcmMvY29tcG9uZW50cy9UYWJsZS9jb3JlL3VzZVRhYmxlU2V0dXAudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl91c2VNZW1vaXplZEZuIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jbGFzc25hbWVzIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfUGFnaW5hdGlvbiIsIl9TcGlubmVyIiwiX0V4cGFuZGVkUm93Q29udGFpbmVyIiwiX0VtcHR5U3RhdGUiLCJfY29uc3RhbnRzIiwiX3VzZVRhYmxlRGF0YVBpcGVsaW5lIiwiX3VzZVRhYmxlU2VsZWN0aW9uIiwiX3VzZVRhYmxlRXhwYW5kIiwiX3VzZVRhYmxlQ29sdW1ucyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwidXNlVGFibGVTZXR1cCIsImV4cG9ydHMiLCJwcm9wcyIsIl9hIiwiX2IiLCJfYyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiVEFCTEVfREVGQVVMVF9QUkVGSVgiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJUQUJMRV9ERUZBVUxUX1ZBUklBTlQiLCJjb2x1bW5zIiwiZGF0YVNvdXJjZSIsInJvd0tleSIsImVtcHR5IiwiYm9yZGVyZWQiLCJfc2Nyb2xsIiwic2Nyb2xsIiwic3RpY2t5IiwicGFnaW5hdGlvbiIsInJvd1NlbGVjdGlvbiIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsIm9uQ2hhbmdlIiwiY2hpbGRyZW5Db2x1bW5OYW1lIiwiaW5kZW50U2l6ZSIsImV4cGFuZGFibGUiLCJvblJvdyIsInJvd0NsYXNzTmFtZSIsInN1bW1hcnkiLCJmb290ZXIiLCJzaG93SGVhZGVyIiwidGFibGVMYXlvdXQiLCJjb21wb25lbnRzIiwiZGlyZWN0aW9uIiwicm93SG92ZXJhYmxlIiwicmVzdCIsImNscyIsImNsYXNzbmFtZXMiLCJUQUJMRV9CTE9DSyIsImxvYWRpbmdDb25maWciLCJzcGlubmluZyIsImlzTG9hZGluZyIsImxvYWRpbmdJbmRpY2F0b3IiLCJpbmRpY2F0b3IiLCJfanN4IiwiU3Bpbm5lciIsInR5cGUiLCJ0aXRsZSIsImdldFJvd0tleSIsInVzZU1lbW9pemVkRm4iLCJyZWNvcmQiLCJpbmRleCIsInBpcGVsaW5lIiwidXNlVGFibGVEYXRhUGlwZWxpbmUiLCJzZWxlY3Rpb24iLCJ1c2VUYWJsZVNlbGVjdGlvbiIsImN1cnJlbnREYXRhU291cmNlIiwiZXhwYW5kIiwidXNlVGFibGVFeHBhbmQiLCJyZW5kZXJlZENvbHVtbnMiLCJ1c2VUYWJsZUNvbHVtbnMiLCJtZXJnZWRFeHBhbmRlZFJvd0tleXMiLCJ0cmlnZ2VyRXhwYW5kIiwibWVyZ2VkU2VsZWN0ZWRSb3dLZXlzIiwiY2hlY2tib3hQcm9wc01hcCIsImlzQWxsU2VsZWN0ZWQiLCJpc0luZGV0ZXJtaW5hdGUiLCJ0cmlnZ2VyU2VsZWN0aW9uIiwidHJpZ2dlclNlbGVjdEFsbCIsInNvcnRlciIsInNldFNvcnRlciIsImZpbHRlcnMiLCJzZXRGaWx0ZXJzIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXhwYW5kZWRSb3dSZW5kZXIiLCJ1bmRlZmluZWQiLCJjb25zb2xlIiwid2FybiIsIndyYXBwZWRFeHBhbmRlZFJvd1JlbmRlciIsImluZGVudCIsImV4cGFuZGVkIiwicm93RXhwYW5kYWJsZSIsIkV4cGFuZGVkUm93Q29udGFpbmVyIiwiY2hpbGRyZW4iLCJrZXJuZWxPbkV4cGFuZCIsInJlY29yZEtleSIsIm9uS2VybmVsRXhwYW5kIiwibWVyZ2VkRXhwYW5kYWJsZSIsInVzZU1lbW8iLCJhc3NpZ24iLCJleHBhbmRlZFJvd0tleXMiLCJzaG93RXhwYW5kQ29sdW1uIiwib25FeHBhbmQiLCJyZXNvbHZlZFBhZ2luYXRpb24iLCJjdXJyZW50IiwicGFnZVNpemUiLCJwYWdpbmF0aW9uTm9kZSIsImNvbmNhdCIsIlBhZ2luYXRpb24iLCJ0b3RhbCIsIm5leHRQYWdlIiwibmV4dFBhZ2VTaXplIiwic2V0UGFnaW5hdGlvbiIsImN1cnJlbnRQYWdpbmF0aW9uIiwid3JhcHBlckNsYXNzTmFtZSIsImpvaW5DbHMiLCJ0YWJsZUNsYXNzTmFtZSIsImVtcHR5VGV4dCIsIlRhYmxlRW1wdHlTdGF0ZSIsIndyYXBwZXJIdG1sUHJvcHMiLCJmb3J3YXJkZWRLZXJuZWxQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxjQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFDLHVCQUFBLENBQUFMLE9BQUE7QUFDQSxJQUFBTSxXQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxxQkFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsV0FBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsVUFBQSxHQUFBVixPQUFBO0FBS0EsSUFBQVcscUJBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLGtCQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxlQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxnQkFBQSxHQUFBZCxPQUFBO0FBQW9E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QUNmSCxpQkFBaUIsRUFBRUosUUFBUSxDQUFDSSxpQkFBaUI7SUFDN0NpQyxnQkFBZ0IsRUFBaEJBLGdCQUFnQjtJQUNoQm9CLFNBQVMsRUFBVEEsU0FBUztJQUNURSxnQkFBZ0IsRUFBRTVFLElBQUk7SUFDdEI2RSxvQkFBb0IsRUFBRTtNQUNwQnBHLE1BQU0sRUFBRUEsTUFBdUM7TUFDL0NXLGtCQUFrQixFQUFsQkEsa0JBQWtCO01BQ2xCQyxVQUFVLEVBQVZBLFVBQVU7TUFDVkUsS0FBSyxFQUFMQSxLQUFLO01BQ0xDLFlBQVksRUFBWkEsWUFBWTtNQUNaQyxPQUFPLEVBQVBBLE9BQU87TUFDUEMsTUFBTSxFQUFOQSxNQUFNO01BQ05DLFVBQVUsRUFBVkEsVUFBVTtNQUNWQyxXQUFXLEVBQVhBLFdBQVc7TUFDWEMsVUFBVSxFQUFWQSxVQUFVO01BQ1ZDLFNBQVMsRUFBVEEsU0FBUztNQUNUQyxZQUFZLEVBQVpBLFlBQVk7TUFDWmpCLE1BQU0sRUFBTkE7SURySUUsQ0NzSUg7SUFDRGlGLGNBQWMsRUFBZEE7RURySUEsQ0NzSUQ7QUFDSCxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZVNldHVwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IGNsYXNzbmFtZXMsIHsgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgUGFnaW5hdGlvbiB9IGZyb20gJy4uLy4uL1BhZ2luYXRpb24nO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uLy4uL1NwaW5uZXInO1xuaW1wb3J0IHsgRXhwYW5kZWRSb3dDb250YWluZXIgfSBmcm9tICcuLi9yZW5kZXJlcnMvRXhwYW5kZWRSb3dDb250YWluZXInO1xuaW1wb3J0IHsgVGFibGVFbXB0eVN0YXRlIH0gZnJvbSAnLi4vcmVuZGVyZXJzL0VtcHR5U3RhdGUnO1xuaW1wb3J0IHsgVEFCTEVfQkxPQ0ssIFRBQkxFX0RFRkFVTFRfUFJFRklYLCBUQUJMRV9ERUZBVUxUX1ZBUklBTlQsIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZVRhYmxlRGF0YVBpcGVsaW5lIH0gZnJvbSAnLi91c2VUYWJsZURhdGFQaXBlbGluZSc7XG5pbXBvcnQgeyB1c2VUYWJsZVNlbGVjdGlvbiB9IGZyb20gJy4vdXNlVGFibGVTZWxlY3Rpb24nO1xuaW1wb3J0IHsgdXNlVGFibGVFeHBhbmQgfSBmcm9tICcuL3VzZVRhYmxlRXhwYW5kJztcbmltcG9ydCB7IHVzZVRhYmxlQ29sdW1ucyB9IGZyb20gJy4vdXNlVGFibGVDb2x1bW5zJztcbi8qKlxuICogQ2VudHJhbGlzZXMgdGhlIHdpcmluZyBzaGFyZWQgYnkgYFRhYmxlYCBhbmQgYFZpcnR1YWxUYWJsZWA6XG4gKiAgLSBkZXN0cnVjdHVyZSBwcm9wc1xuICogIC0gcmVzb2x2ZSByb3cga2V5XG4gKiAgLSBydW4gcGlwZWxpbmUgLyBzZWxlY3Rpb24gLyBleHBhbmQgLyBjb2x1bW4gdHJhbnNmb3Jtc1xuICogIC0gYnVpbGQga2VybmVsLXJlYWR5IHByb3BzXG4gKiAgLSBzcGxpdCBvZmYgcGFzcy10aHJvdWdoIEhUTUwgYXR0cmlidXRlcyBzbyB0aGV5IGNhbiBsYW5kIG9uIHRoZSBvdXRlciB3cmFwcGVyXG4gKiAgICBkaXYgKGluc3RlYWQgb2YgYmVpbmcgc3ByZWFkIHVudHlwZWQgaW50byB0aGUga2VybmVsIHZpYSBgcmVzdCBhcyBvYmplY3RgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVRhYmxlU2V0dXAgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSBUQUJMRV9ERUZBVUxUX1BSRUZJWCwgdmFyaWFudCA9IFRBQkxFX0RFRkFVTFRfVkFSSUFOVCwgY29sdW1ucywgZGF0YVNvdXJjZSwgcm93S2V5LCBlbXB0eSwgYm9yZGVyZWQsIHNjcm9sbDogX3Njcm9sbCwgc3RpY2t5LCBwYWdpbmF0aW9uLCByb3dTZWxlY3Rpb24sIGxvYWRpbmcgPSBmYWxzZSwgb25DaGFuZ2UsIGNoaWxkcmVuQ29sdW1uTmFtZSwgaW5kZW50U2l6ZSwgZXhwYW5kYWJsZSwgb25Sb3csIHJvd0NsYXNzTmFtZSwgc3VtbWFyeSwgZm9vdGVyLCBzaG93SGVhZGVyLCB0YWJsZUxheW91dCwgY29tcG9uZW50cywgZGlyZWN0aW9uLCByb3dIb3ZlcmFibGUgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJwcmVmaXhDbHNcIiwgXCJ2YXJpYW50XCIsIFwiY29sdW1uc1wiLCBcImRhdGFTb3VyY2VcIiwgXCJyb3dLZXlcIiwgXCJlbXB0eVwiLCBcImJvcmRlcmVkXCIsIFwic2Nyb2xsXCIsIFwic3RpY2t5XCIsIFwicGFnaW5hdGlvblwiLCBcInJvd1NlbGVjdGlvblwiLCBcImxvYWRpbmdcIiwgXCJvbkNoYW5nZVwiLCBcImNoaWxkcmVuQ29sdW1uTmFtZVwiLCBcImluZGVudFNpemVcIiwgXCJleHBhbmRhYmxlXCIsIFwib25Sb3dcIiwgXCJyb3dDbGFzc05hbWVcIiwgXCJzdW1tYXJ5XCIsIFwiZm9vdGVyXCIsIFwic2hvd0hlYWRlclwiLCBcInRhYmxlTGF5b3V0XCIsIFwiY29tcG9uZW50c1wiLCBcImRpcmVjdGlvblwiLCBcInJvd0hvdmVyYWJsZVwiXSk7XG4gICAgLy8gUHVsbGVkIG91dCBvZiBgcmVzdGAgc28gaXQgZG9lc24ndCBsYW5kIG9uIHRoZSB3cmFwcGVyIGRpdjsgZWFjaCBlbnRyeSBwb2ludFxuICAgIC8vIGZvcndhcmRzIGl0cyBvd24gYHNjcm9sbGAgdG8gdGhlIGtlcm5lbCAoc2VlIEZvcndhcmRlZEtlcm5lbFByb3BzIG5vdGUpLlxuICAgIHZvaWQgX3Njcm9sbDtcbiAgICBjb25zdCBjbHMgPSBjbGFzc25hbWVzKFRBQkxFX0JMT0NLKTtcbiAgICAvLyBgbG9hZGluZ2AgYWNjZXB0cyBhIGJvb2xlYW4gb3IgYW4gb2JqZWN0IG92ZXJyaWRlLiBUaGUgb2JqZWN0IGZvcm0gZGVmYXVsdHNcbiAgICAvLyBgc3Bpbm5pbmdgIHRvIHRydWUgKHBhc3NpbmcgYSBjb25maWcgaW1wbGllcyBpbnRlbnQgdG8gc2hvdyB0aGUgb3ZlcmxheSkgYW5kXG4gICAgLy8gZmFsbHMgYmFjayB0byB0aGUgYnJhbmQgU3Bpbm5lciB3aGVuIG5vIGN1c3RvbSBgaW5kaWNhdG9yYCBpcyBzdXBwbGllZC5cbiAgICBjb25zdCBsb2FkaW5nQ29uZmlnID0gdHlwZW9mIGxvYWRpbmcgPT09ICdib29sZWFuJyA/IHsgc3Bpbm5pbmc6IGxvYWRpbmcgfSA6IGxvYWRpbmc7XG4gICAgY29uc3QgaXNMb2FkaW5nID0gKF9hID0gbG9hZGluZ0NvbmZpZy5zcGlubmluZykgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdHJ1ZTtcbiAgICBjb25zdCBsb2FkaW5nSW5kaWNhdG9yID0gKF9iID0gbG9hZGluZ0NvbmZpZy5pbmRpY2F0b3IpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IF9qc3goU3Bpbm5lciwgeyB0eXBlOiBcImJyYW5kXCIsIHRpdGxlOiBcIkxvYWRpbmdcIiB9KTtcbiAgICBjb25zdCBnZXRSb3dLZXkgPSB1c2VNZW1vaXplZEZuKChyZWNvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiByb3dLZXkgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gcm93S2V5KHJlY29yZClcbiAgICAgICAgICAgIDogKF9hID0gcmVjb3JkW3Jvd0tleSAhPT0gbnVsbCAmJiByb3dLZXkgIT09IHZvaWQgMCA/IHJvd0tleSA6ICdrZXknXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogaW5kZXg7XG4gICAgfSk7XG4gICAgY29uc3QgcGlwZWxpbmUgPSB1c2VUYWJsZURhdGFQaXBlbGluZSh7IGNvbHVtbnMsIGRhdGFTb3VyY2UsIHBhZ2luYXRpb24sIG9uQ2hhbmdlIH0pO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHVzZVRhYmxlU2VsZWN0aW9uKHtcbiAgICAgICAgcm93U2VsZWN0aW9uLFxuICAgICAgICBkYXRhU291cmNlLFxuICAgICAgICBjdXJyZW50RGF0YVNvdXJjZTogcGlwZWxpbmUuY3VycmVudERhdGFTb3VyY2UsXG4gICAgICAgIGdldFJvd0tleSxcbiAgICB9KTtcbiAgICBjb25zdCBleHBhbmQgPSB1c2VUYWJsZUV4cGFuZCh7IGV4cGFuZGFibGUsIGRhdGFTb3VyY2UsIGdldFJvd0tleSB9KTtcbiAgICBjb25zdCByZW5kZXJlZENvbHVtbnMgPSB1c2VUYWJsZUNvbHVtbnMoe1xuICAgICAgICBjb2x1bW5zLFxuICAgICAgICB2YXJpYW50LFxuICAgICAgICBleHBhbmRhYmxlLFxuICAgICAgICBtZXJnZWRFeHBhbmRlZFJvd0tleXM6IGV4cGFuZC5tZXJnZWRFeHBhbmRlZFJvd0tleXMsXG4gICAgICAgIHRyaWdnZXJFeHBhbmQ6IGV4cGFuZC50cmlnZ2VyRXhwYW5kLFxuICAgICAgICByb3dTZWxlY3Rpb24sXG4gICAgICAgIG1lcmdlZFNlbGVjdGVkUm93S2V5czogc2VsZWN0aW9uLm1lcmdlZFNlbGVjdGVkUm93S2V5cyxcbiAgICAgICAgY2hlY2tib3hQcm9wc01hcDogc2VsZWN0aW9uLmNoZWNrYm94UHJvcHNNYXAsXG4gICAgICAgIGlzQWxsU2VsZWN0ZWQ6IHNlbGVjdGlvbi5pc0FsbFNlbGVjdGVkLFxuICAgICAgICBpc0luZGV0ZXJtaW5hdGU6IHNlbGVjdGlvbi5pc0luZGV0ZXJtaW5hdGUsXG4gICAgICAgIHRyaWdnZXJTZWxlY3Rpb246IHNlbGVjdGlvbi50cmlnZ2VyU2VsZWN0aW9uLFxuICAgICAgICB0cmlnZ2VyU2VsZWN0QWxsOiBzZWxlY3Rpb24udHJpZ2dlclNlbGVjdEFsbCxcbiAgICAgICAgc29ydGVyOiBwaXBlbGluZS5zb3J0ZXIsXG4gICAgICAgIHNldFNvcnRlcjogcGlwZWxpbmUuc2V0U29ydGVyLFxuICAgICAgICBmaWx0ZXJzOiBwaXBlbGluZS5maWx0ZXJzLFxuICAgICAgICBzZXRGaWx0ZXJzOiBwaXBlbGluZS5zZXRGaWx0ZXJzLFxuICAgICAgICBnZXRSb3dLZXksXG4gICAgfSk7XG4gICAgLy8gRGV2LW9ubHkgd2FybmluZzogbWl4aW5nIHJvdy1leHBhbnNpb24gd2l0aCB0cmVlLWRhdGEgKGNoaWxkcmVuQ29sdW1uTmFtZSlcbiAgICAvLyBwcm9kdWNlcyB0d28gY2hldnJvbnMgcGVyIHJvdyAodGhlIGxlZnRtb3N0IF9fZXhwYW5kX18gY29sdW1uIGZyb20gdGhlIHdyYXBwZXJcbiAgICAvLyBwbHVzIHRoZSBrZXJuZWwncyBwZXItaW5kZW50IG5lc3QgZXhwYW5kKS4gcmMtdGFibGUgaGFzIHRoZSBzYW1lIGdhcDtcbiAgICAvLyBwaWNrIG9uZSBtb2RlIGF0IGEgdGltZS5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgICBpZiAodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnICYmICgoX2MgPSBwcm9jZXNzLmVudikgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLk5PREVfRU5WKSAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIGlmICgoZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmV4cGFuZGVkUm93UmVuZGVyKSAmJiBjaGlsZHJlbkNvbHVtbk5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdbY29tcG9uZW50cy11aSBUYWJsZV0gQ29tYmluaW5nIGBleHBhbmRhYmxlLmV4cGFuZGVkUm93UmVuZGVyYCB3aXRoIGBjaGlsZHJlbkNvbHVtbk5hbWVgIGlzIG5vdCBzdXBwb3J0ZWQg4oCUIHRoZSBsZWZ0bW9zdCBleHBhbmQgY29sdW1uIHdpbGwgcmVuZGVyIGFsb25nc2lkZSB0aGUgbmVzdGVkIHRyZWUgZXhwYW5kZXIuIFVzZSBvbmUgbW9kZSBhdCBhIHRpbWUuJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgd3JhcHBlZEV4cGFuZGVkUm93UmVuZGVyID0gdXNlTWVtb2l6ZWRGbigocmVjb3JkLCBpbmRleCwgaW5kZW50LCBleHBhbmRlZCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIC8vIEhvbm9yIGByb3dFeHBhbmRhYmxlYDogZXZlbiBpZiBhIG5vbi1leHBhbmRhYmxlIHJvdydzIGtleSBzbmVha3MgaW50b1xuICAgICAgICAvLyBgZXhwYW5kZWRSb3dLZXlzYCwgcmVmdXNlIHRvIHJlbmRlciBpdHMgZXhwYW5zaW9uIGNvbnRlbnQuXG4gICAgICAgIGlmICgoZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLnJvd0V4cGFuZGFibGUpICYmICFleHBhbmRhYmxlLnJvd0V4cGFuZGFibGUocmVjb3JkKSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICByZXR1cm4gKF9qc3goRXhwYW5kZWRSb3dDb250YWluZXIsIHsgY2hpbGRyZW46IChfYSA9IGV4cGFuZGFibGUgPT09IG51bGwgfHwgZXhwYW5kYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwYW5kYWJsZS5leHBhbmRlZFJvd1JlbmRlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoZXhwYW5kYWJsZSwgcmVjb3JkLCBpbmRleCwgaW5kZW50LCBleHBhbmRlZCkgfSkpO1xuICAgIH0pO1xuICAgIC8vIFdpcmUga2VybmVsJ3Mgb25FeHBhbmQgKHRyaWdnZXJlZCBieSBleHBhbmRSb3dCeUNsaWNrKSB0byBvdXIgc3RhdGUuXG4gICAgY29uc3Qga2VybmVsT25FeHBhbmQgPSB1c2VNZW1vaXplZEZuKChleHBhbmRlZCwgcmVjb3JkKSA9PiB7XG4gICAgICAgIC8vIFRoZSBrZXJuZWwgcGFzc2VzIGEgcmVjb3JkIGZyb20gYGN1cnJlbnREYXRhU291cmNlYCAocG9zdCBzb3J0L2ZpbHRlci9wYWdpbmF0ZSkuXG4gICAgICAgIC8vIExvb2tpbmcgaXQgdXAgYWdhaW5zdCB0aGUgcmF3IGBkYXRhU291cmNlYCByZXR1cm5zIC0xIHdoZW4gdGhlIGNvbnN1bWVyXG4gICAgICAgIC8vIHJlY3JlYXRlcyB0aGUgYXJyYXkgZWFjaCByZW5kZXIsIG9yIGEgcG9zaXRpb25hbGx5IHdyb25nIGluZGV4IGFmdGVyIHNvcnQuXG4gICAgICAgIC8vIFVzZSBgY3VycmVudERhdGFTb3VyY2VgIHNvIHRoZSBpbmRleCBtYXRjaGVzIHdoYXQgdGhlIGtlcm5lbCBhY3R1YWxseSBzZWVzLlxuICAgICAgICBjb25zdCByZWNvcmRLZXkgPSBnZXRSb3dLZXkocmVjb3JkLCBwaXBlbGluZS5jdXJyZW50RGF0YVNvdXJjZS5pbmRleE9mKHJlY29yZCkpO1xuICAgICAgICBleHBhbmQub25LZXJuZWxFeHBhbmQoZXhwYW5kZWQsIHJlY29yZCwgcmVjb3JkS2V5KTtcbiAgICB9KTtcbiAgICBjb25zdCBtZXJnZWRFeHBhbmRhYmxlID0gdXNlTWVtbygoKSA9PiBleHBhbmRhYmxlXG4gICAgICAgID8gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBleHBhbmRhYmxlKSwgeyBleHBhbmRlZFJvd0tleXM6IGV4cGFuZC5tZXJnZWRFeHBhbmRlZFJvd0tleXMsIGV4cGFuZGVkUm93UmVuZGVyOiBleHBhbmRhYmxlLmV4cGFuZGVkUm93UmVuZGVyXG4gICAgICAgICAgICAgICAgPyB3cmFwcGVkRXhwYW5kZWRSb3dSZW5kZXJcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCwgc2hvd0V4cGFuZENvbHVtbjogZmFsc2UsIG9uRXhwYW5kOiBrZXJuZWxPbkV4cGFuZCB9KVxuICAgICAgICA6IHVuZGVmaW5lZCwgW2V4cGFuZGFibGUsIGV4cGFuZC5tZXJnZWRFeHBhbmRlZFJvd0tleXMsIHdyYXBwZWRFeHBhbmRlZFJvd1JlbmRlciwga2VybmVsT25FeHBhbmRdKTtcbiAgICBjb25zdCByZXNvbHZlZFBhZ2luYXRpb24gPSBwaXBlbGluZS5wYWdpbmF0aW9uID09PSBmYWxzZVxuICAgICAgICA/IHsgY3VycmVudDogMSwgcGFnZVNpemU6IDEwIH1cbiAgICAgICAgOiBwaXBlbGluZS5wYWdpbmF0aW9uO1xuICAgIGNvbnN0IHBhZ2luYXRpb25Ob2RlID0gcGFnaW5hdGlvbiAhPT0gZmFsc2UgPyAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogYCR7cHJlZml4Q2xzfS1wYWdpbmF0aW9uYCwgY2hpbGRyZW46IF9qc3goUGFnaW5hdGlvbiwgeyB0b3RhbDogcGlwZWxpbmUudG90YWwsIHBhZ2VTaXplOiByZXNvbHZlZFBhZ2luYXRpb24ucGFnZVNpemUsIGN1cnJlbnQ6IHJlc29sdmVkUGFnaW5hdGlvbi5jdXJyZW50LCBvbkNoYW5nZTogKG5leHRQYWdlLCBuZXh0UGFnZVNpemUpID0+IHBpcGVsaW5lLnNldFBhZ2luYXRpb24oKGN1cnJlbnRQYWdpbmF0aW9uKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdXJyZW50UGFnaW5hdGlvbiksIHsgY3VycmVudDogbmV4dFBhZ2UsIHBhZ2VTaXplOiBuZXh0UGFnZVNpemUgfSkpKSB9KSB9KSkgOiBudWxsO1xuICAgIGNvbnN0IHdyYXBwZXJDbGFzc05hbWUgPSBqb2luQ2xzKGAke3ByZWZpeENsc30td3JhcHBlcmAsIGlzTG9hZGluZyAmJiBgJHtwcmVmaXhDbHN9LXdyYXBwZXItLWxvYWRpbmdgLCBib3JkZXJlZCAmJiBgJHtwcmVmaXhDbHN9LXdyYXBwZXItLWJvcmRlcmVkYCk7XG4gICAgY29uc3QgdGFibGVDbGFzc05hbWUgPSBqb2luQ2xzKGNscygpLCBjbHModmFyaWFudCksIHJvd0hvdmVyYWJsZSA9PT0gZmFsc2UgJiYgY2xzKCduby1ob3ZlcicpLCBjbGFzc05hbWUpO1xuICAgIGNvbnN0IGVtcHR5VGV4dCA9IGlzTG9hZGluZyAmJiAhZGF0YVNvdXJjZS5sZW5ndGggPyBfanN4KFwic3BhblwiLCB7fSkgOiBfanN4KFRhYmxlRW1wdHlTdGF0ZSwgeyBlbXB0eTogZW1wdHkgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICB3cmFwcGVyQ2xhc3NOYW1lLFxuICAgICAgICB0YWJsZUNsYXNzTmFtZSxcbiAgICAgICAgbG9hZGluZzogaXNMb2FkaW5nLFxuICAgICAgICBsb2FkaW5nSW5kaWNhdG9yLFxuICAgICAgICByZW5kZXJlZENvbHVtbnMsXG4gICAgICAgIGN1cnJlbnREYXRhU291cmNlOiBwaXBlbGluZS5jdXJyZW50RGF0YVNvdXJjZSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kYWJsZSxcbiAgICAgICAgZW1wdHlUZXh0LFxuICAgICAgICB3cmFwcGVySHRtbFByb3BzOiByZXN0LFxuICAgICAgICBmb3J3YXJkZWRLZXJuZWxQcm9wczoge1xuICAgICAgICAgICAgcm93S2V5OiByb3dLZXksXG4gICAgICAgICAgICBjaGlsZHJlbkNvbHVtbk5hbWUsXG4gICAgICAgICAgICBpbmRlbnRTaXplLFxuICAgICAgICAgICAgb25Sb3csXG4gICAgICAgICAgICByb3dDbGFzc05hbWUsXG4gICAgICAgICAgICBzdW1tYXJ5LFxuICAgICAgICAgICAgZm9vdGVyLFxuICAgICAgICAgICAgc2hvd0hlYWRlcixcbiAgICAgICAgICAgIHRhYmxlTGF5b3V0LFxuICAgICAgICAgICAgY29tcG9uZW50cyxcbiAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgIHJvd0hvdmVyYWJsZSxcbiAgICAgICAgICAgIHN0aWNreSxcbiAgICAgICAgfSxcbiAgICAgICAgcGFnaW5hdGlvbk5vZGUsXG4gICAgfTtcbn07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|