@plumile/router 0.1.196 → 0.1.198

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.
Files changed (50) hide show
  1. package/README.md +32 -7
  2. package/lib/esm/routing/Link.d.ts +5 -4
  3. package/lib/esm/routing/Link.d.ts.map +1 -1
  4. package/lib/esm/routing/Link.js +64 -64
  5. package/lib/esm/routing/RouteComponentWrapper.d.ts.map +1 -1
  6. package/lib/esm/routing/RouteComponentWrapper.js +4 -2
  7. package/lib/esm/routing/RouterPrimitives.stories.d.ts.map +1 -1
  8. package/lib/esm/routing/RouterPrimitives.stories.js +2 -2
  9. package/lib/esm/routing/createRouter.d.ts.map +1 -1
  10. package/lib/esm/routing/createRouter.js +40 -62
  11. package/lib/esm/routing/createStaticRouter.d.ts.map +1 -1
  12. package/lib/esm/routing/createStaticRouter.js +9 -37
  13. package/lib/esm/routing/destination.d.ts +25 -0
  14. package/lib/esm/routing/destination.d.ts.map +1 -0
  15. package/lib/esm/routing/destination.js +110 -0
  16. package/lib/esm/routing/index.d.ts +2 -1
  17. package/lib/esm/routing/index.d.ts.map +1 -1
  18. package/lib/esm/routing/index.js +3 -2
  19. package/lib/esm/routing/useNavigate.d.ts +1 -0
  20. package/lib/esm/routing/useNavigate.d.ts.map +1 -1
  21. package/lib/esm/routing/useNavigate.js +1 -1
  22. package/lib/esm/tools.d.ts +7 -3
  23. package/lib/esm/tools.d.ts.map +1 -1
  24. package/lib/esm/tools.js +4 -2
  25. package/lib/esm/type-tests/navigation-destination.test-d.d.ts +2 -0
  26. package/lib/esm/type-tests/navigation-destination.test-d.d.ts.map +1 -0
  27. package/lib/esm/type-tests/navigation-destination.test-d.js +74 -0
  28. package/lib/esm/types.d.ts +33 -11
  29. package/lib/esm/types.d.ts.map +1 -1
  30. package/lib/esm/types.js +1 -1
  31. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  32. package/lib/types/routing/Link.d.ts +5 -4
  33. package/lib/types/routing/Link.d.ts.map +1 -1
  34. package/lib/types/routing/RouteComponentWrapper.d.ts.map +1 -1
  35. package/lib/types/routing/RouterPrimitives.stories.d.ts.map +1 -1
  36. package/lib/types/routing/createRouter.d.ts.map +1 -1
  37. package/lib/types/routing/createStaticRouter.d.ts.map +1 -1
  38. package/lib/types/routing/destination.d.ts +25 -0
  39. package/lib/types/routing/destination.d.ts.map +1 -0
  40. package/lib/types/routing/index.d.ts +2 -1
  41. package/lib/types/routing/index.d.ts.map +1 -1
  42. package/lib/types/routing/useNavigate.d.ts +1 -0
  43. package/lib/types/routing/useNavigate.d.ts.map +1 -1
  44. package/lib/types/tools.d.ts +7 -3
  45. package/lib/types/tools.d.ts.map +1 -1
  46. package/lib/types/type-tests/navigation-destination.test-d.d.ts +2 -0
  47. package/lib/types/type-tests/navigation-destination.test-d.d.ts.map +1 -0
  48. package/lib/types/types.d.ts +33 -11
  49. package/lib/types/types.d.ts.map +1 -1
  50. package/package.json +2 -2
@@ -0,0 +1,74 @@
1
+ import { defineSchema, numberField, stringField, } from '@plumile/filter-query/schema.js';
2
+ import { createRouter, createStaticRouter } from '../routing/index.js';
3
+ import { r } from '../tools.js';
4
+ const schema = defineSchema({
5
+ page: numberField(),
6
+ project: stringField(['eq']),
7
+ });
8
+ function expectType(value) {
9
+ return value;
10
+ }
11
+ const destination = {
12
+ pathname: '/projects',
13
+ filters: { page: { eq: 2 }, project: { eq: 'project_1' } },
14
+ query: { panel: 'summary' },
15
+ hash: 'details',
16
+ };
17
+ const explicitSearch = {
18
+ pathname: '/projects',
19
+ search: '?page=2',
20
+ };
21
+ const ambiguousDestination = {
22
+ pathname: '/projects',
23
+ search: '?page=2',
24
+ filters: { page: { eq: 2 } },
25
+ };
26
+ const linkProps = {
27
+ children: 'Projects',
28
+ to: destination,
29
+ };
30
+ r({
31
+ path: '/projects',
32
+ querySchema: schema,
33
+ prepare({ filters, query, rawQuery }) {
34
+ const page = filters.page?.eq;
35
+ const rawPage = query.page;
36
+ const rawPanel = rawQuery.panel;
37
+ return { page, rawPage, rawPanel };
38
+ },
39
+ render({ filters, query, rawQuery }) {
40
+ expectType(filters.page?.eq);
41
+ expectType(query.page);
42
+ expectType(rawQuery.panel);
43
+ return null;
44
+ },
45
+ });
46
+ const mixedSchemaRoutes = [
47
+ r({
48
+ path: '/plain',
49
+ render: () => {
50
+ return null;
51
+ },
52
+ }),
53
+ r({
54
+ path: '/projects',
55
+ querySchema: schema,
56
+ prepare({ filters }) {
57
+ return { page: filters.page?.eq };
58
+ },
59
+ render({ filters }) {
60
+ expectType(filters.page?.eq);
61
+ return null;
62
+ },
63
+ }),
64
+ ];
65
+ createRouter(mixedSchemaRoutes);
66
+ createStaticRouter(mixedSchemaRoutes, {
67
+ location: { pathname: '/projects', search: '?page=2' },
68
+ }).catch(() => {
69
+ return undefined;
70
+ });
71
+ expectType(explicitSearch);
72
+ expectType(ambiguousDestination);
73
+ expectType(linkProps);
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1kZXN0aW5hdGlvbi50ZXN0LWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZS10ZXN0cy9uYXZpZ2F0aW9uLWRlc3RpbmF0aW9uLnRlc3QtZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLFdBQVcsRUFDWCxXQUFXLEdBQ1osTUFBTSxpQ0FBaUMsQ0FBQztBQUd6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkUsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoQyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUM7SUFDMUIsSUFBSSxFQUFFLFdBQVcsRUFBRTtJQUNuQixPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Q0FDN0IsQ0FBQyxDQUFDO0FBS0gsU0FBUyxVQUFVLENBQUksS0FBUTtJQUM3QixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFdBQVcsR0FBbUQ7SUFDbEUsUUFBUSxFQUFFLFdBQVc7SUFDckIsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRTtJQUMxRCxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzNCLElBQUksRUFBRSxTQUFTO0NBQ2hCLENBQUM7QUFFRixNQUFNLGNBQWMsR0FBc0I7SUFDeEMsUUFBUSxFQUFFLFdBQVc7SUFDckIsTUFBTSxFQUFFLFNBQVM7Q0FDbEIsQ0FBQztBQUdGLE1BQU0sb0JBQW9CLEdBQXNCO0lBQzlDLFFBQVEsRUFBRSxXQUFXO0lBQ3JCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtDQUM3QixDQUFDO0FBRUYsTUFBTSxTQUFTLEdBQTJDO0lBQ3hELFFBQVEsRUFBRSxVQUFVO0lBQ3BCLEVBQUUsRUFBRSxXQUFXO0NBQ2hCLENBQUM7QUFFRixDQUFDLENBQUM7SUFDQSxJQUFJLEVBQUUsV0FBVztJQUNqQixXQUFXLEVBQUUsTUFBTTtJQUNuQixPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtRQUNsQyxNQUFNLElBQUksR0FBdUIsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQVksS0FBSyxDQUFDLElBQUksQ0FBQztRQUNwQyxNQUFNLFFBQVEsR0FBa0MsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUMvRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDakMsVUFBVSxDQUFxQixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELFVBQVUsQ0FBVSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsVUFBVSxDQUFnQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixDQUFDLENBQUM7UUFDQSxJQUFJLEVBQUUsUUFBUTtRQUNkLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FDRixDQUFDO0lBQ0YsQ0FBQyxDQUFDO1FBQ0EsSUFBSSxFQUFFLFdBQVc7UUFDakIsV0FBVyxFQUFFLE1BQU07UUFDbkIsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFO1lBQ2pCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsTUFBTSxDQUFDLEVBQUUsT0FBTyxFQUFFO1lBQ2hCLFVBQVUsQ0FBcUIsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FDRixDQUFDO0NBQ0gsQ0FBQztBQUVGLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2hDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFO0lBQ3BDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRTtDQUN2RCxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtJQUNaLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQyxDQUFDO0FBRUgsVUFBVSxDQUFvQixjQUFjLENBQUMsQ0FBQztBQUM5QyxVQUFVLENBQW9CLG9CQUFvQixDQUFDLENBQUM7QUFDcEQsVUFBVSxDQUF5QyxTQUFTLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGRlZmluZVNjaGVtYSxcbiAgbnVtYmVyRmllbGQsXG4gIHN0cmluZ0ZpZWxkLFxufSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvc2NoZW1hLmpzJztcblxuaW1wb3J0IHR5cGUgeyBJbmZlckZpbHRlcnMsIExpbmtQcm9wcywgUm91dGVyRGVzdGluYXRpb24gfSBmcm9tICcuLi9pbmRleC5qcyc7XG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXIsIGNyZWF0ZVN0YXRpY1JvdXRlciB9IGZyb20gJy4uL3JvdXRpbmcvaW5kZXguanMnO1xuaW1wb3J0IHsgciB9IGZyb20gJy4uL3Rvb2xzLmpzJztcblxuY29uc3Qgc2NoZW1hID0gZGVmaW5lU2NoZW1hKHtcbiAgcGFnZTogbnVtYmVyRmllbGQoKSxcbiAgcHJvamVjdDogc3RyaW5nRmllbGQoWydlcSddKSxcbn0pO1xuXG50eXBlIEZpbHRlcnMgPSBJbmZlckZpbHRlcnM8dHlwZW9mIHNjaGVtYT47XG5cbi8qKiBBc3NlcnRzIGFzc2lnbmFiaWxpdHkgd2l0aG91dCBjaGFuZ2luZyB0aGUgaW5mZXJyZWQgdmFsdWUuICovXG5mdW5jdGlvbiBleHBlY3RUeXBlPFQ+KHZhbHVlOiBUKTogVCB7XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuY29uc3QgZGVzdGluYXRpb246IFJvdXRlckRlc3RpbmF0aW9uPEZpbHRlcnMsIHsgcGFuZWw/OiBzdHJpbmcgfT4gPSB7XG4gIHBhdGhuYW1lOiAnL3Byb2plY3RzJyxcbiAgZmlsdGVyczogeyBwYWdlOiB7IGVxOiAyIH0sIHByb2plY3Q6IHsgZXE6ICdwcm9qZWN0XzEnIH0gfSxcbiAgcXVlcnk6IHsgcGFuZWw6ICdzdW1tYXJ5JyB9LFxuICBoYXNoOiAnZGV0YWlscycsXG59O1xuXG5jb25zdCBleHBsaWNpdFNlYXJjaDogUm91dGVyRGVzdGluYXRpb24gPSB7XG4gIHBhdGhuYW1lOiAnL3Byb2plY3RzJyxcbiAgc2VhcmNoOiAnP3BhZ2U9MicsXG59O1xuXG4vLyBAdHMtZXhwZWN0LWVycm9yIEV4cGxpY2l0IHNlYXJjaCBhbmQgc3RydWN0dXJlZCBmaWx0ZXJzIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuXG5jb25zdCBhbWJpZ3VvdXNEZXN0aW5hdGlvbjogUm91dGVyRGVzdGluYXRpb24gPSB7XG4gIHBhdGhuYW1lOiAnL3Byb2plY3RzJyxcbiAgc2VhcmNoOiAnP3BhZ2U9MicsXG4gIGZpbHRlcnM6IHsgcGFnZTogeyBlcTogMiB9IH0sXG59O1xuXG5jb25zdCBsaW5rUHJvcHM6IExpbmtQcm9wczxGaWx0ZXJzLCB7IHBhbmVsPzogc3RyaW5nIH0+ID0ge1xuICBjaGlsZHJlbjogJ1Byb2plY3RzJyxcbiAgdG86IGRlc3RpbmF0aW9uLFxufTtcblxucih7XG4gIHBhdGg6ICcvcHJvamVjdHMnLFxuICBxdWVyeVNjaGVtYTogc2NoZW1hLFxuICBwcmVwYXJlKHsgZmlsdGVycywgcXVlcnksIHJhd1F1ZXJ5IH0pIHtcbiAgICBjb25zdCBwYWdlOiBudW1iZXIgfCB1bmRlZmluZWQgPSBmaWx0ZXJzLnBhZ2U/LmVxO1xuICAgIGNvbnN0IHJhd1BhZ2U6IHVua25vd24gPSBxdWVyeS5wYWdlO1xuICAgIGNvbnN0IHJhd1BhbmVsOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCA9IHJhd1F1ZXJ5LnBhbmVsO1xuICAgIHJldHVybiB7IHBhZ2UsIHJhd1BhZ2UsIHJhd1BhbmVsIH07XG4gIH0sXG4gIHJlbmRlcih7IGZpbHRlcnMsIHF1ZXJ5LCByYXdRdWVyeSB9KSB7XG4gICAgZXhwZWN0VHlwZTxudW1iZXIgfCB1bmRlZmluZWQ+KGZpbHRlcnMucGFnZT8uZXEpO1xuICAgIGV4cGVjdFR5cGU8dW5rbm93bj4ocXVlcnkucGFnZSk7XG4gICAgZXhwZWN0VHlwZTxzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZD4ocmF3UXVlcnkucGFuZWwpO1xuICAgIHJldHVybiBudWxsO1xuICB9LFxufSk7XG5cbmNvbnN0IG1peGVkU2NoZW1hUm91dGVzID0gW1xuICByKHtcbiAgICBwYXRoOiAnL3BsYWluJyxcbiAgICByZW5kZXI6ICgpID0+IHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0sXG4gIH0pLFxuICByKHtcbiAgICBwYXRoOiAnL3Byb2plY3RzJyxcbiAgICBxdWVyeVNjaGVtYTogc2NoZW1hLFxuICAgIHByZXBhcmUoeyBmaWx0ZXJzIH0pIHtcbiAgICAgIHJldHVybiB7IHBhZ2U6IGZpbHRlcnMucGFnZT8uZXEgfTtcbiAgICB9LFxuICAgIHJlbmRlcih7IGZpbHRlcnMgfSkge1xuICAgICAgZXhwZWN0VHlwZTxudW1iZXIgfCB1bmRlZmluZWQ+KGZpbHRlcnMucGFnZT8uZXEpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSxcbiAgfSksXG5dO1xuXG5jcmVhdGVSb3V0ZXIobWl4ZWRTY2hlbWFSb3V0ZXMpO1xuY3JlYXRlU3RhdGljUm91dGVyKG1peGVkU2NoZW1hUm91dGVzLCB7XG4gIGxvY2F0aW9uOiB7IHBhdGhuYW1lOiAnL3Byb2plY3RzJywgc2VhcmNoOiAnP3BhZ2U9MicgfSxcbn0pLmNhdGNoKCgpID0+IHtcbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn0pO1xuXG5leHBlY3RUeXBlPFJvdXRlckRlc3RpbmF0aW9uPihleHBsaWNpdFNlYXJjaCk7XG5leHBlY3RUeXBlPFJvdXRlckRlc3RpbmF0aW9uPihhbWJpZ3VvdXNEZXN0aW5hdGlvbik7XG5leHBlY3RUeXBlPExpbmtQcm9wczxGaWx0ZXJzLCB7IHBhbmVsPzogc3RyaW5nIH0+PihsaW5rUHJvcHMpO1xuIl19
@@ -10,6 +10,22 @@ export type RawQueryValue = string | string[];
10
10
  export type RawQuery = Record<string, RawQueryValue>;
11
11
  export type UnknownQueryShape = Record<string, unknown>;
12
12
  export type UnknownFilters = Record<string, unknown>;
13
+ export type RouterStructuredDestination<TFilters extends UnknownFilters = UnknownFilters, TQuery extends UnknownQueryShape = UnknownQueryShape> = {
14
+ pathname: string;
15
+ filters?: TFilters;
16
+ query?: TQuery;
17
+ hash?: string;
18
+ search?: never;
19
+ };
20
+ export type RouterExplicitSearchDestination = {
21
+ pathname: string;
22
+ search?: string;
23
+ hash?: string;
24
+ filters?: never;
25
+ query?: never;
26
+ };
27
+ export type RouterDestination<TFilters extends UnknownFilters = UnknownFilters, TQuery extends UnknownQueryShape = UnknownQueryShape> = RouterStructuredDestination<TFilters, TQuery> | RouterExplicitSearchDestination;
28
+ export type RouterDestinationInput<TFilters extends UnknownFilters = UnknownFilters, TQuery extends UnknownQueryShape = UnknownQueryShape> = string | RouterDestination<TFilters, TQuery>;
13
29
  export type AsyncResourceStatus = 'idle' | 'pending' | 'resolved' | 'rejected';
14
30
  export type RouterActiveLoadStatus = AsyncResourceStatus;
15
31
  export type RouterActiveLoadState = {
@@ -69,9 +85,9 @@ export type RouterMatchedRoute<TVariables extends ParamData> = {
69
85
  };
70
86
  export type RouteReactComponent<TProps = Record<string, unknown>> = (props: TProps) => JSX.Element | null;
71
87
  type BivariantCallback<Fn extends (...args: never[]) => unknown> = {
72
- bivarianceHack: Fn;
88
+ bivarianceHack(...args: Parameters<Fn>): ReturnType<Fn>;
73
89
  }['bivarianceHack'];
74
- export type RouteRenderOpts<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = {
90
+ export type RouteRenderOpts<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape, S extends FilterSchema | undefined = FilterSchema | undefined> = {
75
91
  children: ReactNode;
76
92
  Component?: RouteReactComponent;
77
93
  prepared: TPrepared | undefined;
@@ -84,9 +100,10 @@ export type RouteRenderOpts<TContext, TPrepared extends PrepareResult, TVariable
84
100
  context: TContext;
85
101
  rawQuery: RawQuery;
86
102
  query: TQueryShape;
103
+ filters: S extends FilterSchema ? InferFilterResult<S> : UnknownFilters | undefined;
87
104
  };
88
- export type RouteRender<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = BivariantCallback<(opts: RouteRenderOpts<TContext, TPrepared, TVariables, TQueryShape>) => ReactElement | null | undefined | Promise<ReactElement | null | undefined>>;
89
- export type RouteRenderArgs<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = RouteRenderOpts<TContext, TPrepared, TVariables, TQueryShape>;
105
+ export type RouteRender<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape, S extends FilterSchema | undefined = FilterSchema | undefined> = BivariantCallback<(opts: RouteRenderOpts<TContext, TPrepared, TVariables, TQueryShape, S>) => ReactElement | null | undefined | Promise<ReactElement | null | undefined>>;
106
+ export type RouteRenderArgs<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape, S extends FilterSchema | undefined = FilterSchema | undefined> = RouteRenderOpts<TContext, TPrepared, TVariables, TQueryShape, S>;
90
107
  export type PreparedRouteSegment<TContext = unknown, TPrepared extends PrepareResult = PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = {
91
108
  routeNode?: RouteNode;
92
109
  path?: string;
@@ -176,34 +193,36 @@ export type Redirect = {
176
193
  export type RouteNode = {
177
194
  children?: readonly (RouteNode | Redirect)[];
178
195
  path?: string;
179
- prepare?: (params: PrepareParams<any, any, any>) => unknown;
196
+ prepare?: BivariantCallback<(params: PrepareParams<any, any, any>) => unknown>;
180
197
  prepareSearchBehavior?: RoutePrepareSearchBehavior;
181
198
  querySchema?: FilterSchema;
182
- render?: (opts: RouteRenderOpts<any, any, any, any>) => ReactElement | null | undefined | Promise<ReactElement | null | undefined>;
199
+ render?: BivariantCallback<(opts: RouteRenderOpts<any, any, any, any>) => ReactElement | null | undefined | Promise<ReactElement | null | undefined>>;
183
200
  resourcePage?: ResourcePage | null;
184
201
  suspenseBoundary?: RouteSuspenseBoundary;
185
202
  fallback?: RouteFallback<any>;
186
203
  };
187
204
  export type PrepareResult = unknown;
188
- export type PrepareParams<TContext, TVariables extends ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = {
205
+ export type PrepareParams<TContext, TVariables extends ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape, S extends FilterSchema | undefined = FilterSchema | undefined> = {
189
206
  match: RouterMatchedRoute<TVariables>;
190
207
  matchedRoute: FlatRoute<TVariables>;
191
208
  context: TContext;
192
209
  resourcePage?: ResourcePage | null;
193
210
  variables: TVariables;
194
211
  query: TQueryShape;
212
+ rawQuery: RawQuery;
213
+ filters: S extends FilterSchema ? InferFilterResult<S> : UnknownFilters | undefined;
195
214
  };
196
- export type RoutePrepareArgs<TContext, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = PrepareParams<TContext, TVariables, TQueryShape>;
197
- export type RoutePrepare<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = BivariantCallback<(params: PrepareParams<TContext, TVariables, TQueryShape>) => MaybePromise<TPrepared>>;
215
+ export type RoutePrepareArgs<TContext, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape, S extends FilterSchema | undefined = FilterSchema | undefined> = PrepareParams<TContext, TVariables, TQueryShape, S>;
216
+ export type RoutePrepare<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape, S extends FilterSchema | undefined = FilterSchema | undefined> = BivariantCallback<(params: PrepareParams<TContext, TVariables, TQueryShape, S>) => MaybePromise<TPrepared>>;
198
217
  export type Route<TContext, TPrepared extends PrepareResult, TVariables extends ParamData = ParamData, TQueryShape extends UnknownQueryShape = UnknownQueryShape, S extends FilterSchema | undefined = FilterSchema | undefined, TChildren extends readonly (RouteNode | Redirect)[] | undefined = readonly (RouteNode | Redirect)[] | undefined> = {
199
218
  children?: TChildren;
200
219
  resourcePage?: ResourcePage | null;
201
220
  suspenseBoundary?: RouteSuspenseBoundary;
202
221
  fallback?: RouteFallback<TContext>;
203
222
  path?: string;
204
- prepare?: RoutePrepare<TContext, TPrepared, TVariables, TQueryShape>;
223
+ prepare?: RoutePrepare<TContext, TPrepared, TVariables, TQueryShape, S>;
205
224
  prepareSearchBehavior?: RoutePrepareSearchBehavior;
206
- render?: RouteRender<TContext, TPrepared, TVariables, TQueryShape>;
225
+ render?: RouteRender<TContext, TPrepared, TVariables, TQueryShape, S>;
207
226
  querySchema?: S;
208
227
  };
209
228
  export type RouteComponentProps<TVariables extends ParamData, S extends FilterSchema | undefined = FilterSchema | undefined, TQueryShape extends UnknownQueryShape = UnknownQueryShape> = {
@@ -232,6 +251,7 @@ export type RoutingContextType<TVariables extends ParamData, S extends FilterSch
232
251
  pathname?: string;
233
252
  query?: TQueryShape;
234
253
  filters?: S extends FilterSchema ? InferFilterResult<S> : UnknownFilters;
254
+ hash?: string;
235
255
  replace?: boolean;
236
256
  }) => void;
237
257
  };
@@ -296,12 +316,14 @@ export type NavigateInputForPath<Routes extends readonly unknown[]> = {
296
316
  pathname: PathsOf<Routes>;
297
317
  query?: QueryShapeOf<RouteUnion<Routes>>;
298
318
  filters?: FiltersOf<RouteUnion<Routes>>;
319
+ hash?: string;
299
320
  replace?: boolean;
300
321
  };
301
322
  export type NavigateInputUntyped = {
302
323
  pathname?: string;
303
324
  query?: UnknownQueryShape;
304
325
  filters?: UnknownFilters;
326
+ hash?: string;
305
327
  replace?: boolean;
306
328
  };
307
329
  export interface NavigateOverloads<Routes extends readonly unknown[]> {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,KAAK,EACV,MAAM,IAAI,YAAY,EACtB,YAAY,IAAI,iBAAiB,EACjC,UAAU,IAAI,gBAAgB,EAC/B,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;AAC9C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AACrD,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE/E,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAEzD,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,mBAAmB,CAAC;IACnC,UAAU,EAAE,mBAAmB,CAAC;IAChC,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,sBAAsB,EAAE,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3D,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;AAEnE,MAAM,MAAM,iBAAiB,CAAC,QAAQ,GAAG,OAAO,IAAI;IAClD,OAAO,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACxC,KAAK,EAAE,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,QAAQ,GAAG,OAAO,IAC1C,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,CAAC;AAEjE,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC,GAAG,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,mBAAmB,CAAC;IACrC,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC,CAAC;CACf,CAAC;AAMF,MAAM,MAAM,cAAc,CAAC,UAAU,SAAS,SAAS,IAAI;IAEzD,IAAI,EAAE,MAAM,CAAC;IAEb,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEnC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,aAAa,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAEzC,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAE7B,GAAG,EAAE,MAAM,CAAC;IAEZ,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B,CAAC;AAMF,MAAM,MAAM,kBAAkB,CAAC,UAAU,SAAS,SAAS,IAAI;IAE7D,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAEzB,MAAM,EAAE,UAAU,CAAC;IAEnB,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;CAC9B,CAAC;AAMF,MAAM,MAAM,mBAAmB,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAClE,KAAK,EAAE,MAAM,KACV,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;AAExB,KAAK,iBAAiB,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,IAAI;IACjE,cAAc,EAAE,EAAE,CAAC;CACpB,CAAC,gBAAgB,CAAC,CAAC;AAOpB,MAAM,MAAM,eAAe,CACzB,QAAQ,EACR,SAAS,SAAS,aAAa,EAC/B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD;IAEF,QAAQ,EAAE,SAAS,CAAC;IAEpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAEhC,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAEhC,eAAe,EAAE,oBAAoB,CACnC,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,CACZ,CAAC;IAEF,aAAa,EAAE,oBAAoB,CACjC,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,CACZ,CAAC;IAEF,gBAAgB,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAElD,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE5C,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAEpC,OAAO,EAAE,QAAQ,CAAC;IAElB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAOF,MAAM,MAAM,WAAW,CACrB,QAAQ,EACR,SAAS,SAAS,aAAa,EAC/B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD,iBAAiB,CACnB,CACE,IAAI,EAAE,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,KAEnE,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC,CAC7E,CAAC;AAGF,MAAM,MAAM,eAAe,CACzB,QAAQ,EACR,SAAS,SAAS,aAAa,EAC/B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAKlE,MAAM,MAAM,oBAAoB,CAC9B,QAAQ,GAAG,OAAO,EAClB,SAAS,SAAS,aAAa,GAAG,aAAa,EAC/C,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD;IAEF,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,UAAU,EAAE,MAAM,CAAC;IAEnB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAE9B,YAAY,EAAE,MAAM,CAAC;IAErB,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAEpD,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAEnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAEnC,gBAAgB,EAAE,qBAAqB,CAAC;IAExC,QAAQ,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEnC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAEtD,MAAM,MAAM,qBAAqB,CAAC,QAAQ,GAAG,OAAO,IAClD,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;AAEnC,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,CAAC;AAMF,MAAM,MAAM,kBAAkB,CAC5B,UAAU,SAAS,SAAS,EAC5B,QAAQ,GAAG,OAAO,IAChB;IAEF,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAE7C,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAE1C,MAAM,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;CACzC,CAAC;AAGF,MAAM,MAAM,aAAa,CACvB,UAAU,SAAS,SAAS,EAC5B,QAAQ,GAAG,OAAO,IAChB,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAE7C,MAAM,MAAM,4BAA4B,CACtC,QAAQ,GAAG,OAAO,EAClB,SAAS,SAAS,aAAa,GAAG,aAAa,EAC/C,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD;IACF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AAEtE,MAAM,MAAM,0BAA0B,CACpC,UAAU,SAAS,SAAS,EAC5B,QAAQ,GAAG,OAAO,IAChB;IACF,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAC7C,QAAQ,EAAE,4BAA4B,CAAC,QAAQ,CAAC,EAAE,CAAC;IACnD,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,EAAE,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAC/B,UAAU,SAAS,SAAS,EAC5B,QAAQ,GAAG,OAAO,IAChB,0BAA0B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAMrD,MAAM,MAAM,UAAU,CACpB,UAAU,SAAS,SAAS,EAC5B,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,EAC7D,QAAQ,GAAG,OAAO,IAChB;IAEF,aAAa,EAAE,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAExD,eAAe,EAAE,qBAAqB,CAAC;IAEvC,SAAS,EAAE,eAAe,CAAC;IAE3B,OAAO,EAAE,QAAQ,CAAC;IAElB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAE7C,aAAa,EAAE,OAAO,CAAC;IAEvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,EAAE,QAAQ,CAAC;IAIhB,OAAO,CAAC,EAAE,CAAC,SAAS,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;IAEzE,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEvC,iBAAiB,CAAC,EAAE,CAAC,CAAC;CACvB,CAAC;AAOF,MAAM,MAAM,oBAAoB,GAAG,GAAG,GAAG,GAAG,CAAC;AAM7C,MAAM,MAAM,YAAY,CAAC,UAAU,SAAS,SAAS,IAAI;IAEvD,KAAK,EAAE,eAAe,CAAC;IAEvB,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;CAC9B,CAAC;AAKF,MAAM,MAAM,QAAQ,GAAG;IAErB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,EAAE,EAAE,MAAM,CAAC;IAEX,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B,CAAC;AAGF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC;IAC5D,qBAAqB,CAAC,EAAE,0BAA0B,CAAC;IACnD,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,MAAM,CAAC,EAAE,CACP,IAAI,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAEzC,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC7E,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,QAAQ,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;CAC/B,CAAC;AAKF,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;AAMpC,MAAM,MAAM,aAAa,CACvB,QAAQ,EACR,UAAU,SAAS,SAAS,EAC5B,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD;IAEF,KAAK,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEtC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAEpC,OAAO,EAAE,QAAQ,CAAC;IAElB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAEnC,SAAS,EAAE,UAAU,CAAC;IAEtB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAGF,MAAM,MAAM,gBAAgB,CAC1B,QAAQ,EACR,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAOrD,MAAM,MAAM,YAAY,CACtB,QAAQ,EACR,SAAS,SAAS,aAAa,EAC/B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD,iBAAiB,CACnB,CACE,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,KACrD,YAAY,CAAC,SAAS,CAAC,CAC7B,CAAC;AAOF,MAAM,MAAM,KAAK,CACf,QAAQ,EACR,SAAS,SAAS,aAAa,EAC/B,UAAU,SAAS,SAAS,GAAG,SAAS,EACxC,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,EACzD,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,EAC7D,SAAS,SAAS,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,GAAG,SAAS,GAC7D,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,GAAG,SAAS,IAC7C;IAiBF,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAEnC,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IAEzC,QAAQ,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEnC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAKrE,qBAAqB,CAAC,EAAE,0BAA0B,CAAC;IAEnD,MAAM,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAEnE,WAAW,CAAC,EAAE,CAAC,CAAC;CACjB,CAAC;AAMF,MAAM,MAAM,mBAAmB,CAC7B,UAAU,SAAS,SAAS,EAC5B,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,EAC7D,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,IACvD;IAEF,QAAQ,EAAE,YAAY,CAAC;IAEvB,aAAa,EAAE,kBAAkB,CAAC,UAAU,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;IAE9D,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC;CACjE,CAAC;AAMF,MAAM,MAAM,iBAAiB,CAC3B,UAAU,SAAS,SAAS,EAC5B,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,EAC7D,QAAQ,GAAG,OAAO,IAChB,CAAC,SAAS,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,IAAI,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAMF,MAAM,MAAM,kBAAkB,CAC5B,UAAU,SAAS,SAAS,EAC5B,CAAC,SAAS,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,EAC7D,WAAW,SAAS,iBAAiB,GAAG,iBAAiB,EACzD,QAAQ,GAAG,OAAO,IAChB;IAKF,WAAW,EAAE,CAAC,IAAI,EAAE;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,iBAAiB,CAAC;QAC1B,OAAO,CAAC,EAAE,cAAc,CAAC;KAC1B,KAAK,MAAM,CAAC;IAEb,OAAO,EAAE,cAAc,CAAC;IAExB,GAAG,EAAE,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE/C,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAE7C,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAEzC,SAAS,EAAE,CACT,QAAQ,EAAE,iBAAiB,CAAC,UAAU,EAAE,CAAC,EAAE,QAAQ,CAAC,KACjD,MAAM,IAAI,CAAC;IAEhB,QAAQ,EAAE,CAAC,IAAI,EAAE;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,WAAW,CAAC;QAEpB,OAAO,CAAC,EAAE,CAAC,SAAS,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;QACzE,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,KAAK,IAAI,CAAC;CACZ,CAAC;AAKF,MAAM,MAAM,kBAAkB,GAC5B;IAAE,OAAO,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;CAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;AAKvD,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEnE,MAAM,MAAM,qBAAqB,CAC/B,SAAS,SAAS,aAAa,GAAG,aAAa,IAC7C,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAGhC,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,YAAY,GAAG,SAAS,IACzD,CAAC,SAAS,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAExE,YAAY,EAAE,YAAY,EAAE,CAAC;AAG7B,YAAY,EAAE,gBAAgB,IAAI,UAAU,EAAE,CAAC;AAQ/C,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,YAAY,IAAI;IAEvD,GAAG,EAAE,CACH,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAC1B,CAAC,SAAS,MAAM,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAE7D,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAC1D,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KACzB,IAAI,CAAC;IAEV,MAAM,EAAE,CACN,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EAC1B,CAAC,SAAS,MAAM,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,EAE7D,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,CAAC,EACZ,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KACzB,IAAI,CAAC;IAEV,KAAK,EAAE,CACL,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EACpC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KACzB,IAAI,CAAC;IAEV,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC/C,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC;AAMtC,MAAM,MAAM,YAAY,CAAC,QAAQ,GAAG,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAGxE,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC;AAGjC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;CAAE,GACvE,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,GACzB,KAAK,CAAC;AAGV,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,aAAa,GACxD,CAAC,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GACxC,KAAK,CAAC;AAGV,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,mBAAmB,CAC7E,MAAM,CAAC,MAAM,CAAC,CACf,CAAC;AAGF,KAAK,cAAc,CAAC,CAAC,IACnB,CAAC,SAAS,KAAK,CACb,MAAM,QAAQ,EACd,MAAM,SAAS,EACf,MAAM,KAAK,EACX,MAAM,MAAM,EACZ,MAAM,OAAO,EACb,MAAM,SAAS,SAAS,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,GAAG,SAAS,CACtE,GACG;IACE,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;CACrB,GACD,KAAK,CAAC;AAGZ,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAE1D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAE5D,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAGzD,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,GAChD,CAAC,SAAS,MAAM,GACd,CAAC,GACD,KAAK,GACP,KAAK,CAAC;AAGV,MAAM,MAAM,OAAO,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,CAC7D,UAAU,CAAC,MAAM,CAAC,CACnB,CAAC;AAGF,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,CACjE,OAAO,CAAC,MAAM,CAAC,EACf,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAC3C,CAAC;AAGF,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,CACzE,OAAO,CAAC,MAAM,CAAC,EACf,oBAAoB,EAAE,CACvB,CAAC;AAGF,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,CACnE,OAAO,CAAC,MAAM,CAAC,EACf,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACjC,CAAC;AAGF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,GACzD,CAAC,SAAS,YAAY,GACpB,CAAC,GACD,SAAS,GACX,SAAS,CAAC;AAGd,MAAM,MAAM,SAAS,CAAC,CAAC,IACrB,QAAQ,CAAC,CAAC,CAAC,SAAS,YAAY,GAC5B,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAG5B,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,CAChE,OAAO,CAAC,MAAM,CAAC,EACf,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAC9B,CAAC;AAGF,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI,MAAM,CACpE,KAAK,EACL,KAAK,CACN,GAAG;IAEF,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAE1E,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,4BAA4B,EAAE,CAAC;CAEvE,CAAC;AAGF,MAAM,MAAM,oBAAoB,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE,IAAI;IACpE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAGF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAGF,MAAM,WAAW,iBAAiB,CAAC,MAAM,SAAS,SAAS,OAAO,EAAE;IAClE,CAAC,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC3C,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/lib/esm/types.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSwgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUsIEpTWCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRGlhZ25vc3RpYyBhcyBGaWx0ZXJEaWFnbm9zdGljIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L2Vycm9ycy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFNjaGVtYSBhcyBGaWx0ZXJTY2hlbWEsXG4gIEluZmVyRmlsdGVycyBhcyBJbmZlckZpbHRlclJlc3VsdCxcbiAgSW5mZXJGaWVsZCBhcyBJbmZlckZpbHRlckZpZWxkLFxufSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBNYXRjaCwgTWF0Y2hGdW5jdGlvbiwgUGFyYW1EYXRhIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgdHlwZSB7IEZsYXRSb3V0ZSB9IGZyb20gJy4vYnVpbGRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlUGFnZSB9IGZyb20gJy4vUmVzb3VyY2VQYWdlLmpzJztcbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnkgfSBmcm9tICcuL2hpc3RvcnkvaW5kZXguanMnO1xuXG5leHBvcnQgdHlwZSBNYXliZVByb21pc2U8VD4gPSBUIHwgUHJvbWlzZTxUPjtcbmV4cG9ydCB0eXBlIFJhd1F1ZXJ5VmFsdWUgPSBzdHJpbmcgfCBzdHJpbmdbXTtcbmV4cG9ydCB0eXBlIFJhd1F1ZXJ5ID0gUmVjb3JkPHN0cmluZywgUmF3UXVlcnlWYWx1ZT47XG5leHBvcnQgdHlwZSBVbmtub3duUXVlcnlTaGFwZSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuZXhwb3J0IHR5cGUgVW5rbm93bkZpbHRlcnMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IHR5cGUgQXN5bmNSZXNvdXJjZVN0YXR1cyA9ICdpZGxlJyB8ICdwZW5kaW5nJyB8ICdyZXNvbHZlZCcgfCAncmVqZWN0ZWQnO1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJBY3RpdmVMb2FkU3RhdHVzID0gQXN5bmNSZXNvdXJjZVN0YXR1cztcblxuZXhwb3J0IHR5cGUgUm91dGVyQWN0aXZlTG9hZFN0YXRlID0ge1xuICBzdGF0dXM6IFJvdXRlckFjdGl2ZUxvYWRTdGF0dXM7XG4gIHBlbmRpbmdDb3VudDogbnVtYmVyO1xuICByZWplY3RlZENvdW50OiBudW1iZXI7XG4gIHZlcnNpb246IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlclNlZ21lbnRMb2FkU3RhdGUgPSB7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgcHJlcGFyZVN0YXR1czogQXN5bmNSZXNvdXJjZVN0YXR1cztcbiAgY29kZVN0YXR1czogQXN5bmNSZXNvdXJjZVN0YXR1cztcbiAgc3RhdHVzOiBSb3V0ZXJBY3RpdmVMb2FkU3RhdHVzO1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyTG9hZFN0YXRlID0ge1xuICBzdGF0dXM6IFJvdXRlckFjdGl2ZUxvYWRTdGF0dXM7XG4gIHBlbmRpbmdDb3VudDogbnVtYmVyO1xuICByZWplY3RlZENvdW50OiBudW1iZXI7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgc2VnbWVudHM6IFJvdXRlclNlZ21lbnRMb2FkU3RhdGVbXTtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlUHJlcGFyZVNlYXJjaEJlaGF2aW9yID0gJ2Fsd2F5cycgfCAncGF0aCc7XG5cbmV4cG9ydCB0eXBlIFJvdXRlU3VzcGVuc2VCb3VuZGFyeSA9ICdpbmhlcml0JyB8ICdzZWdtZW50JyB8ICdub25lJztcblxuZXhwb3J0IHR5cGUgUm91dGVGYWxsYmFja0FyZ3M8VENvbnRleHQgPSB1bmtub3duPiA9IHtcbiAgc2VnbWVudDogUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+O1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFBhcmFtRGF0YT4gfCBudWxsO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlRmFsbGJhY2s8VENvbnRleHQgPSB1bmtub3duPiA9XG4gIFJlYWN0Tm9kZSB8ICgoYXJnczogUm91dGVGYWxsYmFja0FyZ3M8VENvbnRleHQ+KSA9PiBSZWFjdE5vZGUpO1xuXG5leHBvcnQgdHlwZSBSZWFkYWJsZVJlc291cmNlPFQ+ID0ge1xuICBnZXQ6ICgpID0+IFQgfCB1bmRlZmluZWQ7XG4gIGdldEVycm9yOiAoKSA9PiB1bmtub3duO1xuICBnZXRTdGF0dXM6ICgpID0+IEFzeW5jUmVzb3VyY2VTdGF0dXM7XG4gIGxvYWQ6ICgpID0+IFByb21pc2U8VD47XG4gIHJlYWQ6ICgpID0+IFQ7XG59O1xuXG4vKipcbiAqIElucHV0IHR5cGUgZm9yIGNyZWF0aW5nIGEgRmxhdFJvdXRlIGluc3RhbmNlLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIEZsYXRSb3V0ZUlucHV0PFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGE+ID0ge1xuICAvKiogVGhlIFVSTCBwYXRoIHBhdHRlcm4gZm9yIHRoaXMgcm91dGUgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogUGVyLXJlbmRlcmVkLXJvdXRlIG1ldGFkYXRhIGFsaWduZWQgd2l0aCBgcm91dGVzYC4gKi9cbiAgcm91dGVTZWdtZW50cz86IEZsYXRSb3V0ZVNlZ21lbnRbXTtcbiAgLyoqIE9wdGlvbmFsIHJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHJlZGlyZWN0VG8/OiBzdHJpbmc7XG4gIC8qKiBGdW5jdGlvbiB0byBtYXRjaCBVUkwgcGF0aHMgYWdhaW5zdCB0aGlzIHJvdXRlIHBhdHRlcm4gKi9cbiAgbWF0Y2hGdW5jdGlvbjogTWF0Y2hGdW5jdGlvbjxUVmFyaWFibGVzPjtcbiAgLyoqIE5lc3RlZCByb3V0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgd2l0aGluIHRoaXMgcm91dGUgKi9cbiAgcm91dGVzOiBBbnlSb3V0ZVtdO1xufTtcblxuZXhwb3J0IHR5cGUgRmxhdFJvdXRlU2VnbWVudCA9IHtcbiAgLyoqIFN0YWJsZSBrZXkgZm9yIHRoZSByZW5kZXJlZCBzZWdtZW50IHdpdGhpbiBhIGZsYXQgcm91dGUgY2hhaW4uICovXG4gIGtleTogc3RyaW5nO1xuICAvKiogTG9jYWwgcm91dGUgcGF0aCBjb25maWd1cmVkIG9uIHRoZSByb3V0ZSBub2RlLiAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogQWJzb2x1dGUgcGF0aCByZXByZXNlbnRlZCBieSB0aGlzIHNlZ21lbnQuICovXG4gIGZ1bGxQYXRoOiBzdHJpbmc7XG4gIC8qKiBQYXJhbXMgdGhhdCBtYXkgYmUgcmVhZCBieSB0aGlzIHNlZ21lbnQsIGluY2x1ZGluZyBhbmNlc3RvciBwYXJhbXMuICovXG4gIHBhcmFtTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWF0Y2hlZCByb3V0ZSB3aXRoIGV4dHJhY3RlZCBwYXJhbWV0ZXJzIGFuZCBtZXRhZGF0YS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YT4gPSB7XG4gIC8qKiBUaGUgbWF0Y2ggcmVzdWx0IGZyb20gcGF0aC10by1yZWdleHAgKi9cbiAgbWF0Y2g6IE1hdGNoPFRWYXJpYWJsZXM+O1xuICAvKiogRXh0cmFjdGVkIHBhcmFtZXRlcnMgZnJvbSB0aGUgVVJMIHBhdGggKi9cbiAgcGFyYW1zOiBUVmFyaWFibGVzO1xuICAvKiogVGhlIG1hdGNoZWQgcGF0aCBzdHJpbmcgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+O1xufTtcblxuLyoqXG4gKiBBIFJlYWN0IGNvbXBvbmVudCB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgcm91dGUgY29tcG9uZW50LlxuICogQHRlbXBsYXRlIFRQcm9wcyAtIFRoZSBwcm9wcyB0eXBlIGZvciB0aGUgY29tcG9uZW50XG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVhY3RDb21wb25lbnQ8VFByb3BzID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gKFxuICBwcm9wczogVFByb3BzLFxuKSA9PiBKU1guRWxlbWVudCB8IG51bGw7XG5cbnR5cGUgQml2YXJpYW50Q2FsbGJhY2s8Rm4gZXh0ZW5kcyAoLi4uYXJnczogbmV2ZXJbXSkgPT4gdW5rbm93bj4gPSB7XG4gIGJpdmFyaWFuY2VIYWNrOiBGbjtcbn1bJ2JpdmFyaWFuY2VIYWNrJ107XG5cbi8qKlxuICogT3B0aW9ucyBwYXNzZWQgdG8gYSByb3V0ZSByZW5kZXIgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVFByZXBhcmVkIC0gVGhlIHR5cGUgb2YgcHJlcGFyZWQgZGF0YSByZXR1cm5lZCBieSB0aGUgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVSZW5kZXJPcHRzPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdG8gcmVuZGVyIHdpdGhpbiB0aGlzIHJvdXRlICovXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIC8qKiBPcHRpb25hbCBjb21wb25lbnQgdG8gcmVuZGVyIChmcm9tIFJlc291cmNlUGFnZSkgKi9cbiAgQ29tcG9uZW50PzogUm91dGVSZWFjdENvbXBvbmVudDtcbiAgLyoqIERhdGEgcHJlcGFyZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvbiAqL1xuICBwcmVwYXJlZDogVFByZXBhcmVkIHwgdW5kZWZpbmVkO1xuICAvKiogVGhlIHByZXBhcmVkIHNlZ21lbnQgdGhhdCBpcyBiZWluZyByZW5kZXJlZCAqL1xuICBwcmVwYXJlZFNlZ21lbnQ6IFByZXBhcmVkUm91dGVTZWdtZW50PFxuICAgIFRDb250ZXh0LFxuICAgIFRQcmVwYXJlZCxcbiAgICBUVmFyaWFibGVzLFxuICAgIFRRdWVyeVNoYXBlXG4gID47XG4gIC8qKiBBbGlhcyBrZXB0IGZvciBtaWdyYXRpb24gY29tcGF0aWJpbGl0eSAqL1xuICBwcmVwYXJlZFJvdXRlOiBQcmVwYXJlZFJvdXRlU2VnbWVudDxcbiAgICBUQ29udGV4dCxcbiAgICBUUHJlcGFyZWQsXG4gICAgVFZhcmlhYmxlcyxcbiAgICBUUXVlcnlTaGFwZVxuICA+O1xuICAvKiogVGhlIGZ1bGwgcHJlcGFyZWQgY2hhaW4gZm9yIHRoZSBjdXJyZW50IG1hdGNoICovXG4gIHByZXBhcmVkU2VnbWVudHM6IFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dD47XG4gIC8qKiBJbmRleCBvZiB0aGUgY3VycmVudCBzZWdtZW50IGluIHRoZSBwcmVwYXJlZCBjaGFpbiAqL1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgLyoqIFRoZSBsZWFmIHNlZ21lbnQgb2YgdGhlIHByZXBhcmVkIGNoYWluICovXG4gIGxlYWZTZWdtZW50OiBQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD47XG4gIC8qKiBUaGUgbWF0Y2hlZCByb3V0ZSBvciBudWxsIGlmIG5vIG1hdGNoICovXG4gIHJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz4gfCBudWxsO1xuICAvKiogUm91dGVyLWxldmVsIGNvbnRleHQgKi9cbiAgY29udGV4dDogVENvbnRleHQ7XG4gIC8qKiBSYXcgcXVlcnkgb2JqZWN0IChQaGFzZSAyIGdlbmVyaWMgcGFyc2luZykgKi9cbiAgcmF3UXVlcnk6IFJhd1F1ZXJ5O1xuICAvKiogVHlwZWQgcXVlcnkgb2JqZWN0IChQaGFzZSAzKS4gRmFsbHMgYmFjayB0byByYXdRdWVyeSBpZiBubyBzY2hlbWEgKi9cbiAgcXVlcnk6IFRRdWVyeVNoYXBlO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byByZW5kZXIgYSByb3V0ZSB3aXRoIGN1c3RvbSBsb2dpYy5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlbmRlcjxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSBCaXZhcmlhbnRDYWxsYmFjazxcbiAgKFxuICAgIG9wdHM6IFJvdXRlUmVuZGVyT3B0czxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT4sXG4gICkgPT5cbiAgICBSZWFjdEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkIHwgUHJvbWlzZTxSZWFjdEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkPlxuPjtcblxuLyoqIEFsaWFzIGZvciByZW5kZXIgYXJncyAoa2VwdCBmb3IgcHVibGljIEFQSSBjbGFyaXR5KS4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVuZGVyQXJnczxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSBSb3V0ZVJlbmRlck9wdHM8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuXG4vKipcbiAqIEEgc2luZ2xlIGFjdGl2ZSBwcmVwYXJlZCByb3V0ZSBzZWdtZW50IHdpdGhpbiB0aGUgY3VycmVudCByb3V0ZSBjaGFpbi5cbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8XG4gIFRDb250ZXh0ID0gdW5rbm93bixcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCA9IFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSB7XG4gIC8qKiBUaGUgcm91dGUgZGVmaW5pdGlvbiB0aGF0IHByb2R1Y2VkIHRoaXMgcHJlcGFyZWQgc2VnbWVudCAqL1xuICByb3V0ZU5vZGU/OiBSb3V0ZU5vZGU7XG4gIC8qKiBUaGUgcGF0aCB0aGF0IHdhcyBtYXRjaGVkICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBBYnNvbHV0ZSByb3V0ZSBwYXRoIGZvciB0aGUgY3VycmVudCBzZWdtZW50IHdoZW4ga25vd24gKi9cbiAgZnVsbFBhdGg/OiBzdHJpbmc7XG4gIC8qKiBTdGFibGUga2V5IHVzZWQgZm9yIHJvdXRlIHNlZ21lbnQgcmVjb25jaWxpYXRpb24uICovXG4gIHNlZ21lbnRLZXk6IHN0cmluZztcbiAgLyoqIFBhcmFtcyB0aGF0IG1heSBhZmZlY3QgdGhpcyBzZWdtZW50LiAqL1xuICBwYXJhbU5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgLyoqIE9yZGVyIG9mIHRoZSBzZWdtZW50IGluIHRoZSBhY3RpdmUgcHJlcGFyZWQgY2hhaW4gKi9cbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIC8qKiBBc3luYyByZXNvdXJjZSBleHBvc2luZyB0aGUgcm91dGUncyBwcmVwYXJlZCB2YWx1ZSAqL1xuICBwcmVwYXJlZFJlc291cmNlPzogUHJlcGFyZWRWYWx1ZVJlc291cmNlPFRQcmVwYXJlZD47XG4gIC8qKiBDdXN0b20gcmVuZGVyIGZ1bmN0aW9uIGZvciB0aGlzIHJvdXRlICovXG4gIHJlbmRlcj86IFJvdXRlUmVuZGVyPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIFJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHJlZGlyZWN0VG86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBDb250cm9scyB3aGV0aGVyIHRoaXMgc2VnbWVudCBvd25zIGEgbG9jYWwgU3VzcGVuc2UgYm91bmRhcnkuICovXG4gIHN1c3BlbnNlQm91bmRhcnk6IFJvdXRlU3VzcGVuc2VCb3VuZGFyeTtcbiAgLyoqIEZhbGxiYWNrIHVzZWQgd2hlbiB0aGlzIHNlZ21lbnQncyBsb2NhbCBTdXNwZW5zZSBib3VuZGFyeSBpcyBhY3RpdmUuICovXG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjazxUQ29udGV4dD47XG4gIC8qKiBJZGVudGlmaWVyIHVzZWQgYnkgZGV2ZWxvcGVyIHRvb2xpbmcgdG8gbWFwIHJlbmRlcmVkIERPTSByZWdpb25zICovXG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcXVlcnkgc2NoZW1hIGRlY2xhcmVkIGJ5IHRoZSByb3V0ZSBzZWdtZW50ICovXG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xufTtcblxuLyoqIEJhY2t3YXJkLWNvbXBhdGlibGUgYWxpYXMga2VwdCBkdXJpbmcgdGhlIHNlZ21lbnQtb3JpZW50ZWQgbWlncmF0aW9uLiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRNYXRjaFJvdXRlID0gUHJlcGFyZWRSb3V0ZVNlZ21lbnQ7XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dCA9IHVua25vd24+ID1cbiAgUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+W107XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50U25hcHNob3QgPSB7XG4gIHJvdXRlTm9kZT86IFJvdXRlTm9kZTtcbiAgcGF0aD86IHN0cmluZztcbiAgZnVsbFBhdGg/OiBzdHJpbmc7XG4gIHNlZ21lbnRLZXk6IHN0cmluZztcbiAgcGFyYW1OYW1lczogcmVhZG9ubHkgc3RyaW5nW107XG4gIHNlZ21lbnRJbmRleDogbnVtYmVyO1xuICBwcmVwYXJlZFJlc291cmNlPzogUHJlcGFyZWRWYWx1ZVJlc291cmNlO1xuICByZWRpcmVjdFRvOiBzdHJpbmcgfCBudWxsO1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICBzdXNwZW5zZUJvdW5kYXJ5OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjaztcbiAgaGlnaGxpZ2h0SWQ/OiBzdHJpbmc7XG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xufTtcblxuLyoqXG4gKiBSZXN1bHQgb2YgcHJlcGFyaW5nIGEgbWF0Y2hlZCByb3V0ZSwgaW5jbHVkaW5nIHRoZSBvcmRlcmVkIGNoYWluIG9mIG5lc3RlZCBhY3RpdmUgc2VnbWVudHMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRSb3V0ZUNoYWluPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgb3IgbnVsbCBpZiBubyBtYXRjaCAqL1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+IHwgbnVsbDtcbiAgLyoqIE9yZGVyZWQgYWN0aXZlIHByZXBhcmVkIHNlZ21lbnRzIGZyb20gb3V0ZXJtb3N0IHRvIGlubmVybW9zdCAqL1xuICBzZWdtZW50czogUHJlcGFyZWRSb3V0ZVNlZ21lbnRzPFRDb250ZXh0PjtcbiAgLyoqIEJhY2t3YXJkLWNvbXBhdGlibGUgYWxpYXMga2VwdCBkdXJpbmcgdGhlIHNlZ21lbnQtb3JpZW50ZWQgbWlncmF0aW9uICovXG4gIHJvdXRlczogUHJlcGFyZWRSb3V0ZVNlZ21lbnRzPFRDb250ZXh0Pjtcbn07XG5cbi8qKiBCYWNrd2FyZC1jb21wYXRpYmxlIGFsaWFzIGtlcHQgZHVyaW5nIHRoZSBzZWdtZW50LW9yaWVudGVkIG1pZ3JhdGlvbi4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWF0Y2g8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSBQcmVwYXJlZFJvdXRlQ2hhaW48VFZhcmlhYmxlcywgVENvbnRleHQ+O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50PFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQgPSBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICByb3V0ZU5vZGU/OiBSb3V0ZU5vZGU7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICBzZWdtZW50S2V5OiBzdHJpbmc7XG4gIHBhcmFtTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgcHJlcGFyZWQ6IFRQcmVwYXJlZCB8IHVuZGVmaW5lZDtcbiAgcmVuZGVyPzogUm91dGVSZW5kZXI8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuICByZWRpcmVjdFRvOiBzdHJpbmcgfCBudWxsO1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICBzdXNwZW5zZUJvdW5kYXJ5OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjazxUQ29udGV4dD47XG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVkUHJlcGFyZWRNYXRjaFJvdXRlID0gUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZFJvdXRlQ2hhaW48XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSB7XG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcz4gfCBudWxsO1xuICBzZWdtZW50czogUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD5bXTtcbiAgcm91dGVzOiBSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PltdO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZE1hdGNoPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0gUmVzb2x2ZWRQcmVwYXJlZFJvdXRlQ2hhaW48VFZhcmlhYmxlcywgVENvbnRleHQ+O1xuXG4vKipcbiAqIENvbXBsZXRlIHJvdXRlIGVudHJ5IHJlcHJlc2VudGluZyB0aGUgY3VycmVudCByb3V0ZXIgc3RhdGUuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVFbnRyeTxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IHtcbiAgLyoqIFRoZSBwcmVwYXJlZCBtYXRjaCB3aXRoIGxvYWRlZCBkYXRhIGFuZCBjb21wb25lbnRzICovXG4gIHByZXBhcmVkTWF0Y2g6IFByZXBhcmVkUm91dGVDaGFpbjxUVmFyaWFibGVzLCBUQ29udGV4dD47XG4gIC8qKiBHbG9iYWwgbG9hZCBzdGF0ZSBmb3IgdGhlIGFjdGl2ZSByb3V0ZS4gKi9cbiAgYWN0aXZlTG9hZFN0YXRlOiBSb3V0ZXJBY3RpdmVMb2FkU3RhdGU7XG4gIC8qKiBQZXItc2VnbWVudCBsb2FkIHN0YXRlIGRldGFpbHMgZm9yIHRoZSBhY3RpdmUgcm91dGUuICovXG4gIGxvYWRTdGF0ZTogUm91dGVyTG9hZFN0YXRlO1xuICAvKiogUm91dGVyLWxldmVsIGNvbnRleHQgcmVzb2x2ZWQgZm9yIHRoaXMgZW50cnkgKi9cbiAgY29udGV4dDogVENvbnRleHQ7XG4gIC8qKiBDdXJyZW50IGJyb3dzZXIgbG9jYXRpb24gKi9cbiAgbG9jYXRpb246IExvY2F0aW9uO1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgb3IgbnVsbCBpZiBubyBtYXRjaCAqL1xuICByb3V0ZTogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+IHwgbnVsbDtcbiAgLyoqIFdoZXRoZXIgdG8gZm9yY2UgYSByZS1yZW5kZXIgZXZlbiBpZiB0aGUgcGF0aCBoYXNuJ3QgY2hhbmdlZCAqL1xuICBmb3JjZVJlcmVuZGVyOiBib29sZWFuO1xuICAvKiogUmF3IHNlYXJjaCBzdHJpbmcgKHF1ZXJ5IHBhcnQpIG9mIHRoZSBsb2NhdGlvbiBmb3IgY2hhbmdlIGRldGVjdGlvbiAqL1xuICByYXdTZWFyY2g/OiBzdHJpbmc7XG4gIC8qKiBQYXJzZWQgcmF3IHF1ZXJ5IHBhcmFtZXRlcnMgKHZhbHVlcyBhZ2dyZWdhdGVkOyBkdXBsaWNhdGVzID0+IGFycmF5KSAqL1xuICBxdWVyeTogUmF3UXVlcnk7XG4gIC8qKiBMZWdhY3kgdHlwZWRRdWVyeSByZW1vdmVkIOKAkyB1bmlmaWVkIGZpbHRlcnMgaGFuZGxlIHR5cGVkIGFjY2VzcyAqL1xuICAvLyB0eXBlZFF1ZXJ5PzogbmV2ZXI7XG4gIC8qKiBQYXJzZWQgZmlsdGVycyBvYmplY3QgZGVyaXZlZCBmcm9tIHRoZSBkZWVwZXN0IGFjdGl2ZSBxdWVyeVNjaGVtYSAoaWYgYW55KSAqL1xuICBmaWx0ZXJzPzogUyBleHRlbmRzIEZpbHRlclNjaGVtYSA/IEluZmVyRmlsdGVyUmVzdWx0PFM+IDogVW5rbm93bkZpbHRlcnM7XG4gIC8qKiBEaWFnbm9zdGljcyBmcm9tIGZpbHRlciBwYXJzaW5nIChpZiBhbnkpICovXG4gIGZpbHRlckRpYWdub3N0aWNzPzogRmlsdGVyRGlhZ25vc3RpY1tdO1xuICAvKiogRGVlcGVzdCBhY3RpdmUgcXVlcnkgc2NoZW1hIChGaWx0ZXJTY2hlbWEgZnJvbSBAcGx1bWlsZS9maWx0ZXItcXVlcnkpIGZvciBjdXJyZW50IG1hdGNoZWQgcm91dGUgKi9cbiAgYWN0aXZlUXVlcnlTY2hlbWE/OiBTO1xufTtcblxuLy8gUXVlcnlTY2hlbWEgJiBkZXNjcmlwdG9ycyByZW1vdmVkIChQaGFzZSAyIHVuaWZpZWQgbW9kZWwpIOKAkyBoaXN0b3JpY2FsIHR5cGVzIGludGVudGlvbmFsbHkgb21pdHRlZC5cblxuLyoqXG4gKiBIVFRQIHN0YXR1cyBjb2RlcyBmb3IgcmVkaXJlY3RzLlxuICovXG5leHBvcnQgdHlwZSBSb3V0ZXJSZWRpcmVjdFN0YXR1cyA9IDMwMSB8IDMwMjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWF0Y2hlZCByb3V0ZSB3aXRoIHJlZ2V4IG1hdGNoIHJlc3VsdC5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBNYXRjaGVkUm91dGU8VFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YT4gPSB7XG4gIC8qKiBUaGUgcmVnZXggbWF0Y2ggcmVzdWx0ICovXG4gIG1hdGNoOiBSZWdFeHBFeGVjQXJyYXk7XG4gIC8qKiBUaGUgZmxhdCByb3V0ZSB0aGF0IHdhcyBtYXRjaGVkICovXG4gIHJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz47XG59O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGEgcm91dGUgcmVkaXJlY3QuXG4gKi9cbmV4cG9ydCB0eXBlIFJlZGlyZWN0ID0ge1xuICAvKiogT3B0aW9uYWwgc291cmNlIHBhdGggcGF0dGVybiAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogRGVzdGluYXRpb24gcGF0aCBmb3IgdGhlIHJlZGlyZWN0ICovXG4gIHRvOiBzdHJpbmc7XG4gIC8qKiBIVFRQIHN0YXR1cyBjb2RlIGZvciB0aGUgcmVkaXJlY3QgKi9cbiAgc3RhdHVzPzogUm91dGVyUmVkaXJlY3RTdGF0dXM7XG59O1xuXG4vKiogTWluaW1hbCBlcmFzZWQgcm91dGUgbm9kZSBzaGFwZSB1c2VkIGJ5IHJ1bnRpbWUgaGVscGVycyBhbmQgcmVjdXJzaXZlIHJvdXRlIHRyZWVzLiAqL1xuZXhwb3J0IHR5cGUgUm91dGVOb2RlID0ge1xuICBjaGlsZHJlbj86IHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXTtcbiAgcGF0aD86IHN0cmluZztcbiAgcHJlcGFyZT86IChwYXJhbXM6IFByZXBhcmVQYXJhbXM8YW55LCBhbnksIGFueT4pID0+IHVua25vd247XG4gIHByZXBhcmVTZWFyY2hCZWhhdmlvcj86IFJvdXRlUHJlcGFyZVNlYXJjaEJlaGF2aW9yO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbiAgcmVuZGVyPzogKFxuICAgIG9wdHM6IFJvdXRlUmVuZGVyT3B0czxhbnksIGFueSwgYW55LCBhbnk+LFxuICApID0+XG4gICAgUmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZCB8IFByb21pc2U8UmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZD47XG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIHN1c3BlbnNlQm91bmRhcnk/OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjazxhbnk+O1xufTtcblxuLyoqXG4gKiBCYXNlIHR5cGUgZm9yIGRhdGEgcHJlcGFyZWQgYnkgcm91dGUgcHJlcGFyZSBmdW5jdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVSZXN1bHQgPSB1bmtub3duO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgcGFzc2VkIHRvIGEgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVQYXJhbXM8XG4gIFRDb250ZXh0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgd2l0aCBleHRyYWN0ZWQgcGFyYW1ldGVycyAqL1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+O1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICBtYXRjaGVkUm91dGU6IEZsYXRSb3V0ZTxUVmFyaWFibGVzPjtcbiAgLyoqIFJvdXRlci1sZXZlbCBjb250ZXh0ICovXG4gIGNvbnRleHQ6IFRDb250ZXh0O1xuICAvKiogUmVzb3VyY2UgcGFnZSBmb3IgbGF6eS1sb2FkZWQgY29tcG9uZW50cyAqL1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICAvKiogRXh0cmFjdGVkIFVSTCBwYXJhbWV0ZXJzICovXG4gIHZhcmlhYmxlczogVFZhcmlhYmxlcztcbiAgLyoqIFR5cGVkIHF1ZXJ5IG9iamVjdCAqL1xuICBxdWVyeTogVFF1ZXJ5U2hhcGU7XG59O1xuXG4vKiogQWxpYXMgZm9yIHByZXBhcmUgYXJncyAoa2VwdCBmb3IgcHVibGljIEFQSSBjbGFyaXR5KS4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUHJlcGFyZUFyZ3M8XG4gIFRDb250ZXh0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0gUHJlcGFyZVBhcmFtczxUQ29udGV4dCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIHByZXBhcmUgZGF0YSBmb3IgYSByb3V0ZSBiZWZvcmUgcmVuZGVyaW5nLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIGRhdGEgdGhpcyBmdW5jdGlvbiByZXR1cm5zXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVQcmVwYXJlPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IEJpdmFyaWFudENhbGxiYWNrPFxuICAoXG4gICAgcGFyYW1zOiBQcmVwYXJlUGFyYW1zPFRDb250ZXh0LCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT4sXG4gICkgPT4gTWF5YmVQcm9taXNlPFRQcmVwYXJlZD5cbj47XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgYSBzaW5nbGUgcm91dGUgaW4gdGhlIHJvdXRlci5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZTxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVENoaWxkcmVuIGV4dGVuZHMgcmVhZG9ubHkgKFJvdXRlTm9kZSB8IFJlZGlyZWN0KVtdIHwgdW5kZWZpbmVkID1cbiAgICByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW10gfCB1bmRlZmluZWQsXG4+ID0ge1xuICAvKipcbiAgICogTmVzdGVkIGNoaWxkIHJvdXRlcyBvciByZWRpcmVjdHMuXG4gICAqXG4gICAqIElNUE9SVEFOVDogVGhpcyB1c2VkIHRvIGJlIHR5cGVkIGFzIGAoUm91dGU8YW55LCBQcmVwYXJlUmVzdWx0PiB8IFJlZGlyZWN0KVtdYCB3aGljaFxuICAgKiB3aWRlbmVkIChlcmFzZWQpIHRoZSBnZW5lcmljIHBhcmFtZXRlciB0eXBlcyAobm90YWJseSB0aGUgYFRWYXJpYWJsZXNgIG9mIGVhY2hcbiAgICogY2hpbGQpLiBUaGF0IGNhdXNlZCBUeXBlU2NyaXB0IHRvIHRyZWF0IGV2ZXJ5IGNoaWxkIHJvdXRlJ3MgYHByZXBhcmVgIGNhbGxiYWNrXG4gICAqIGFzIGFjY2VwdGluZyB0aGUgZGVmYXVsdCBgUGFyYW1EYXRhYCBzaGFwZSAoZWZmZWN0aXZlbHkgYFBhcnRpYWw8UmVjb3JkPHN0cmluZyxzdHJpbmd8c3RyaW5nW10+PmApLlxuICAgKiBXaGVuIHVzZXIgY29kZSBzcGVjaWZpZWQgYSBtb3JlIHNwZWNpZmljIHBhcmFtZXRlciBvYmplY3QgKGUuZy4gYHsgc2x1Zzogc3RyaW5nIH1gKVxuICAgKiBmb3IgYSBwYXRoIGxpa2UgYDpzbHVnYCwgdGhlIGZ1bmN0aW9uIHR5cGUgYmVjYW1lIG5vbuKAkWFzc2lnbmFibGUgYmVjYXVzZSBpdHNcbiAgICogcGFyYW1ldGVyIHdhcyBzdHJpY3RlciB0aGFuIHRoZSB3aWRlbmVkIHZlcnNpb24uIEJ5IHN3aXRjaGluZyB0byBgQW55Um91dGVgIHdlXG4gICAqIHJldGFpbiBgYW55YCBpbiB0aGUgZXJhc2VkIHBvc2l0aW9uIGluc3RlYWQgb2YgYSBjb25jcmV0ZSBgUGFyYW1EYXRhYCwgd2hpY2hcbiAgICogYWxsb3dzIHN0cmljdGVyIGNoaWxkIGB2YXJpYWJsZXNgIHNoYXBlcyB3aXRob3V0IGNvbmZsaWN0LlxuICAgKlxuICAgKiBVc2luZyBgQW55Um91dGVgIHB1cnBvc2VseSBwcmVzZXJ2ZXMgaW5kZXBlbmRlbmNlIG9mIGVhY2ggcm91dGUncyBnZW5lcmljXG4gICAqIHBhcmFtZXRlcnMgd2hpbGUgc3RpbGwga2VlcGluZyBydW50aW1lIHJlcHJlc2VudGF0aW9uIGlkZW50aWNhbC5cbiAgICovXG4gIGNoaWxkcmVuPzogVENoaWxkcmVuO1xuICAvKiogUmVzb3VyY2UgcGFnZSBmb3IgbGF6eS1sb2FkZWQgY29tcG9uZW50cyAqL1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICAvKiogQ29udHJvbHMgd2hldGhlciB0aGlzIHJvdXRlIHNlZ21lbnQgb3ducyBhIGxvY2FsIFN1c3BlbnNlIGJvdW5kYXJ5LiAqL1xuICBzdXNwZW5zZUJvdW5kYXJ5PzogUm91dGVTdXNwZW5zZUJvdW5kYXJ5O1xuICAvKiogRmFsbGJhY2sgdXNlZCBieSB0aGlzIHJvdXRlIHNlZ21lbnQgd2hlbiBpdHMgbG9jYWwgU3VzcGVuc2UgYm91bmRhcnkgaXMgYWN0aXZlLiAqL1xuICBmYWxsYmFjaz86IFJvdXRlRmFsbGJhY2s8VENvbnRleHQ+O1xuICAvKiogVVJMIHBhdGggcGF0dGVybiBmb3IgdGhpcyByb3V0ZSAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogRnVuY3Rpb24gdG8gcHJlcGFyZSBkYXRhIGJlZm9yZSByZW5kZXJpbmcgKi9cbiAgcHJlcGFyZT86IFJvdXRlUHJlcGFyZTxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIHRoaXMgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uIHNob3VsZCBydW4gYWdhaW4gd2hlbiBvbmx5XG4gICAqIHRoZSBVUkwgc2VhcmNoIGNoYW5nZXMuIERlZmF1bHRzIHRvIGBhbHdheXNgIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICovXG4gIHByZXBhcmVTZWFyY2hCZWhhdmlvcj86IFJvdXRlUHJlcGFyZVNlYXJjaEJlaGF2aW9yO1xuICAvKiogQ3VzdG9tIHJlbmRlciBmdW5jdGlvbiBmb3IgdGhpcyByb3V0ZSAqL1xuICByZW5kZXI/OiBSb3V0ZVJlbmRlcjxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG4gIC8qKiBVbmlmaWVkIHNjaGVtYSAoZmlsdGVyIC8gcXVlcnkpICovXG4gIHF1ZXJ5U2NoZW1hPzogUztcbn07XG5cbi8qKlxuICogUHJvcHMgcGFzc2VkIHRvIFJvdXRlQ29tcG9uZW50IGluc3RhbmNlcy5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZUNvbXBvbmVudFByb3BzPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgKi9cbiAgY2hpbGRyZW46IFJlYWN0RWxlbWVudDtcbiAgLyoqIFJvdXRlciBjb250ZXh0IGNvbnRhaW5pbmcgbmF2aWdhdGlvbiBhbmQgc3RhdGUgKi9cbiAgcm91dGVyQ29udGV4dDogUm91dGluZ0NvbnRleHRUeXBlPFRWYXJpYWJsZXMsIFMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIFRoZSByb3V0ZSBjb25maWd1cmF0aW9uICovXG4gIHJvdXRlOiBSb3V0ZTx1bmtub3duLCB1bmtub3duLCBQYXJhbURhdGEsIFVua25vd25RdWVyeVNoYXBlLCBTPjtcbn07XG5cbi8qKlxuICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHJvdXRlIGNoYW5nZXMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgU3Vic2NyaWJlQ2FsbGJhY2s8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSAobmV4dEVudHJ5OiBSb3V0ZUVudHJ5PFRWYXJpYWJsZXMsIFMsIFRDb250ZXh0PikgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgUHJlbG9hZFRhcmdldCA9IHtcbiAgcGF0aG5hbWU6IHN0cmluZztcbiAgc2VhcmNoPzogc3RyaW5nO1xuICBzb3VyY2U/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFJvdXRlciBjb250ZXh0IHR5cGUgdGhhdCBwcm92aWRlcyBuYXZpZ2F0aW9uIGFuZCBzdGF0ZSBtYW5hZ2VtZW50LlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRpbmdDb250ZXh0VHlwZTxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKipcbiAgICogU2VyaWFsaXplcyBxdWVyeSBwYXJhbWV0ZXJzIGFuZCBmaWx0ZXJzIHdpdGggdGhlIHNjaGVtYSBvZiB0aGUgZGVzdGluYXRpb25cbiAgICogcm91dGUuIFVubGlrZSBuYXZpZ2F0ZSgpLCB0aGlzIG9ubHkgaW5jbHVkZXMgdmFsdWVzIHN1cHBsaWVkIGJ5IHRoZSBjYWxsZXIuXG4gICAqL1xuICBidWlsZFNlYXJjaDogKG9wdHM6IHtcbiAgICBwYXRobmFtZT86IHN0cmluZztcbiAgICBxdWVyeT86IFVua25vd25RdWVyeVNoYXBlO1xuICAgIGZpbHRlcnM/OiBVbmtub3duRmlsdGVycztcbiAgfSkgPT4gc3RyaW5nO1xuICAvKiogQnJvd3NlciBoaXN0b3J5IGluc3RhbmNlIGZvciBuYXZpZ2F0aW9uICovXG4gIGhpc3Rvcnk6IEJyb3dzZXJIaXN0b3J5O1xuICAvKiogR2V0IHRoZSBjdXJyZW50IHJvdXRlIGVudHJ5ICovXG4gIGdldDogKCkgPT4gUm91dGVFbnRyeTxUVmFyaWFibGVzLCBTLCBUQ29udGV4dD47XG4gIC8qKiBQcmVsb2FkIGNvZGUgZm9yIGEgcm91dGUgd2l0aG91dCBzdG9yaW5nIHRoZSByZXN1bHQgKi9cbiAgcHJlbG9hZENvZGU6ICh0YXJnZXQ6IFByZWxvYWRUYXJnZXQpID0+IHZvaWQ7XG4gIC8qKiBQcmVsb2FkIGNvZGUgYW5kIGRhdGEgZm9yIGEgcm91dGUgd2l0aG91dCBzdG9yaW5nIHRoZSByZXN1bHQgKi9cbiAgcHJlbG9hZDogKHRhcmdldDogUHJlbG9hZFRhcmdldCkgPT4gdm9pZDtcbiAgLyoqIFN1YnNjcmliZSB0byByb3V0ZSBjaGFuZ2VzIChzY2hlbWEgZGVyaXZhYmxlLCBub3QgbmVlZGVkIGluIHNpZ25hdHVyZSkgKi9cbiAgc3Vic2NyaWJlOiAoXG4gICAgY2FsbGJhY2s6IFN1YnNjcmliZUNhbGxiYWNrPFRWYXJpYWJsZXMsIFMsIFRDb250ZXh0PixcbiAgKSA9PiAoKSA9PiB2b2lkO1xuICAvKiogTmF2aWdhdGUgd2l0aCBvcHRpb25hbCBwYXRobmFtZSBhbmQgdHlwZWQvcmF3IHF1ZXJ5IG9iamVjdCAqL1xuICBuYXZpZ2F0ZTogKG9wdHM6IHtcbiAgICBwYXRobmFtZT86IHN0cmluZztcbiAgICBxdWVyeT86IFRRdWVyeVNoYXBlO1xuICAgIC8qKiBPcHRpb25hbCBmaWx0ZXJzIG9iamVjdCB0byBzZXJpYWxpemUgdXNpbmcgdGhlIGFjdGl2ZSBxdWVyeVNjaGVtYSAqL1xuICAgIGZpbHRlcnM/OiBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hID8gSW5mZXJGaWx0ZXJSZXN1bHQ8Uz4gOiBVbmtub3duRmlsdGVycztcbiAgICByZXBsYWNlPzogYm9vbGVhbjtcbiAgfSkgPT4gdm9pZDtcbn07XG5cbi8qKlxuICogUmV0dXJuIHR5cGUgZm9yIHJlc291cmNlIHBhZ2UgbG9hZGVycy5cbiAqL1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VQYWdlUmV0dXJuID1cbiAgeyBkZWZhdWx0OiBDb21wb25lbnRUeXBlPGFueT4gfSB8IENvbXBvbmVudFR5cGU8YW55PjtcblxuLyoqXG4gKiBGdW5jdGlvbiB0aGF0IGxvYWRzIGEgcmVzb3VyY2UgcGFnZSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFJlc291cmNlUGFnZUxvYWRlciA9ICgpID0+IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPjtcblxuZXhwb3J0IHR5cGUgUHJlcGFyZWRWYWx1ZVJlc291cmNlPFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbj4gPSBSZWFkYWJsZVJlc291cmNlPFRQcmVwYXJlZD47XG5cbi8qKiBVdGlsaXR5OiBpbmZlciBmaWx0ZXJzIHR5cGUgZm9yIGEgZ2l2ZW4gcXVlcnkgc2NoZW1hICovXG5leHBvcnQgdHlwZSBJbmZlckZpbHRlcnM8UyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZD4gPVxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hID8gSW5mZXJGaWx0ZXJSZXN1bHQ8Uz4gOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbmV4cG9ydCB0eXBlIHsgRmlsdGVyU2NoZW1hIH07XG5cbi8qKiBSZS1leHBvcnQgaGVscGVyIGZpbHRlci1xdWVyeSB0eXBlIGZvciB1c2VyIGNvbnZlbmllbmNlICovXG5leHBvcnQgdHlwZSB7IEluZmVyRmlsdGVyRmllbGQgYXMgSW5mZXJGaWVsZCB9O1xuXG4vKipcbiAqIFN0cm9uZ2x5IHR5cGVkIGZpbHRlciBhY3Rpb25zIChQaGFzZSAxIGJhc2UgdHlwZXMpLiBJbXBsZW1lbnRhdGlvbiB3aWxsIGJlIHdpcmVkXG4gKiBpbiBhIGxhdGVyIHBoYXNlIHdoZW4gYHVzZUZpbHRlcnNgIGJlY29tZXMgZ2VuZXJpYy5cbiAqXG4gKiBTOiBTY2hlbWEgdHlwZSBwYXNzZWQgdG8gdGhlIGhvb2svcm91dGUuXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVkRmlsdGVyQWN0aW9uczxTIGV4dGVuZHMgRmlsdGVyU2NoZW1hPiA9IHtcbiAgLyoqIFNldCBvciB1bnNldCAodmFsdWUgPSB1bmRlZmluZWQpIGEgc3BlY2lmaWMgb3BlcmF0b3IgdmFsdWUgZm9yIGEgZmllbGQgKi9cbiAgc2V0OiA8XG4gICAgRiBleHRlbmRzIGtleW9mIFMgJiBzdHJpbmcsXG4gICAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPiAmIHN0cmluZyxcbiAgPihcbiAgICBmaWVsZDogRixcbiAgICBvcGVyYXRvcjogTyxcbiAgICB2YWx1ZTogTm9uTnVsbGFibGU8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz5bRl0+W09dIHwgdW5kZWZpbmVkLFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIFJlbW92ZSBhIHdob2xlIGZpZWxkIG9yIGEgc3BlY2lmaWMgb3BlcmF0b3IgKi9cbiAgcmVtb3ZlOiA8XG4gICAgRiBleHRlbmRzIGtleW9mIFMgJiBzdHJpbmcsXG4gICAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPiAmIHN0cmluZyxcbiAgPihcbiAgICBmaWVsZDogRixcbiAgICBvcGVyYXRvcj86IE8sXG4gICAgb3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSxcbiAgKSA9PiB2b2lkO1xuICAvKiogTWVyZ2UgYSBwYXJ0aWFsIGZpbHRlcnMgb2JqZWN0ICovXG4gIG1lcmdlOiAoXG4gICAgcGF0Y2g6IFBhcnRpYWw8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz4+LFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIENsZWFyIGFsbCBmaWx0ZXJzICovXG4gIGNsZWFyOiAob3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSkgPT4gdm9pZDtcbn07XG5cbi8qKiBNaW5pbWFsIHJvdXRlIG5vZGUgc2hhcGUgdXNlZCBieSByZWN1cnNpdmUgdHJlZSB1dGlsaXRpZXMuICovXG5leHBvcnQgdHlwZSBSb3V0ZVRyZWVOb2RlID0gUm91dGVOb2RlO1xuXG4vKipcbiAqIENvbnZlbmllbmNlIHVtYnJlbGxhIHJvdXRlIHR5cGUuXG4gKiBVc2VkIHdoZXJlIHdlIGp1c3Qgd2FudCB0byBjYXJyeSBhcmJpdHJhcnkgcm91dGUgZ2VuZXJpY3MgZm9yd2FyZCB3aXRob3V0IGVyYXN1cmUuXG4gKi9cbmV4cG9ydCB0eXBlIFVua25vd25Sb3V0ZTxUQ29udGV4dCA9IHVua25vd24+ID0gUm91dGU8VENvbnRleHQsIHVua25vd24+O1xuXG4vKiogQmFja3dhcmQtY29tcGF0aWJsZSB1bWJyZWxsYSByb3V0ZSB0eXBlLiAqL1xuZXhwb3J0IHR5cGUgQW55Um91dGUgPSBSb3V0ZU5vZGU7XG5cbi8qKiBFeHRyYWN0IG5lc3RlZCBjaGlsZCByb3V0ZSB1bmlvbiBmcm9tIGEgcm91dGUgZGVmaW5pdGlvbi4gKi9cbmV4cG9ydCB0eXBlIENoaWxkUm91dGVPZjxSPiA9IFIgZXh0ZW5kcyB7IGNoaWxkcmVuPzogcmVhZG9ubHkgKGluZmVyIEMpW10gfVxuICA/IEV4dHJhY3Q8QywgUm91dGVUcmVlTm9kZT5cbiAgOiBuZXZlcjtcblxuLyoqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW4gYSByb3V0ZSB0cmVlIGludG8gYSByb3V0ZSB1bmlvbi4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVHJlZVJvdXRlVW5pb248Uj4gPSBSIGV4dGVuZHMgUm91dGVUcmVlTm9kZVxuICA/IFIgfCBSb3V0ZVRyZWVSb3V0ZVVuaW9uPENoaWxkUm91dGVPZjxSPj5cbiAgOiBuZXZlcjtcblxuLyoqIEZsYXR0ZW4gYSB0dXBsZSBvZiByb3V0ZXMgaW50byBhIHJlY3Vyc2l2ZSByb3V0ZSB1bmlvbi4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVW5pb248Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFJvdXRlVHJlZVJvdXRlVW5pb248XG4gIFJvdXRlc1tudW1iZXJdXG4+O1xuXG4vKiogRXh0cmFjdCB0aGUgcHJlcGFyZWQgdHlwZSBmcm9tIGEgUm91dGUgKi9cbnR5cGUgUm91dGVUeXBlUGFydHM8Uj4gPVxuICBSIGV4dGVuZHMgUm91dGU8XG4gICAgaW5mZXIgVENvbnRleHQsXG4gICAgaW5mZXIgVFByZXBhcmVkLFxuICAgIGluZmVyIFRWYXJzLFxuICAgIGluZmVyIFRRdWVyeSxcbiAgICBpbmZlciBUU2NoZW1hLFxuICAgIGluZmVyIFRDaGlsZHJlbiBleHRlbmRzIHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXSB8IHVuZGVmaW5lZFxuICA+XG4gICAgPyB7XG4gICAgICAgIGNvbnRleHQ6IFRDb250ZXh0O1xuICAgICAgICBwcmVwYXJlZDogVFByZXBhcmVkO1xuICAgICAgICB2YXJpYWJsZXM6IFRWYXJzO1xuICAgICAgICBxdWVyeTogVFF1ZXJ5O1xuICAgICAgICBzY2hlbWE6IFRTY2hlbWE7XG4gICAgICAgIGNoaWxkcmVuOiBUQ2hpbGRyZW47XG4gICAgICB9XG4gICAgOiBuZXZlcjtcblxuLyoqIEV4dHJhY3QgdGhlIHByZXBhcmVkIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZE9mPFI+ID0gUm91dGVUeXBlUGFydHM8Uj5bJ3ByZXBhcmVkJ107XG4vKiogRXh0cmFjdCB0aGUgdmFyaWFibGVzIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBWYXJpYWJsZXNPZjxSPiA9IFJvdXRlVHlwZVBhcnRzPFI+Wyd2YXJpYWJsZXMnXTtcbi8qKiBFeHRyYWN0IHRoZSBxdWVyeSBzaGFwZSB0eXBlIGZyb20gYSBSb3V0ZSAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTaGFwZU9mPFI+ID0gUm91dGVUeXBlUGFydHM8Uj5bJ3F1ZXJ5J107XG5cbi8qKiBQYXRoIGxpdGVyYWwgdHlwZSBpZiBwcmVzZW50ICovXG5leHBvcnQgdHlwZSBQYXRoT2Y8Uj4gPSBSIGV4dGVuZHMgeyBwYXRoPzogaW5mZXIgUCB9XG4gID8gUCBleHRlbmRzIHN0cmluZ1xuICAgID8gUFxuICAgIDogbmV2ZXJcbiAgOiBuZXZlcjtcblxuLyoqIFVuaW9uIG9mIGFsbCBjb25jcmV0ZSBwYXRoIHN0cmluZ3MgZnJvbSBhIHR1cGxlL2FycmF5IG9mIHJvdXRlcyAocmVjdXJzaXZlKS4gKi9cbmV4cG9ydCB0eXBlIFBhdGhzT2Y8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFBhdGhPZjxcbiAgUm91dGVVbmlvbjxSb3V0ZXM+XG4+O1xuXG4vKiogTWFwIHBhdGggLT4gcHJlcGFyZWQgdHlwZSB1bmlvbiAocGVyLXJvdXRlIHByZWNpc2lvbiBpcyBpbnRlbnRpb25hbGx5IGVyYXNlZCBoZXJlKS4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWFwPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIFBhdGhzT2Y8Um91dGVzPixcbiAgUHJlcGFyZWRPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+IHwgdW5kZWZpbmVkXG4+O1xuXG4vKiogTWFwIHBhdGggLT4gb3JkZXJlZCBwcmVwYXJlZCBzZWdtZW50IHR1cGxlIG9yIGFycmF5IHNoYXBlLiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRTZWdtZW50c01hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIFByZXBhcmVkUm91dGVTZWdtZW50W11cbj47XG5cbi8qKiBNYXAgcGF0aCAtPiBxdWVyeSBzaGFwZSAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTaGFwZU1hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIFF1ZXJ5U2hhcGVPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+XG4+O1xuXG4vKiogRXh0cmFjdCBzY2hlbWEgZnJvbSBhIHJvdXRlICh1bmRlZmluZWQgaWYgYWJzZW50KSAqL1xuZXhwb3J0IHR5cGUgU2NoZW1hT2Y8Uj4gPSBSIGV4dGVuZHMgeyBxdWVyeVNjaGVtYT86IGluZmVyIFMgfVxuICA/IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWFcbiAgICA/IFNcbiAgICA6IHVuZGVmaW5lZFxuICA6IHVuZGVmaW5lZDtcblxuLyoqIEZpbHRlcnMgaW5mZXJyZWQgZnJvbSB0aGUgcm91dGUncyBzY2hlbWEgKi9cbmV4cG9ydCB0eXBlIEZpbHRlcnNPZjxSPiA9XG4gIFNjaGVtYU9mPFI+IGV4dGVuZHMgRmlsdGVyU2NoZW1hXG4gICAgPyBJbmZlckZpbHRlclJlc3VsdDxTY2hlbWFPZjxSPj5cbiAgICA6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuLyoqIE1hcCBwYXRoIC0+IGluZmVycmVkIGZpbHRlcnMgdHlwZSAqL1xuZXhwb3J0IHR5cGUgRmlsdGVyc01hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIEZpbHRlcnNPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+XG4+O1xuXG4vKiogUnVudGltZSBoZWxwZXIgaW50ZXJmYWNlIGF1Z21lbnRhdGlvbiBmb3Igcm91dGVyIGNvbnRleHQgKGFkZGVkIGluIGNyZWF0ZVJvdXRlcikgKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkQWNjZXNzPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIG5ldmVyLFxuICBuZXZlclxuPiAmIHtcbiAgLyoqIFJldHJpZXZlIHRoZSBwcmVwYXJlZCBvYmplY3QgZm9yIGEgY29uY3JldGUgcGF0aCAoaWYgY3VycmVudCBtYXRjaCBpbmNsdWRlcyBpdCkgKi9cbiAgZ2V0UHJlcGFyZWQ6IChwYXRoOiBzdHJpbmcpID0+IFByZXBhcmVkT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PiB8IHVuZGVmaW5lZDtcbiAgLyoqIFJldHJpZXZlIHRoZSBmdWxsIHByZXBhcmVkIHNlZ21lbnQgY2hhaW4gZm9yIGEgY29uY3JldGUgcGF0aC4gKi9cbiAgZ2V0UHJlcGFyZWRTZWdtZW50czogKHBhdGg6IHN0cmluZykgPT4gUHJlcGFyZWRSb3V0ZVNlZ21lbnRTbmFwc2hvdFtdO1xuICAvLyBnZXRUeXBlZFF1ZXJ5IHJlbW92ZWQg4oCTIHVzZSBmaWx0ZXJzL3F1ZXJ5IGRpcmVjdGx5XG59O1xuXG4vKiogSW5wdXQgc2hhcGUgZm9yIGEgbmF2aWdhdGlvbiB0byBhIHNwZWNpZmljIHBhdGggKHR5cGVkIHF1ZXJ5KSAqL1xuZXhwb3J0IHR5cGUgTmF2aWdhdGVJbnB1dEZvclBhdGg8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IHtcbiAgcGF0aG5hbWU6IFBhdGhzT2Y8Um91dGVzPjtcbiAgcXVlcnk/OiBRdWVyeVNoYXBlT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PjtcbiAgZmlsdGVycz86IEZpbHRlcnNPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+O1xuICByZXBsYWNlPzogYm9vbGVhbjtcbn07XG5cbi8qKiBGYWxsYmFjayB1bnR5cGVkIG5hdmlnYXRlIGlucHV0ICovXG5leHBvcnQgdHlwZSBOYXZpZ2F0ZUlucHV0VW50eXBlZCA9IHtcbiAgcGF0aG5hbWU/OiBzdHJpbmc7XG4gIHF1ZXJ5PzogVW5rbm93blF1ZXJ5U2hhcGU7XG4gIGZpbHRlcnM/OiBVbmtub3duRmlsdGVycztcbiAgcmVwbGFjZT86IGJvb2xlYW47XG59O1xuXG4vKiogT3ZlcmxvYWRlZCBuYXZpZ2F0ZSBmdW5jdGlvbiB0eXBlIChjb21waWxlLXRpbWUgb25seTsgcnVudGltZSBzaW5nbGUgaW1wbCkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGVPdmVybG9hZHM8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiB7XG4gIChvcHRzOiBOYXZpZ2F0ZUlucHV0Rm9yUGF0aDxSb3V0ZXM+KTogdm9pZDtcbiAgKG9wdHM6IE5hdmlnYXRlSW5wdXRVbnR5cGVkKTogdm9pZDtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSwgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUsIEpTWCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRGlhZ25vc3RpYyBhcyBGaWx0ZXJEaWFnbm9zdGljIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L2Vycm9ycy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFNjaGVtYSBhcyBGaWx0ZXJTY2hlbWEsXG4gIEluZmVyRmlsdGVycyBhcyBJbmZlckZpbHRlclJlc3VsdCxcbiAgSW5mZXJGaWVsZCBhcyBJbmZlckZpbHRlckZpZWxkLFxufSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBNYXRjaCwgTWF0Y2hGdW5jdGlvbiwgUGFyYW1EYXRhIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgdHlwZSB7IEZsYXRSb3V0ZSB9IGZyb20gJy4vYnVpbGRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlUGFnZSB9IGZyb20gJy4vUmVzb3VyY2VQYWdlLmpzJztcbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnkgfSBmcm9tICcuL2hpc3RvcnkvaW5kZXguanMnO1xuXG5leHBvcnQgdHlwZSBNYXliZVByb21pc2U8VD4gPSBUIHwgUHJvbWlzZTxUPjtcbmV4cG9ydCB0eXBlIFJhd1F1ZXJ5VmFsdWUgPSBzdHJpbmcgfCBzdHJpbmdbXTtcbmV4cG9ydCB0eXBlIFJhd1F1ZXJ5ID0gUmVjb3JkPHN0cmluZywgUmF3UXVlcnlWYWx1ZT47XG5leHBvcnQgdHlwZSBVbmtub3duUXVlcnlTaGFwZSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuZXhwb3J0IHR5cGUgVW5rbm93bkZpbHRlcnMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IHR5cGUgUm91dGVyU3RydWN0dXJlZERlc3RpbmF0aW9uPFxuICBURmlsdGVycyBleHRlbmRzIFVua25vd25GaWx0ZXJzID0gVW5rbm93bkZpbHRlcnMsXG4gIFRRdWVyeSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICBwYXRobmFtZTogc3RyaW5nO1xuICBmaWx0ZXJzPzogVEZpbHRlcnM7XG4gIHF1ZXJ5PzogVFF1ZXJ5O1xuICBoYXNoPzogc3RyaW5nO1xuICBzZWFyY2g/OiBuZXZlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlckV4cGxpY2l0U2VhcmNoRGVzdGluYXRpb24gPSB7XG4gIHBhdGhuYW1lOiBzdHJpbmc7XG4gIHNlYXJjaD86IHN0cmluZztcbiAgaGFzaD86IHN0cmluZztcbiAgZmlsdGVycz86IG5ldmVyO1xuICBxdWVyeT86IG5ldmVyO1xufTtcblxuLyoqIEEgcm91dGVyIGRlc3RpbmF0aW9uIHdpdGggZWl0aGVyIHN0cnVjdHVyZWQgc3RhdGUgb3IgYW4gZXhwbGljaXQgc2VhcmNoIHN0cmluZy4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlckRlc3RpbmF0aW9uPFxuICBURmlsdGVycyBleHRlbmRzIFVua25vd25GaWx0ZXJzID0gVW5rbm93bkZpbHRlcnMsXG4gIFRRdWVyeSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID1cbiAgfCBSb3V0ZXJTdHJ1Y3R1cmVkRGVzdGluYXRpb248VEZpbHRlcnMsIFRRdWVyeT5cbiAgfCBSb3V0ZXJFeHBsaWNpdFNlYXJjaERlc3RpbmF0aW9uO1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJEZXN0aW5hdGlvbklucHV0PFxuICBURmlsdGVycyBleHRlbmRzIFVua25vd25GaWx0ZXJzID0gVW5rbm93bkZpbHRlcnMsXG4gIFRRdWVyeSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0gc3RyaW5nIHwgUm91dGVyRGVzdGluYXRpb248VEZpbHRlcnMsIFRRdWVyeT47XG5cbmV4cG9ydCB0eXBlIEFzeW5jUmVzb3VyY2VTdGF0dXMgPSAnaWRsZScgfCAncGVuZGluZycgfCAncmVzb2x2ZWQnIHwgJ3JlamVjdGVkJztcblxuZXhwb3J0IHR5cGUgUm91dGVyQWN0aXZlTG9hZFN0YXR1cyA9IEFzeW5jUmVzb3VyY2VTdGF0dXM7XG5cbmV4cG9ydCB0eXBlIFJvdXRlckFjdGl2ZUxvYWRTdGF0ZSA9IHtcbiAgc3RhdHVzOiBSb3V0ZXJBY3RpdmVMb2FkU3RhdHVzO1xuICBwZW5kaW5nQ291bnQ6IG51bWJlcjtcbiAgcmVqZWN0ZWRDb3VudDogbnVtYmVyO1xuICB2ZXJzaW9uOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJTZWdtZW50TG9hZFN0YXRlID0ge1xuICBwYXRoPzogc3RyaW5nO1xuICBmdWxsUGF0aD86IHN0cmluZztcbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIHByZXBhcmVTdGF0dXM6IEFzeW5jUmVzb3VyY2VTdGF0dXM7XG4gIGNvZGVTdGF0dXM6IEFzeW5jUmVzb3VyY2VTdGF0dXM7XG4gIHN0YXR1czogUm91dGVyQWN0aXZlTG9hZFN0YXR1cztcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlckxvYWRTdGF0ZSA9IHtcbiAgc3RhdHVzOiBSb3V0ZXJBY3RpdmVMb2FkU3RhdHVzO1xuICBwZW5kaW5nQ291bnQ6IG51bWJlcjtcbiAgcmVqZWN0ZWRDb3VudDogbnVtYmVyO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIHNlZ21lbnRzOiBSb3V0ZXJTZWdtZW50TG9hZFN0YXRlW107XG59O1xuXG5leHBvcnQgdHlwZSBSb3V0ZVByZXBhcmVTZWFyY2hCZWhhdmlvciA9ICdhbHdheXMnIHwgJ3BhdGgnO1xuXG5leHBvcnQgdHlwZSBSb3V0ZVN1c3BlbnNlQm91bmRhcnkgPSAnaW5oZXJpdCcgfCAnc2VnbWVudCcgfCAnbm9uZSc7XG5cbmV4cG9ydCB0eXBlIFJvdXRlRmFsbGJhY2tBcmdzPFRDb250ZXh0ID0gdW5rbm93bj4gPSB7XG4gIHNlZ21lbnQ6IFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PjtcbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxQYXJhbURhdGE+IHwgbnVsbDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG5leHBvcnQgdHlwZSBSb3V0ZUZhbGxiYWNrPFRDb250ZXh0ID0gdW5rbm93bj4gPVxuICBSZWFjdE5vZGUgfCAoKGFyZ3M6IFJvdXRlRmFsbGJhY2tBcmdzPFRDb250ZXh0PikgPT4gUmVhY3ROb2RlKTtcblxuZXhwb3J0IHR5cGUgUmVhZGFibGVSZXNvdXJjZTxUPiA9IHtcbiAgZ2V0OiAoKSA9PiBUIHwgdW5kZWZpbmVkO1xuICBnZXRFcnJvcjogKCkgPT4gdW5rbm93bjtcbiAgZ2V0U3RhdHVzOiAoKSA9PiBBc3luY1Jlc291cmNlU3RhdHVzO1xuICBsb2FkOiAoKSA9PiBQcm9taXNlPFQ+O1xuICByZWFkOiAoKSA9PiBUO1xufTtcblxuLyoqXG4gKiBJbnB1dCB0eXBlIGZvciBjcmVhdGluZyBhIEZsYXRSb3V0ZSBpbnN0YW5jZS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBGbGF0Um91dGVJbnB1dDxUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhPiA9IHtcbiAgLyoqIFRoZSBVUkwgcGF0aCBwYXR0ZXJuIGZvciB0aGlzIHJvdXRlICovXG4gIHBhdGg6IHN0cmluZztcbiAgLyoqIFBlci1yZW5kZXJlZC1yb3V0ZSBtZXRhZGF0YSBhbGlnbmVkIHdpdGggYHJvdXRlc2AuICovXG4gIHJvdXRlU2VnbWVudHM/OiBGbGF0Um91dGVTZWdtZW50W107XG4gIC8qKiBPcHRpb25hbCByZWRpcmVjdCBkZXN0aW5hdGlvbiBpZiB0aGlzIHJvdXRlIHNob3VsZCByZWRpcmVjdCAqL1xuICByZWRpcmVjdFRvPzogc3RyaW5nO1xuICAvKiogRnVuY3Rpb24gdG8gbWF0Y2ggVVJMIHBhdGhzIGFnYWluc3QgdGhpcyByb3V0ZSBwYXR0ZXJuICovXG4gIG1hdGNoRnVuY3Rpb246IE1hdGNoRnVuY3Rpb248VFZhcmlhYmxlcz47XG4gIC8qKiBOZXN0ZWQgcm91dGVzIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIHdpdGhpbiB0aGlzIHJvdXRlICovXG4gIHJvdXRlczogQW55Um91dGVbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEZsYXRSb3V0ZVNlZ21lbnQgPSB7XG4gIC8qKiBTdGFibGUga2V5IGZvciB0aGUgcmVuZGVyZWQgc2VnbWVudCB3aXRoaW4gYSBmbGF0IHJvdXRlIGNoYWluLiAqL1xuICBrZXk6IHN0cmluZztcbiAgLyoqIExvY2FsIHJvdXRlIHBhdGggY29uZmlndXJlZCBvbiB0aGUgcm91dGUgbm9kZS4gKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqIEFic29sdXRlIHBhdGggcmVwcmVzZW50ZWQgYnkgdGhpcyBzZWdtZW50LiAqL1xuICBmdWxsUGF0aDogc3RyaW5nO1xuICAvKiogUGFyYW1zIHRoYXQgbWF5IGJlIHJlYWQgYnkgdGhpcyBzZWdtZW50LCBpbmNsdWRpbmcgYW5jZXN0b3IgcGFyYW1zLiAqL1xuICBwYXJhbU5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG1hdGNoZWQgcm91dGUgd2l0aCBleHRyYWN0ZWQgcGFyYW1ldGVycyBhbmQgbWV0YWRhdGEuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGE+ID0ge1xuICAvKiogVGhlIG1hdGNoIHJlc3VsdCBmcm9tIHBhdGgtdG8tcmVnZXhwICovXG4gIG1hdGNoOiBNYXRjaDxUVmFyaWFibGVzPjtcbiAgLyoqIEV4dHJhY3RlZCBwYXJhbWV0ZXJzIGZyb20gdGhlIFVSTCBwYXRoICovXG4gIHBhcmFtczogVFZhcmlhYmxlcztcbiAgLyoqIFRoZSBtYXRjaGVkIHBhdGggc3RyaW5nICovXG4gIHBhdGg6IHN0cmluZztcbiAgLyoqIFRoZSBmbGF0IHJvdXRlIHRoYXQgd2FzIG1hdGNoZWQgKi9cbiAgcm91dGU6IEZsYXRSb3V0ZTxUVmFyaWFibGVzPjtcbn07XG5cbi8qKlxuICogQSBSZWFjdCBjb21wb25lbnQgdGhhdCBjYW4gYmUgdXNlZCBhcyBhIHJvdXRlIGNvbXBvbmVudC5cbiAqIEB0ZW1wbGF0ZSBUUHJvcHMgLSBUaGUgcHJvcHMgdHlwZSBmb3IgdGhlIGNvbXBvbmVudFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlYWN0Q29tcG9uZW50PFRQcm9wcyA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9IChcbiAgcHJvcHM6IFRQcm9wcyxcbikgPT4gSlNYLkVsZW1lbnQgfCBudWxsO1xuXG50eXBlIEJpdmFyaWFudENhbGxiYWNrPEZuIGV4dGVuZHMgKC4uLmFyZ3M6IG5ldmVyW10pID0+IHVua25vd24+ID0ge1xuICAvLyBQdWJsaWMgcm91dGUgY2FsbGJhY2tzIG5lZWQgdG8gcmVtYWluIGFzc2lnbmFibGUgYWZ0ZXIgdGhlaXIgc2NoZW1hLXNwZWNpZmljXG4gIC8vIHBhcmFtZXRlcnMgYXJlIGVyYXNlZCB0byBSb3V0ZU5vZGUgYnkgcmVjdXJzaXZlIHJvdXRlIGFuZCByb3V0ZXIgaGVscGVycy5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZXRob2Qtc2lnbmF0dXJlLXN0eWxlXG4gIGJpdmFyaWFuY2VIYWNrKC4uLmFyZ3M6IFBhcmFtZXRlcnM8Rm4+KTogUmV0dXJuVHlwZTxGbj47XG59WydiaXZhcmlhbmNlSGFjayddO1xuXG4vKipcbiAqIE9wdGlvbnMgcGFzc2VkIHRvIGEgcm91dGUgcmVuZGVyIGZ1bmN0aW9uLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIHByZXBhcmVkIGRhdGEgcmV0dXJuZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvblxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVuZGVyT3B0czxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbj4gPSB7XG4gIC8qKiBDaGlsZCBjb21wb25lbnRzIHRvIHJlbmRlciB3aXRoaW4gdGhpcyByb3V0ZSAqL1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICAvKiogT3B0aW9uYWwgY29tcG9uZW50IHRvIHJlbmRlciAoZnJvbSBSZXNvdXJjZVBhZ2UpICovXG4gIENvbXBvbmVudD86IFJvdXRlUmVhY3RDb21wb25lbnQ7XG4gIC8qKiBEYXRhIHByZXBhcmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb24gKi9cbiAgcHJlcGFyZWQ6IFRQcmVwYXJlZCB8IHVuZGVmaW5lZDtcbiAgLyoqIFRoZSBwcmVwYXJlZCBzZWdtZW50IHRoYXQgaXMgYmVpbmcgcmVuZGVyZWQgKi9cbiAgcHJlcGFyZWRTZWdtZW50OiBQcmVwYXJlZFJvdXRlU2VnbWVudDxcbiAgICBUQ29udGV4dCxcbiAgICBUUHJlcGFyZWQsXG4gICAgVFZhcmlhYmxlcyxcbiAgICBUUXVlcnlTaGFwZVxuICA+O1xuICAvKiogQWxpYXMga2VwdCBmb3IgbWlncmF0aW9uIGNvbXBhdGliaWxpdHkgKi9cbiAgcHJlcGFyZWRSb3V0ZTogUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8XG4gICAgVENvbnRleHQsXG4gICAgVFByZXBhcmVkLFxuICAgIFRWYXJpYWJsZXMsXG4gICAgVFF1ZXJ5U2hhcGVcbiAgPjtcbiAgLyoqIFRoZSBmdWxsIHByZXBhcmVkIGNoYWluIGZvciB0aGUgY3VycmVudCBtYXRjaCAqL1xuICBwcmVwYXJlZFNlZ21lbnRzOiBQcmVwYXJlZFJvdXRlU2VnbWVudHM8VENvbnRleHQ+O1xuICAvKiogSW5kZXggb2YgdGhlIGN1cnJlbnQgc2VnbWVudCBpbiB0aGUgcHJlcGFyZWQgY2hhaW4gKi9cbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIC8qKiBUaGUgbGVhZiBzZWdtZW50IG9mIHRoZSBwcmVwYXJlZCBjaGFpbiAqL1xuICBsZWFmU2VnbWVudDogUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+O1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgb3IgbnVsbCBpZiBubyBtYXRjaCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+IHwgbnVsbDtcbiAgLyoqIFJvdXRlci1sZXZlbCBjb250ZXh0ICovXG4gIGNvbnRleHQ6IFRDb250ZXh0O1xuICAvKiogUmF3IHF1ZXJ5IG9iamVjdCAoUGhhc2UgMiBnZW5lcmljIHBhcnNpbmcpICovXG4gIHJhd1F1ZXJ5OiBSYXdRdWVyeTtcbiAgLyoqIFJhdyBVUkwgcXVlcnkgdmFsdWVzLiAqL1xuICBxdWVyeTogVFF1ZXJ5U2hhcGU7XG4gIC8qKiBQYXJzZWQgZmlsdGVycyB3aGVuIHRoZSBhY3RpdmUgZGVzdGluYXRpb24gZGVjbGFyZXMgYSBxdWVyeSBzY2hlbWEuICovXG4gIGZpbHRlcnM6IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWFcbiAgICA/IEluZmVyRmlsdGVyUmVzdWx0PFM+XG4gICAgOiBVbmtub3duRmlsdGVycyB8IHVuZGVmaW5lZDtcbn07XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gcmVuZGVyIGEgcm91dGUgd2l0aCBjdXN0b20gbG9naWMuXG4gKiBAdGVtcGxhdGUgVFByZXBhcmVkIC0gVGhlIHR5cGUgb2YgcHJlcGFyZWQgZGF0YSByZXR1cm5lZCBieSB0aGUgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVSZW5kZXI8XG4gIFRDb250ZXh0LFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4+ID0gQml2YXJpYW50Q2FsbGJhY2s8XG4gIChcbiAgICBvcHRzOiBSb3V0ZVJlbmRlck9wdHM8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGUsIFM+LFxuICApID0+XG4gICAgUmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZCB8IFByb21pc2U8UmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZD5cbj47XG5cbi8qKiBBbGlhcyBmb3IgcmVuZGVyIGFyZ3MgKGtlcHQgZm9yIHB1YmxpYyBBUEkgY2xhcml0eSkuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlbmRlckFyZ3M8XG4gIFRDb250ZXh0LFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4+ID0gUm91dGVSZW5kZXJPcHRzPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlLCBTPjtcblxuLyoqXG4gKiBBIHNpbmdsZSBhY3RpdmUgcHJlcGFyZWQgcm91dGUgc2VnbWVudCB3aXRoaW4gdGhlIGN1cnJlbnQgcm91dGUgY2hhaW4uXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50PFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQgPSBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogVGhlIHJvdXRlIGRlZmluaXRpb24gdGhhdCBwcm9kdWNlZCB0aGlzIHByZXBhcmVkIHNlZ21lbnQgKi9cbiAgcm91dGVOb2RlPzogUm91dGVOb2RlO1xuICAvKiogVGhlIHBhdGggdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogQWJzb2x1dGUgcm91dGUgcGF0aCBmb3IgdGhlIGN1cnJlbnQgc2VnbWVudCB3aGVuIGtub3duICovXG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICAvKiogU3RhYmxlIGtleSB1c2VkIGZvciByb3V0ZSBzZWdtZW50IHJlY29uY2lsaWF0aW9uLiAqL1xuICBzZWdtZW50S2V5OiBzdHJpbmc7XG4gIC8qKiBQYXJhbXMgdGhhdCBtYXkgYWZmZWN0IHRoaXMgc2VnbWVudC4gKi9cbiAgcGFyYW1OYW1lczogcmVhZG9ubHkgc3RyaW5nW107XG4gIC8qKiBPcmRlciBvZiB0aGUgc2VnbWVudCBpbiB0aGUgYWN0aXZlIHByZXBhcmVkIGNoYWluICovXG4gIHNlZ21lbnRJbmRleDogbnVtYmVyO1xuICAvKiogQXN5bmMgcmVzb3VyY2UgZXhwb3NpbmcgdGhlIHJvdXRlJ3MgcHJlcGFyZWQgdmFsdWUgKi9cbiAgcHJlcGFyZWRSZXNvdXJjZT86IFByZXBhcmVkVmFsdWVSZXNvdXJjZTxUUHJlcGFyZWQ+O1xuICAvKiogQ3VzdG9tIHJlbmRlciBmdW5jdGlvbiBmb3IgdGhpcyByb3V0ZSAqL1xuICByZW5kZXI/OiBSb3V0ZVJlbmRlcjxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG4gIC8qKiBSZWRpcmVjdCBkZXN0aW5hdGlvbiBpZiB0aGlzIHJvdXRlIHNob3VsZCByZWRpcmVjdCAqL1xuICByZWRpcmVjdFRvOiBzdHJpbmcgfCBudWxsO1xuICAvKiogUmVzb3VyY2UgcGFnZSBmb3IgbGF6eS1sb2FkZWQgY29tcG9uZW50cyAqL1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICAvKiogQ29udHJvbHMgd2hldGhlciB0aGlzIHNlZ21lbnQgb3ducyBhIGxvY2FsIFN1c3BlbnNlIGJvdW5kYXJ5LiAqL1xuICBzdXNwZW5zZUJvdW5kYXJ5OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIC8qKiBGYWxsYmFjayB1c2VkIHdoZW4gdGhpcyBzZWdtZW50J3MgbG9jYWwgU3VzcGVuc2UgYm91bmRhcnkgaXMgYWN0aXZlLiAqL1xuICBmYWxsYmFjaz86IFJvdXRlRmFsbGJhY2s8VENvbnRleHQ+O1xuICAvKiogSWRlbnRpZmllciB1c2VkIGJ5IGRldmVsb3BlciB0b29saW5nIHRvIG1hcCByZW5kZXJlZCBET00gcmVnaW9ucyAqL1xuICBoaWdobGlnaHRJZD86IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHF1ZXJ5IHNjaGVtYSBkZWNsYXJlZCBieSB0aGUgcm91dGUgc2VnbWVudCAqL1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbn07XG5cbi8qKiBCYWNrd2FyZC1jb21wYXRpYmxlIGFsaWFzIGtlcHQgZHVyaW5nIHRoZSBzZWdtZW50LW9yaWVudGVkIG1pZ3JhdGlvbi4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWF0Y2hSb3V0ZSA9IFByZXBhcmVkUm91dGVTZWdtZW50O1xuXG5leHBvcnQgdHlwZSBQcmVwYXJlZFJvdXRlU2VnbWVudHM8VENvbnRleHQgPSB1bmtub3duPiA9XG4gIFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PltdO1xuXG5leHBvcnQgdHlwZSBQcmVwYXJlZFJvdXRlU2VnbWVudFNuYXBzaG90ID0ge1xuICByb3V0ZU5vZGU/OiBSb3V0ZU5vZGU7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICBzZWdtZW50S2V5OiBzdHJpbmc7XG4gIHBhcmFtTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgcHJlcGFyZWRSZXNvdXJjZT86IFByZXBhcmVkVmFsdWVSZXNvdXJjZTtcbiAgcmVkaXJlY3RUbzogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgc3VzcGVuc2VCb3VuZGFyeTogUm91dGVTdXNwZW5zZUJvdW5kYXJ5O1xuICBmYWxsYmFjaz86IFJvdXRlRmFsbGJhY2s7XG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbn07XG5cbi8qKlxuICogUmVzdWx0IG9mIHByZXBhcmluZyBhIG1hdGNoZWQgcm91dGUsIGluY2x1ZGluZyB0aGUgb3JkZXJlZCBjaGFpbiBvZiBuZXN0ZWQgYWN0aXZlIHNlZ21lbnRzLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVDaGFpbjxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IHtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIG9yIG51bGwgaWYgbm8gbWF0Y2ggKi9cbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIC8qKiBPcmRlcmVkIGFjdGl2ZSBwcmVwYXJlZCBzZWdtZW50cyBmcm9tIG91dGVybW9zdCB0byBpbm5lcm1vc3QgKi9cbiAgc2VnbWVudHM6IFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dD47XG4gIC8qKiBCYWNrd2FyZC1jb21wYXRpYmxlIGFsaWFzIGtlcHQgZHVyaW5nIHRoZSBzZWdtZW50LW9yaWVudGVkIG1pZ3JhdGlvbiAqL1xuICByb3V0ZXM6IFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dD47XG59O1xuXG4vKiogQmFja3dhcmQtY29tcGF0aWJsZSBhbGlhcyBrZXB0IGR1cmluZyB0aGUgc2VnbWVudC1vcmllbnRlZCBtaWdyYXRpb24uICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZE1hdGNoPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0gUHJlcGFyZWRSb3V0ZUNoYWluPFRWYXJpYWJsZXMsIFRDb250ZXh0PjtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgcm91dGVOb2RlPzogUm91dGVOb2RlO1xuICBwYXRoPzogc3RyaW5nO1xuICBmdWxsUGF0aD86IHN0cmluZztcbiAgc2VnbWVudEtleTogc3RyaW5nO1xuICBwYXJhbU5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIHByZXBhcmVkOiBUUHJlcGFyZWQgfCB1bmRlZmluZWQ7XG4gIHJlbmRlcj86IFJvdXRlUmVuZGVyPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgcmVkaXJlY3RUbzogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgc3VzcGVuc2VCb3VuZGFyeTogUm91dGVTdXNwZW5zZUJvdW5kYXJ5O1xuICBmYWxsYmFjaz86IFJvdXRlRmFsbGJhY2s8VENvbnRleHQ+O1xuICBoaWdobGlnaHRJZD86IHN0cmluZztcbiAgcXVlcnlTY2hlbWE/OiBGaWx0ZXJTY2hlbWE7XG59O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZFByZXBhcmVkTWF0Y2hSb3V0ZSA9IFJlc29sdmVkUHJlcGFyZWRSb3V0ZVNlZ21lbnQ7XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVkUHJlcGFyZWRSb3V0ZUNoYWluPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+IHwgbnVsbDtcbiAgc2VnbWVudHM6IFJlc29sdmVkUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+W107XG4gIHJvdXRlczogUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD5bXTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVkUHJlcGFyZWRNYXRjaDxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IFJlc29sdmVkUHJlcGFyZWRSb3V0ZUNoYWluPFRWYXJpYWJsZXMsIFRDb250ZXh0PjtcblxuLyoqXG4gKiBDb21wbGV0ZSByb3V0ZSBlbnRyeSByZXByZXNlbnRpbmcgdGhlIGN1cnJlbnQgcm91dGVyIHN0YXRlLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlRW50cnk8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSB7XG4gIC8qKiBUaGUgcHJlcGFyZWQgbWF0Y2ggd2l0aCBsb2FkZWQgZGF0YSBhbmQgY29tcG9uZW50cyAqL1xuICBwcmVwYXJlZE1hdGNoOiBQcmVwYXJlZFJvdXRlQ2hhaW48VFZhcmlhYmxlcywgVENvbnRleHQ+O1xuICAvKiogR2xvYmFsIGxvYWQgc3RhdGUgZm9yIHRoZSBhY3RpdmUgcm91dGUuICovXG4gIGFjdGl2ZUxvYWRTdGF0ZTogUm91dGVyQWN0aXZlTG9hZFN0YXRlO1xuICAvKiogUGVyLXNlZ21lbnQgbG9hZCBzdGF0ZSBkZXRhaWxzIGZvciB0aGUgYWN0aXZlIHJvdXRlLiAqL1xuICBsb2FkU3RhdGU6IFJvdXRlckxvYWRTdGF0ZTtcbiAgLyoqIFJvdXRlci1sZXZlbCBjb250ZXh0IHJlc29sdmVkIGZvciB0aGlzIGVudHJ5ICovXG4gIGNvbnRleHQ6IFRDb250ZXh0O1xuICAvKiogQ3VycmVudCBicm93c2VyIGxvY2F0aW9uICovXG4gIGxvY2F0aW9uOiBMb2NhdGlvbjtcbiAgLyoqIFRoZSBtYXRjaGVkIHJvdXRlIG9yIG51bGwgaWYgbm8gbWF0Y2ggKi9cbiAgcm91dGU6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFyaWFibGVzPiB8IG51bGw7XG4gIC8qKiBXaGV0aGVyIHRvIGZvcmNlIGEgcmUtcmVuZGVyIGV2ZW4gaWYgdGhlIHBhdGggaGFzbid0IGNoYW5nZWQgKi9cbiAgZm9yY2VSZXJlbmRlcjogYm9vbGVhbjtcbiAgLyoqIFJhdyBzZWFyY2ggc3RyaW5nIChxdWVyeSBwYXJ0KSBvZiB0aGUgbG9jYXRpb24gZm9yIGNoYW5nZSBkZXRlY3Rpb24gKi9cbiAgcmF3U2VhcmNoPzogc3RyaW5nO1xuICAvKiogUGFyc2VkIHJhdyBxdWVyeSBwYXJhbWV0ZXJzICh2YWx1ZXMgYWdncmVnYXRlZDsgZHVwbGljYXRlcyA9PiBhcnJheSkgKi9cbiAgcXVlcnk6IFJhd1F1ZXJ5O1xuICAvKiogTGVnYWN5IHR5cGVkUXVlcnkgcmVtb3ZlZCDigJMgdW5pZmllZCBmaWx0ZXJzIGhhbmRsZSB0eXBlZCBhY2Nlc3MgKi9cbiAgLy8gdHlwZWRRdWVyeT86IG5ldmVyO1xuICAvKiogUGFyc2VkIGZpbHRlcnMgb2JqZWN0IGRlcml2ZWQgZnJvbSB0aGUgZGVlcGVzdCBhY3RpdmUgcXVlcnlTY2hlbWEgKGlmIGFueSkgKi9cbiAgZmlsdGVycz86IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgPyBJbmZlckZpbHRlclJlc3VsdDxTPiA6IFVua25vd25GaWx0ZXJzO1xuICAvKiogRGlhZ25vc3RpY3MgZnJvbSBmaWx0ZXIgcGFyc2luZyAoaWYgYW55KSAqL1xuICBmaWx0ZXJEaWFnbm9zdGljcz86IEZpbHRlckRpYWdub3N0aWNbXTtcbiAgLyoqIERlZXBlc3QgYWN0aXZlIHF1ZXJ5IHNjaGVtYSAoRmlsdGVyU2NoZW1hIGZyb20gQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5KSBmb3IgY3VycmVudCBtYXRjaGVkIHJvdXRlICovXG4gIGFjdGl2ZVF1ZXJ5U2NoZW1hPzogUztcbn07XG5cbi8vIFF1ZXJ5U2NoZW1hICYgZGVzY3JpcHRvcnMgcmVtb3ZlZCAoUGhhc2UgMiB1bmlmaWVkIG1vZGVsKSDigJMgaGlzdG9yaWNhbCB0eXBlcyBpbnRlbnRpb25hbGx5IG9taXR0ZWQuXG5cbi8qKlxuICogSFRUUCBzdGF0dXMgY29kZXMgZm9yIHJlZGlyZWN0cy5cbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVyUmVkaXJlY3RTdGF0dXMgPSAzMDEgfCAzMDI7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIG1hdGNoZWQgcm91dGUgd2l0aCByZWdleCBtYXRjaCByZXN1bHQuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGE+ID0ge1xuICAvKiogVGhlIHJlZ2V4IG1hdGNoIHJlc3VsdCAqL1xuICBtYXRjaDogUmVnRXhwRXhlY0FycmF5O1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+O1xufTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHJvdXRlIHJlZGlyZWN0LlxuICovXG5leHBvcnQgdHlwZSBSZWRpcmVjdCA9IHtcbiAgLyoqIE9wdGlvbmFsIHNvdXJjZSBwYXRoIHBhdHRlcm4gKi9cbiAgcGF0aD86IHN0cmluZztcbiAgLyoqIERlc3RpbmF0aW9uIHBhdGggZm9yIHRoZSByZWRpcmVjdCAqL1xuICB0bzogc3RyaW5nO1xuICAvKiogSFRUUCBzdGF0dXMgY29kZSBmb3IgdGhlIHJlZGlyZWN0ICovXG4gIHN0YXR1cz86IFJvdXRlclJlZGlyZWN0U3RhdHVzO1xufTtcblxuLyoqIE1pbmltYWwgZXJhc2VkIHJvdXRlIG5vZGUgc2hhcGUgdXNlZCBieSBydW50aW1lIGhlbHBlcnMgYW5kIHJlY3Vyc2l2ZSByb3V0ZSB0cmVlcy4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlTm9kZSA9IHtcbiAgY2hpbGRyZW4/OiByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW107XG4gIHBhdGg/OiBzdHJpbmc7XG4gIHByZXBhcmU/OiBCaXZhcmlhbnRDYWxsYmFjazxcbiAgICAocGFyYW1zOiBQcmVwYXJlUGFyYW1zPGFueSwgYW55LCBhbnk+KSA9PiB1bmtub3duXG4gID47XG4gIHByZXBhcmVTZWFyY2hCZWhhdmlvcj86IFJvdXRlUHJlcGFyZVNlYXJjaEJlaGF2aW9yO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbiAgcmVuZGVyPzogQml2YXJpYW50Q2FsbGJhY2s8XG4gICAgKFxuICAgICAgb3B0czogUm91dGVSZW5kZXJPcHRzPGFueSwgYW55LCBhbnksIGFueT4sXG4gICAgKSA9PlxuICAgICAgUmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZCB8IFByb21pc2U8UmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZD5cbiAgPjtcbiAgcmVzb3VyY2VQYWdlPzogUmVzb3VyY2VQYWdlIHwgbnVsbDtcbiAgc3VzcGVuc2VCb3VuZGFyeT86IFJvdXRlU3VzcGVuc2VCb3VuZGFyeTtcbiAgZmFsbGJhY2s/OiBSb3V0ZUZhbGxiYWNrPGFueT47XG59O1xuXG4vKipcbiAqIEJhc2UgdHlwZSBmb3IgZGF0YSBwcmVwYXJlZCBieSByb3V0ZSBwcmVwYXJlIGZ1bmN0aW9ucy5cbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZVJlc3VsdCA9IHVua25vd247XG5cbi8qKlxuICogUGFyYW1ldGVycyBwYXNzZWQgdG8gYSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZVBhcmFtczxcbiAgVENvbnRleHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbj4gPSB7XG4gIC8qKiBUaGUgbWF0Y2hlZCByb3V0ZSB3aXRoIGV4dHJhY3RlZCBwYXJhbWV0ZXJzICovXG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcz47XG4gIC8qKiBUaGUgZmxhdCByb3V0ZSB0aGF0IHdhcyBtYXRjaGVkICovXG4gIG1hdGNoZWRSb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+O1xuICAvKiogUm91dGVyLWxldmVsIGNvbnRleHQgKi9cbiAgY29udGV4dDogVENvbnRleHQ7XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBFeHRyYWN0ZWQgVVJMIHBhcmFtZXRlcnMgKi9cbiAgdmFyaWFibGVzOiBUVmFyaWFibGVzO1xuICAvKiogUmF3IFVSTCBxdWVyeSB2YWx1ZXMuICovXG4gIHF1ZXJ5OiBUUXVlcnlTaGFwZTtcbiAgLyoqIFJhdyBxdWVyeSB2YWx1ZXMgYmVmb3JlIHNjaGVtYSBwYXJzaW5nLiAqL1xuICByYXdRdWVyeTogUmF3UXVlcnk7XG4gIC8qKiBQYXJzZWQgZmlsdGVycyB3aGVuIHRoaXMgZGVzdGluYXRpb24gZGVjbGFyZXMgYSBxdWVyeSBzY2hlbWEuICovXG4gIGZpbHRlcnM6IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWFcbiAgICA/IEluZmVyRmlsdGVyUmVzdWx0PFM+XG4gICAgOiBVbmtub3duRmlsdGVycyB8IHVuZGVmaW5lZDtcbn07XG5cbi8qKiBBbGlhcyBmb3IgcHJlcGFyZSBhcmdzIChrZXB0IGZvciBwdWJsaWMgQVBJIGNsYXJpdHkpLiAqL1xuZXhwb3J0IHR5cGUgUm91dGVQcmVwYXJlQXJnczxcbiAgVENvbnRleHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbj4gPSBQcmVwYXJlUGFyYW1zPFRDb250ZXh0LCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZSwgUz47XG5cbi8qKlxuICogRnVuY3Rpb24gdG8gcHJlcGFyZSBkYXRhIGZvciBhIHJvdXRlIGJlZm9yZSByZW5kZXJpbmcuXG4gKiBAdGVtcGxhdGUgVFByZXBhcmVkIC0gVGhlIHR5cGUgb2YgZGF0YSB0aGlzIGZ1bmN0aW9uIHJldHVybnNcbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVByZXBhcmU8XG4gIFRDb250ZXh0LFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4+ID0gQml2YXJpYW50Q2FsbGJhY2s8XG4gIChcbiAgICBwYXJhbXM6IFByZXBhcmVQYXJhbXM8VENvbnRleHQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlLCBTPixcbiAgKSA9PiBNYXliZVByb21pc2U8VFByZXBhcmVkPlxuPjtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBhIHNpbmdsZSByb3V0ZSBpbiB0aGUgcm91dGVyLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIHByZXBhcmVkIGRhdGEgcmV0dXJuZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvblxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUQ2hpbGRyZW4gZXh0ZW5kcyByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW10gfCB1bmRlZmluZWQgPVxuICAgIHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXSB8IHVuZGVmaW5lZCxcbj4gPSB7XG4gIC8qKlxuICAgKiBOZXN0ZWQgY2hpbGQgcm91dGVzIG9yIHJlZGlyZWN0cy5cbiAgICpcbiAgICogSU1QT1JUQU5UOiBUaGlzIHVzZWQgdG8gYmUgdHlwZWQgYXMgYChSb3V0ZTxhbnksIFByZXBhcmVSZXN1bHQ+IHwgUmVkaXJlY3QpW11gIHdoaWNoXG4gICAqIHdpZGVuZWQgKGVyYXNlZCkgdGhlIGdlbmVyaWMgcGFyYW1ldGVyIHR5cGVzIChub3RhYmx5IHRoZSBgVFZhcmlhYmxlc2Agb2YgZWFjaFxuICAgKiBjaGlsZCkuIFRoYXQgY2F1c2VkIFR5cGVTY3JpcHQgdG8gdHJlYXQgZXZlcnkgY2hpbGQgcm91dGUncyBgcHJlcGFyZWAgY2FsbGJhY2tcbiAgICogYXMgYWNjZXB0aW5nIHRoZSBkZWZhdWx0IGBQYXJhbURhdGFgIHNoYXBlIChlZmZlY3RpdmVseSBgUGFydGlhbDxSZWNvcmQ8c3RyaW5nLHN0cmluZ3xzdHJpbmdbXT4+YCkuXG4gICAqIFdoZW4gdXNlciBjb2RlIHNwZWNpZmllZCBhIG1vcmUgc3BlY2lmaWMgcGFyYW1ldGVyIG9iamVjdCAoZS5nLiBgeyBzbHVnOiBzdHJpbmcgfWApXG4gICAqIGZvciBhIHBhdGggbGlrZSBgOnNsdWdgLCB0aGUgZnVuY3Rpb24gdHlwZSBiZWNhbWUgbm9u4oCRYXNzaWduYWJsZSBiZWNhdXNlIGl0c1xuICAgKiBwYXJhbWV0ZXIgd2FzIHN0cmljdGVyIHRoYW4gdGhlIHdpZGVuZWQgdmVyc2lvbi4gQnkgc3dpdGNoaW5nIHRvIGBBbnlSb3V0ZWAgd2VcbiAgICogcmV0YWluIGBhbnlgIGluIHRoZSBlcmFzZWQgcG9zaXRpb24gaW5zdGVhZCBvZiBhIGNvbmNyZXRlIGBQYXJhbURhdGFgLCB3aGljaFxuICAgKiBhbGxvd3Mgc3RyaWN0ZXIgY2hpbGQgYHZhcmlhYmxlc2Agc2hhcGVzIHdpdGhvdXQgY29uZmxpY3QuXG4gICAqXG4gICAqIFVzaW5nIGBBbnlSb3V0ZWAgcHVycG9zZWx5IHByZXNlcnZlcyBpbmRlcGVuZGVuY2Ugb2YgZWFjaCByb3V0ZSdzIGdlbmVyaWNcbiAgICogcGFyYW1ldGVycyB3aGlsZSBzdGlsbCBrZWVwaW5nIHJ1bnRpbWUgcmVwcmVzZW50YXRpb24gaWRlbnRpY2FsLlxuICAgKi9cbiAgY2hpbGRyZW4/OiBUQ2hpbGRyZW47XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBDb250cm9scyB3aGV0aGVyIHRoaXMgcm91dGUgc2VnbWVudCBvd25zIGEgbG9jYWwgU3VzcGVuc2UgYm91bmRhcnkuICovXG4gIHN1c3BlbnNlQm91bmRhcnk/OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIC8qKiBGYWxsYmFjayB1c2VkIGJ5IHRoaXMgcm91dGUgc2VnbWVudCB3aGVuIGl0cyBsb2NhbCBTdXNwZW5zZSBib3VuZGFyeSBpcyBhY3RpdmUuICovXG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjazxUQ29udGV4dD47XG4gIC8qKiBVUkwgcGF0aCBwYXR0ZXJuIGZvciB0aGlzIHJvdXRlICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBGdW5jdGlvbiB0byBwcmVwYXJlIGRhdGEgYmVmb3JlIHJlbmRlcmluZyAqL1xuICBwcmVwYXJlPzogUm91dGVQcmVwYXJlPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlLCBTPjtcbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdGhpcyByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb24gc2hvdWxkIHJ1biBhZ2FpbiB3aGVuIG9ubHlcbiAgICogdGhlIFVSTCBzZWFyY2ggY2hhbmdlcy4gRGVmYXVsdHMgdG8gYGFsd2F5c2AgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAgKi9cbiAgcHJlcGFyZVNlYXJjaEJlaGF2aW9yPzogUm91dGVQcmVwYXJlU2VhcmNoQmVoYXZpb3I7XG4gIC8qKiBDdXN0b20gcmVuZGVyIGZ1bmN0aW9uIGZvciB0aGlzIHJvdXRlICovXG4gIHJlbmRlcj86IFJvdXRlUmVuZGVyPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlLCBTPjtcbiAgLyoqIFVuaWZpZWQgc2NoZW1hIChmaWx0ZXIgLyBxdWVyeSkgKi9cbiAgcXVlcnlTY2hlbWE/OiBTO1xufTtcblxuLyoqXG4gKiBQcm9wcyBwYXNzZWQgdG8gUm91dGVDb21wb25lbnQgaW5zdGFuY2VzLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlQ29tcG9uZW50UHJvcHM8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSB7XG4gIC8qKiBDaGlsZCBjb21wb25lbnRzIHRvIHJlbmRlciAqL1xuICBjaGlsZHJlbjogUmVhY3RFbGVtZW50O1xuICAvKiogUm91dGVyIGNvbnRleHQgY29udGFpbmluZyBuYXZpZ2F0aW9uIGFuZCBzdGF0ZSAqL1xuICByb3V0ZXJDb250ZXh0OiBSb3V0aW5nQ29udGV4dFR5cGU8VFZhcmlhYmxlcywgUywgVFF1ZXJ5U2hhcGU+O1xuICAvKiogVGhlIHJvdXRlIGNvbmZpZ3VyYXRpb24gKi9cbiAgcm91dGU6IFJvdXRlPHVua25vd24sIHVua25vd24sIFBhcmFtRGF0YSwgVW5rbm93blF1ZXJ5U2hhcGUsIFM+O1xufTtcblxuLyoqXG4gKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igcm91dGUgY2hhbmdlcy5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBTdWJzY3JpYmVDYWxsYmFjazxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IChuZXh0RW50cnk6IFJvdXRlRW50cnk8VFZhcmlhYmxlcywgUywgVENvbnRleHQ+KSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBQcmVsb2FkVGFyZ2V0ID0ge1xuICBwYXRobmFtZTogc3RyaW5nO1xuICBzZWFyY2g/OiBzdHJpbmc7XG4gIHNvdXJjZT86IHN0cmluZztcbn07XG5cbi8qKlxuICogUm91dGVyIGNvbnRleHQgdHlwZSB0aGF0IHByb3ZpZGVzIG5hdmlnYXRpb24gYW5kIHN0YXRlIG1hbmFnZW1lbnQuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGluZ0NvbnRleHRUeXBlPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSB7XG4gIC8qKlxuICAgKiBTZXJpYWxpemVzIHF1ZXJ5IHBhcmFtZXRlcnMgYW5kIGZpbHRlcnMgd2l0aCB0aGUgc2NoZW1hIG9mIHRoZSBkZXN0aW5hdGlvblxuICAgKiByb3V0ZS4gVW5saWtlIG5hdmlnYXRlKCksIHRoaXMgb25seSBpbmNsdWRlcyB2YWx1ZXMgc3VwcGxpZWQgYnkgdGhlIGNhbGxlci5cbiAgICovXG4gIGJ1aWxkU2VhcmNoOiAob3B0czoge1xuICAgIHBhdGhuYW1lPzogc3RyaW5nO1xuICAgIHF1ZXJ5PzogVW5rbm93blF1ZXJ5U2hhcGU7XG4gICAgZmlsdGVycz86IFVua25vd25GaWx0ZXJzO1xuICB9KSA9PiBzdHJpbmc7XG4gIC8qKiBCcm93c2VyIGhpc3RvcnkgaW5zdGFuY2UgZm9yIG5hdmlnYXRpb24gKi9cbiAgaGlzdG9yeTogQnJvd3Nlckhpc3Rvcnk7XG4gIC8qKiBHZXQgdGhlIGN1cnJlbnQgcm91dGUgZW50cnkgKi9cbiAgZ2V0OiAoKSA9PiBSb3V0ZUVudHJ5PFRWYXJpYWJsZXMsIFMsIFRDb250ZXh0PjtcbiAgLyoqIFByZWxvYWQgY29kZSBmb3IgYSByb3V0ZSB3aXRob3V0IHN0b3JpbmcgdGhlIHJlc3VsdCAqL1xuICBwcmVsb2FkQ29kZTogKHRhcmdldDogUHJlbG9hZFRhcmdldCkgPT4gdm9pZDtcbiAgLyoqIFByZWxvYWQgY29kZSBhbmQgZGF0YSBmb3IgYSByb3V0ZSB3aXRob3V0IHN0b3JpbmcgdGhlIHJlc3VsdCAqL1xuICBwcmVsb2FkOiAodGFyZ2V0OiBQcmVsb2FkVGFyZ2V0KSA9PiB2b2lkO1xuICAvKiogU3Vic2NyaWJlIHRvIHJvdXRlIGNoYW5nZXMgKHNjaGVtYSBkZXJpdmFibGUsIG5vdCBuZWVkZWQgaW4gc2lnbmF0dXJlKSAqL1xuICBzdWJzY3JpYmU6IChcbiAgICBjYWxsYmFjazogU3Vic2NyaWJlQ2FsbGJhY2s8VFZhcmlhYmxlcywgUywgVENvbnRleHQ+LFxuICApID0+ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB3aXRoIG9wdGlvbmFsIHBhdGhuYW1lIGFuZCB0eXBlZC9yYXcgcXVlcnkgb2JqZWN0ICovXG4gIG5hdmlnYXRlOiAob3B0czoge1xuICAgIHBhdGhuYW1lPzogc3RyaW5nO1xuICAgIHF1ZXJ5PzogVFF1ZXJ5U2hhcGU7XG4gICAgLyoqIE9wdGlvbmFsIGZpbHRlcnMgb2JqZWN0IHRvIHNlcmlhbGl6ZSB1c2luZyB0aGUgYWN0aXZlIHF1ZXJ5U2NoZW1hICovXG4gICAgZmlsdGVycz86IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgPyBJbmZlckZpbHRlclJlc3VsdDxTPiA6IFVua25vd25GaWx0ZXJzO1xuICAgIGhhc2g/OiBzdHJpbmc7XG4gICAgcmVwbGFjZT86IGJvb2xlYW47XG4gIH0pID0+IHZvaWQ7XG59O1xuXG4vKipcbiAqIFJldHVybiB0eXBlIGZvciByZXNvdXJjZSBwYWdlIGxvYWRlcnMuXG4gKi9cbmV4cG9ydCB0eXBlIFJlc291cmNlUGFnZVJldHVybiA9XG4gIHsgZGVmYXVsdDogQ29tcG9uZW50VHlwZTxhbnk+IH0gfCBDb21wb25lbnRUeXBlPGFueT47XG5cbi8qKlxuICogRnVuY3Rpb24gdGhhdCBsb2FkcyBhIHJlc291cmNlIHBhZ2UgY29tcG9uZW50LlxuICovXG5leHBvcnQgdHlwZSBSZXNvdXJjZVBhZ2VMb2FkZXIgPSAoKSA9PiBQcm9taXNlPFJlc291cmNlUGFnZVJldHVybj47XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkVmFsdWVSZXNvdXJjZTxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCA9IFByZXBhcmVSZXN1bHQsXG4+ID0gUmVhZGFibGVSZXNvdXJjZTxUUHJlcGFyZWQ+O1xuXG4vKiogVXRpbGl0eTogaW5mZXIgZmlsdGVycyB0eXBlIGZvciBhIGdpdmVuIHF1ZXJ5IHNjaGVtYSAqL1xuZXhwb3J0IHR5cGUgSW5mZXJGaWx0ZXJzPFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQ+ID1cbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSA/IEluZmVyRmlsdGVyUmVzdWx0PFM+IDogUmVjb3JkPHN0cmluZywgbmV2ZXI+O1xuXG5leHBvcnQgdHlwZSB7IEZpbHRlclNjaGVtYSB9O1xuXG4vKiogUmUtZXhwb3J0IGhlbHBlciBmaWx0ZXItcXVlcnkgdHlwZSBmb3IgdXNlciBjb252ZW5pZW5jZSAqL1xuZXhwb3J0IHR5cGUgeyBJbmZlckZpbHRlckZpZWxkIGFzIEluZmVyRmllbGQgfTtcblxuLyoqXG4gKiBTdHJvbmdseSB0eXBlZCBmaWx0ZXIgYWN0aW9ucyAoUGhhc2UgMSBiYXNlIHR5cGVzKS4gSW1wbGVtZW50YXRpb24gd2lsbCBiZSB3aXJlZFxuICogaW4gYSBsYXRlciBwaGFzZSB3aGVuIGB1c2VGaWx0ZXJzYCBiZWNvbWVzIGdlbmVyaWMuXG4gKlxuICogUzogU2NoZW1hIHR5cGUgcGFzc2VkIHRvIHRoZSBob29rL3JvdXRlLlxuICovXG5leHBvcnQgdHlwZSBUeXBlZEZpbHRlckFjdGlvbnM8UyBleHRlbmRzIEZpbHRlclNjaGVtYT4gPSB7XG4gIC8qKiBTZXQgb3IgdW5zZXQgKHZhbHVlID0gdW5kZWZpbmVkKSBhIHNwZWNpZmljIG9wZXJhdG9yIHZhbHVlIGZvciBhIGZpZWxkICovXG4gIHNldDogPFxuICAgIEYgZXh0ZW5kcyBrZXlvZiBTICYgc3RyaW5nLFxuICAgIE8gZXh0ZW5kcyBrZXlvZiBOb25OdWxsYWJsZTxJbmZlckZpbHRlclJlc3VsdDxTPltGXT4gJiBzdHJpbmcsXG4gID4oXG4gICAgZmllbGQ6IEYsXG4gICAgb3BlcmF0b3I6IE8sXG4gICAgdmFsdWU6IE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPltPXSB8IHVuZGVmaW5lZCxcbiAgICBvcHRzPzogeyByZXBsYWNlPzogYm9vbGVhbiB9LFxuICApID0+IHZvaWQ7XG4gIC8qKiBSZW1vdmUgYSB3aG9sZSBmaWVsZCBvciBhIHNwZWNpZmljIG9wZXJhdG9yICovXG4gIHJlbW92ZTogPFxuICAgIEYgZXh0ZW5kcyBrZXlvZiBTICYgc3RyaW5nLFxuICAgIE8gZXh0ZW5kcyBrZXlvZiBOb25OdWxsYWJsZTxJbmZlckZpbHRlclJlc3VsdDxTPltGXT4gJiBzdHJpbmcsXG4gID4oXG4gICAgZmllbGQ6IEYsXG4gICAgb3BlcmF0b3I/OiBPLFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIE1lcmdlIGEgcGFydGlhbCBmaWx0ZXJzIG9iamVjdCAqL1xuICBtZXJnZTogKFxuICAgIHBhdGNoOiBQYXJ0aWFsPEluZmVyRmlsdGVyUmVzdWx0PFM+PixcbiAgICBvcHRzPzogeyByZXBsYWNlPzogYm9vbGVhbiB9LFxuICApID0+IHZvaWQ7XG4gIC8qKiBDbGVhciBhbGwgZmlsdGVycyAqL1xuICBjbGVhcjogKG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0pID0+IHZvaWQ7XG59O1xuXG4vKiogTWluaW1hbCByb3V0ZSBub2RlIHNoYXBlIHVzZWQgYnkgcmVjdXJzaXZlIHRyZWUgdXRpbGl0aWVzLiAqL1xuZXhwb3J0IHR5cGUgUm91dGVUcmVlTm9kZSA9IFJvdXRlTm9kZTtcblxuLyoqXG4gKiBDb252ZW5pZW5jZSB1bWJyZWxsYSByb3V0ZSB0eXBlLlxuICogVXNlZCB3aGVyZSB3ZSBqdXN0IHdhbnQgdG8gY2FycnkgYXJiaXRyYXJ5IHJvdXRlIGdlbmVyaWNzIGZvcndhcmQgd2l0aG91dCBlcmFzdXJlLlxuICovXG5leHBvcnQgdHlwZSBVbmtub3duUm91dGU8VENvbnRleHQgPSB1bmtub3duPiA9IFJvdXRlPFRDb250ZXh0LCB1bmtub3duPjtcblxuLyoqIEJhY2t3YXJkLWNvbXBhdGlibGUgdW1icmVsbGEgcm91dGUgdHlwZS4gKi9cbmV4cG9ydCB0eXBlIEFueVJvdXRlID0gUm91dGVOb2RlO1xuXG4vKiogRXh0cmFjdCBuZXN0ZWQgY2hpbGQgcm91dGUgdW5pb24gZnJvbSBhIHJvdXRlIGRlZmluaXRpb24uICovXG5leHBvcnQgdHlwZSBDaGlsZFJvdXRlT2Y8Uj4gPSBSIGV4dGVuZHMgeyBjaGlsZHJlbj86IHJlYWRvbmx5IChpbmZlciBDKVtdIH1cbiAgPyBFeHRyYWN0PEMsIFJvdXRlVHJlZU5vZGU+XG4gIDogbmV2ZXI7XG5cbi8qKiBSZWN1cnNpdmVseSBmbGF0dGVuIGEgcm91dGUgdHJlZSBpbnRvIGEgcm91dGUgdW5pb24uICovXG5leHBvcnQgdHlwZSBSb3V0ZVRyZWVSb3V0ZVVuaW9uPFI+ID0gUiBleHRlbmRzIFJvdXRlVHJlZU5vZGVcbiAgPyBSIHwgUm91dGVUcmVlUm91dGVVbmlvbjxDaGlsZFJvdXRlT2Y8Uj4+XG4gIDogbmV2ZXI7XG5cbi8qKiBGbGF0dGVuIGEgdHVwbGUgb2Ygcm91dGVzIGludG8gYSByZWN1cnNpdmUgcm91dGUgdW5pb24uICovXG5leHBvcnQgdHlwZSBSb3V0ZVVuaW9uPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSb3V0ZVRyZWVSb3V0ZVVuaW9uPFxuICBSb3V0ZXNbbnVtYmVyXVxuPjtcblxuLyoqIEV4dHJhY3QgdGhlIHByZXBhcmVkIHR5cGUgZnJvbSBhIFJvdXRlICovXG50eXBlIFJvdXRlVHlwZVBhcnRzPFI+ID1cbiAgUiBleHRlbmRzIFJvdXRlPFxuICAgIGluZmVyIFRDb250ZXh0LFxuICAgIGluZmVyIFRQcmVwYXJlZCxcbiAgICBpbmZlciBUVmFycyxcbiAgICBpbmZlciBUUXVlcnksXG4gICAgaW5mZXIgVFNjaGVtYSxcbiAgICBpbmZlciBUQ2hpbGRyZW4gZXh0ZW5kcyByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW10gfCB1bmRlZmluZWRcbiAgPlxuICAgID8ge1xuICAgICAgICBjb250ZXh0OiBUQ29udGV4dDtcbiAgICAgICAgcHJlcGFyZWQ6IFRQcmVwYXJlZDtcbiAgICAgICAgdmFyaWFibGVzOiBUVmFycztcbiAgICAgICAgcXVlcnk6IFRRdWVyeTtcbiAgICAgICAgc2NoZW1hOiBUU2NoZW1hO1xuICAgICAgICBjaGlsZHJlbjogVENoaWxkcmVuO1xuICAgICAgfVxuICAgIDogbmV2ZXI7XG5cbi8qKiBFeHRyYWN0IHRoZSBwcmVwYXJlZCB0eXBlIGZyb20gYSBSb3V0ZSAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRPZjxSPiA9IFJvdXRlVHlwZVBhcnRzPFI+WydwcmVwYXJlZCddO1xuLyoqIEV4dHJhY3QgdGhlIHZhcmlhYmxlcyB0eXBlIGZyb20gYSBSb3V0ZSAqL1xuZXhwb3J0IHR5cGUgVmFyaWFibGVzT2Y8Uj4gPSBSb3V0ZVR5cGVQYXJ0czxSPlsndmFyaWFibGVzJ107XG4vKiogRXh0cmFjdCB0aGUgcXVlcnkgc2hhcGUgdHlwZSBmcm9tIGEgUm91dGUgKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5U2hhcGVPZjxSPiA9IFJvdXRlVHlwZVBhcnRzPFI+WydxdWVyeSddO1xuXG4vKiogUGF0aCBsaXRlcmFsIHR5cGUgaWYgcHJlc2VudCAqL1xuZXhwb3J0IHR5cGUgUGF0aE9mPFI+ID0gUiBleHRlbmRzIHsgcGF0aD86IGluZmVyIFAgfVxuICA/IFAgZXh0ZW5kcyBzdHJpbmdcbiAgICA/IFBcbiAgICA6IG5ldmVyXG4gIDogbmV2ZXI7XG5cbi8qKiBVbmlvbiBvZiBhbGwgY29uY3JldGUgcGF0aCBzdHJpbmdzIGZyb20gYSB0dXBsZS9hcnJheSBvZiByb3V0ZXMgKHJlY3Vyc2l2ZSkuICovXG5leHBvcnQgdHlwZSBQYXRoc09mPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBQYXRoT2Y8XG4gIFJvdXRlVW5pb248Um91dGVzPlxuPjtcblxuLyoqIE1hcCBwYXRoIC0+IHByZXBhcmVkIHR5cGUgdW5pb24gKHBlci1yb3V0ZSBwcmVjaXNpb24gaXMgaW50ZW50aW9uYWxseSBlcmFzZWQgaGVyZSkuICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZE1hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIFByZXBhcmVkT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PiB8IHVuZGVmaW5lZFxuPjtcblxuLyoqIE1hcCBwYXRoIC0+IG9yZGVyZWQgcHJlcGFyZWQgc2VnbWVudCB0dXBsZSBvciBhcnJheSBzaGFwZS4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkU2VnbWVudHNNYXA8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFJlY29yZDxcbiAgUGF0aHNPZjxSb3V0ZXM+LFxuICBQcmVwYXJlZFJvdXRlU2VnbWVudFtdXG4+O1xuXG4vKiogTWFwIHBhdGggLT4gcXVlcnkgc2hhcGUgKi9cbmV4cG9ydCB0eXBlIFF1ZXJ5U2hhcGVNYXA8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFJlY29yZDxcbiAgUGF0aHNPZjxSb3V0ZXM+LFxuICBRdWVyeVNoYXBlT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PlxuPjtcblxuLyoqIEV4dHJhY3Qgc2NoZW1hIGZyb20gYSByb3V0ZSAodW5kZWZpbmVkIGlmIGFic2VudCkgKi9cbmV4cG9ydCB0eXBlIFNjaGVtYU9mPFI+ID0gUiBleHRlbmRzIHsgcXVlcnlTY2hlbWE/OiBpbmZlciBTIH1cbiAgPyBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hXG4gICAgPyBTXG4gICAgOiB1bmRlZmluZWRcbiAgOiB1bmRlZmluZWQ7XG5cbi8qKiBGaWx0ZXJzIGluZmVycmVkIGZyb20gdGhlIHJvdXRlJ3Mgc2NoZW1hICovXG5leHBvcnQgdHlwZSBGaWx0ZXJzT2Y8Uj4gPVxuICBTY2hlbWFPZjxSPiBleHRlbmRzIEZpbHRlclNjaGVtYVxuICAgID8gSW5mZXJGaWx0ZXJSZXN1bHQ8U2NoZW1hT2Y8Uj4+XG4gICAgOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbi8qKiBNYXAgcGF0aCAtPiBpbmZlcnJlZCBmaWx0ZXJzIHR5cGUgKi9cbmV4cG9ydCB0eXBlIEZpbHRlcnNNYXA8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFJlY29yZDxcbiAgUGF0aHNPZjxSb3V0ZXM+LFxuICBGaWx0ZXJzT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PlxuPjtcblxuLyoqIFJ1bnRpbWUgaGVscGVyIGludGVyZmFjZSBhdWdtZW50YXRpb24gZm9yIHJvdXRlciBjb250ZXh0IChhZGRlZCBpbiBjcmVhdGVSb3V0ZXIpICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZEFjY2VzczxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBuZXZlcixcbiAgbmV2ZXJcbj4gJiB7XG4gIC8qKiBSZXRyaWV2ZSB0aGUgcHJlcGFyZWQgb2JqZWN0IGZvciBhIGNvbmNyZXRlIHBhdGggKGlmIGN1cnJlbnQgbWF0Y2ggaW5jbHVkZXMgaXQpICovXG4gIGdldFByZXBhcmVkOiAocGF0aDogc3RyaW5nKSA9PiBQcmVwYXJlZE9mPFJvdXRlVW5pb248Um91dGVzPj4gfCB1bmRlZmluZWQ7XG4gIC8qKiBSZXRyaWV2ZSB0aGUgZnVsbCBwcmVwYXJlZCBzZWdtZW50IGNoYWluIGZvciBhIGNvbmNyZXRlIHBhdGguICovXG4gIGdldFByZXBhcmVkU2VnbWVudHM6IChwYXRoOiBzdHJpbmcpID0+IFByZXBhcmVkUm91dGVTZWdtZW50U25hcHNob3RbXTtcbiAgLy8gZ2V0VHlwZWRRdWVyeSByZW1vdmVkIOKAkyB1c2UgZmlsdGVycy9xdWVyeSBkaXJlY3RseVxufTtcblxuLyoqIElucHV0IHNoYXBlIGZvciBhIG5hdmlnYXRpb24gdG8gYSBzcGVjaWZpYyBwYXRoICh0eXBlZCBxdWVyeSkgKi9cbmV4cG9ydCB0eXBlIE5hdmlnYXRlSW5wdXRGb3JQYXRoPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSB7XG4gIHBhdGhuYW1lOiBQYXRoc09mPFJvdXRlcz47XG4gIHF1ZXJ5PzogUXVlcnlTaGFwZU9mPFJvdXRlVW5pb248Um91dGVzPj47XG4gIGZpbHRlcnM/OiBGaWx0ZXJzT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PjtcbiAgaGFzaD86IHN0cmluZztcbiAgcmVwbGFjZT86IGJvb2xlYW47XG59O1xuXG4vKiogRmFsbGJhY2sgdW50eXBlZCBuYXZpZ2F0ZSBpbnB1dCAqL1xuZXhwb3J0IHR5cGUgTmF2aWdhdGVJbnB1dFVudHlwZWQgPSB7XG4gIHBhdGhuYW1lPzogc3RyaW5nO1xuICBxdWVyeT86IFVua25vd25RdWVyeVNoYXBlO1xuICBmaWx0ZXJzPzogVW5rbm93bkZpbHRlcnM7XG4gIGhhc2g/OiBzdHJpbmc7XG4gIHJlcGxhY2U/OiBib29sZWFuO1xufTtcblxuLyoqIE92ZXJsb2FkZWQgbmF2aWdhdGUgZnVuY3Rpb24gdHlwZSAoY29tcGlsZS10aW1lIG9ubHk7IHJ1bnRpbWUgc2luZ2xlIGltcGwpICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdmlnYXRlT3ZlcmxvYWRzPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4ge1xuICAob3B0czogTmF2aWdhdGVJbnB1dEZvclBhdGg8Um91dGVzPik6IHZvaWQ7XG4gIChvcHRzOiBOYXZpZ2F0ZUlucHV0VW50eXBlZCk6IHZvaWQ7XG59XG4iXX0=