UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

5,109 lines 473 kB
import { InjectionToken, Inject, Injectable, Optional, Pipe, NgModule, defineInjectable, inject, Injector, INJECTOR } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { DatePipe } from '@angular/common';
import { LoggerModule } from 'ng-zorro-antd/core';
import fnsFormat from 'date-fns/format';
import fnsGetISOWeek from 'date-fns/get_iso_week';
import fnsParse from 'date-fns/parse';

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale = {
    today: '今天',
    now: '此刻',
    backToToday: '返回今天',
    ok: '确定',
    timeSelect: '选择时间',
    dateSelect: '选择日期',
    clear: '清除',
    month: '月',
    year: '年',
    previousMonth: '上个月 (翻页上键)',
    nextMonth: '下个月 (翻页下键)',
    monthSelect: '选择月份',
    yearSelect: '选择年份',
    decadeSelect: '选择年代',
    yearFormat: 'YYYY年',
    dayFormat: 'D日',
    dateFormat: 'YYYY年M月D日',
    dateTimeFormat: 'YYYY年M月D日 HH时mm分ss秒',
    previousYear: '上一年 (Control键加左方向键)',
    nextYear: '下一年 (Control键加右方向键)',
    previousDecade: '上一年代',
    nextDecade: '下一年代',
    previousCentury: '上一世纪',
    nextCentury: '下一世纪'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale = {
    placeholder: '请选择时间'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/** @type {?} */
const locale$1 = {
    lang: Object.assign({ placeholder: '请选择日期', rangePlaceholder: ['开始日期', '结束日期'] }, CalendarLocale),
    timePickerLocale: Object.assign({}, locale)
};
// should add whitespace between char in Button
locale$1.lang.ok = '确 定';

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination = {
    // Options.jsx
    items_per_page: '条/页',
    jump_to: '跳至',
    jump_to_confirm: '确定',
    page: '页',
    // Pagination.jsx
    prev_page: '上一页',
    next_page: '下一页',
    prev_5: '向前 5 页',
    next_5: '向后 5 页',
    prev_3: '向前 3 页',
    next_3: '向后 3 页'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var zh_CN = {
    locale: 'zh-cn',
    Pagination,
    DatePicker: locale$1,
    TimePicker: locale,
    Calendar: CalendarLocale,
    // locales for all comoponents
    global: {
        placeholder: '请选择'
    },
    Table: {
        filterTitle: '筛选',
        filterConfirm: '确定',
        filterReset: '重置',
        selectAll: '全选当页',
        selectInvert: '反选当页',
        sortTitle: '排序'
    },
    Modal: {
        okText: '确定',
        cancelText: '取消',
        justOkText: '知道了'
    },
    Popconfirm: {
        cancelText: '取消',
        okText: '确定'
    },
    Transfer: {
        searchPlaceholder: '请输入搜索内容',
        itemUnit: '项',
        itemsUnit: '项'
    },
    Upload: {
        uploading: '文件上传中',
        removeFile: '删除文件',
        uploadError: '上传错误',
        previewFile: '预览文件'
    },
    Empty: {
        description: '暂无数据'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/** @type {?} */
const NZ_I18N = new InjectionToken('nz-i18n');
/**
 * Locale for date operations, should import from date-fns, see example: https://github.com/date-fns/date-fns/blob/v1.30.1/src/locale/zh_cn/index.js
 * @type {?}
 */
const NZ_DATE_LOCALE = new InjectionToken('nz-date-locale');

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
class NzI18nService {
    /**
     * @param {?} locale
     * @param {?} dateLocale
     */
    constructor(locale, dateLocale) {
        this._change = new BehaviorSubject(this._locale);
        this.setLocale(locale || zh_CN);
        this.setDateLocale(dateLocale || null);
    }
    /**
     * @return {?}
     */
    get localeChange() {
        return this._change.asObservable();
    }
    // [NOTE] Performance issue: this method may called by every change detections
    // TODO: cache more deeply paths for performance
    /* tslint:disable-next-line:no-any */
    /**
     * @param {?} path
     * @param {?=} data
     * @return {?}
     */
    translate(path, data) {
        // this._logger.debug(`[NzI18nService] Translating(${this._locale.locale}): ${path}`);
        /** @type {?} */
        let content = (/** @type {?} */ (this._getObjectPath(this._locale, path)));
        if (typeof content === 'string') {
            if (data) {
                Object.keys(data).forEach((/**
                 * @param {?} key
                 * @return {?}
                 */
                key => (content = content.replace(new RegExp(`%${key}%`, 'g'), data[key]))));
            }
            return content;
        }
        return path;
    }
    /**
     * Set/Change current locale globally throughout the WHOLE application
     * [NOTE] If called at runtime, rendered interface may not change along with the locale change (because this do not trigger another render schedule)
     * @param {?} locale The translating letters
     * @return {?}
     */
    setLocale(locale) {
        if (this._locale && this._locale.locale === locale.locale) {
            return;
        }
        this._locale = locale;
        this._change.next(locale);
    }
    /**
     * @return {?}
     */
    getLocale() {
        return this._locale;
    }
    /**
     * @return {?}
     */
    getLocaleId() {
        return this._locale ? this._locale.locale : '';
    }
    /**
     * @param {?} dateLocale
     * @return {?}
     */
    setDateLocale(dateLocale) {
        this.dateLocale = dateLocale;
    }
    /**
     * @return {?}
     */
    getDateLocale() {
        return this.dateLocale;
    }
    /**
     * Get locale data
     * @param {?=} path dot paths for finding exist value from locale data, eg. "a.b.c"
     * @param {?=} defaultValue default value if the result is not "truthy"
     * @return {?}
     */
    // tslint:disable-next-line:no-any
    getLocaleData(path, defaultValue) {
        /** @type {?} */
        const result = path ? this._getObjectPath(this._locale, path) : this._locale;
        return result || defaultValue;
    }
    // tslint:disable-next-line:no-any
    /**
     * @private
     * @param {?} obj
     * @param {?} path
     * @return {?}
     */
    _getObjectPath(obj, path) {
        /** @type {?} */
        let res = obj;
        /** @type {?} */
        const paths = path.split('.');
        /** @type {?} */
        const depth = paths.length;
        /** @type {?} */
        let index = 0;
        while (res && index < depth) {
            res = res[paths[index++]];
        }
        return index === depth ? res : null;
    }
}
NzI18nService.decorators = [
    { type: Injectable, args: [{
                providedIn: 'root'
            },] }
];
/** @nocollapse */
NzI18nService.ctorParameters = () => [
    { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NZ_I18N,] }] },
    { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NZ_DATE_LOCALE,] }] }
];
/** @nocollapse */ NzI18nService.ngInjectableDef = defineInjectable({ factory: function NzI18nService_Factory() { return new NzI18nService(inject(NZ_I18N, 8), inject(NZ_DATE_LOCALE, 8)); }, token: NzI18nService, providedIn: "root" });

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
class NzI18nPipe {
    /**
     * @param {?} _locale
     */
    constructor(_locale) {
        this._locale = _locale;
    }
    /**
     * @param {?} path
     * @param {?=} keyValue
     * @return {?}
     */
    transform(path, keyValue) {
        return this._locale.translate(path, keyValue);
    }
}
NzI18nPipe.decorators = [
    { type: Pipe, args: [{
                name: 'nzI18n'
            },] }
];
/** @nocollapse */
NzI18nPipe.ctorParameters = () => [
    { type: NzI18nService }
];

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
class NzI18nModule {
}
NzI18nModule.decorators = [
    { type: NgModule, args: [{
                imports: [LoggerModule],
                declarations: [NzI18nPipe],
                exports: [NzI18nPipe],
                providers: [DatePipe]
            },] }
];

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/** @type {?} */
const NZ_DATE_CONFIG = new InjectionToken('date-config');
/** @type {?} */
const NZ_DATE_CONFIG_DEFAULT = {
    firstDayOfWeek: undefined
};
/**
 * @param {?} config
 * @return {?}
 */
function mergeDateConfig(config) {
    return Object.assign({}, NZ_DATE_CONFIG_DEFAULT, config);
}

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @param {?} injector
 * @param {?} config
 * @param {?} datePipe
 * @return {?}
 */
function DATE_HELPER_SERVICE_FACTORY(injector, config, datePipe) {
    /** @type {?} */
    const i18n = injector.get(NzI18nService);
    return i18n.getDateLocale()
        ? new DateHelperByDateFns(i18n, config)
        : new DateHelperByDatePipe(i18n, config, datePipe);
}
/**
 * Abstract DateHelperService(Token via Class)
 * Compatibility: compact for original usage by default which using DatePipe
 * @abstract
 */
class DateHelperService {
    // Indicate whether this service is rely on DatePipe
    /**
     * @param {?} i18n
     * @param {?} config
     */
    constructor(i18n, config) {
        this.i18n = i18n;
        this.config = config;
        this.relyOnDatePipe = this instanceof DateHelperByDatePipe; // Indicate whether this service is rely on DatePipe
        this.config = mergeDateConfig(this.config);
    }
    /**
     * @param {?} text
     * @return {?}
     */
    parseDate(text) {
        if (!text) {
            return;
        }
        return fnsParse(text);
    }
    /**
     * @param {?} text
     * @return {?}
     */
    parseTime(text) {
        if (!text) {
            return;
        }
        return fnsParse(`1970-01-01 ${text}`);
    }
}
DateHelperService.decorators = [
    { type: Injectable, args: [{
                providedIn: 'root',
                useFactory: DATE_HELPER_SERVICE_FACTORY,
                deps: [Injector, [new Optional(), NZ_DATE_CONFIG], DatePipe]
            },] }
];
/** @nocollapse */
DateHelperService.ctorParameters = () => [
    { type: NzI18nService },
    { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NZ_DATE_CONFIG,] }] }
];
/** @nocollapse */ DateHelperService.ngInjectableDef = defineInjectable({ factory: function DateHelperService_Factory() { return DATE_HELPER_SERVICE_FACTORY(inject(INJECTOR), inject(NZ_DATE_CONFIG, 8), inject(DatePipe)); }, token: DateHelperService, providedIn: "root" });
/**
 * DateHelper that handles date formats with date-fns
 */
class DateHelperByDateFns extends DateHelperService {
    /**
     * @param {?} date
     * @return {?}
     */
    getISOWeek(date) {
        return fnsGetISOWeek(date);
    }
    // TODO: Use date-fns's "weekStartsOn" to support different locale when "config.firstDayOfWeek" is null
    // when v2.0 is ready: https://github.com/date-fns/date-fns/blob/v2.0.0-alpha.27/src/locale/en-US/index.js#L23
    /**
     * @return {?}
     */
    getFirstDayOfWeek() {
        return this.config.firstDayOfWeek == null ? 1 : this.config.firstDayOfWeek;
    }
    /**
     * Format a date
     * @see https://date-fns.org/docs/format#description
     * @param {?} date Date
     * @param {?} formatStr format string
     * @return {?}
     */
    format(date, formatStr) {
        return fnsFormat(date, formatStr, { locale: this.i18n.getDateLocale() });
    }
}
/** @nocollapse */ DateHelperByDateFns.ngInjectableDef = defineInjectable({ factory: function DateHelperByDateFns_Factory() { return DATE_HELPER_SERVICE_FACTORY(inject(INJECTOR), inject(NZ_DATE_CONFIG, 8), inject(DatePipe)); }, token: DateHelperByDateFns, providedIn: "root" });
/**
 * DateHelper that handles date formats with angular's date-pipe
 * [BUG] Use DatePipe may cause non-standard week bug, see: https://github.com/NG-ZORRO/ng-zorro-antd/issues/2406
 *
 * @deprecated Maybe removed in next major version due to this serious bug
 */
class DateHelperByDatePipe extends DateHelperService {
    /**
     * @param {?} i18n
     * @param {?} config
     * @param {?} datePipe
     */
    constructor(i18n, config, datePipe) {
        super(i18n, config);
        this.datePipe = datePipe;
    }
    /**
     * @param {?} date
     * @return {?}
     */
    getISOWeek(date) {
        return +this.format(date, 'w');
    }
    /**
     * @return {?}
     */
    getFirstDayOfWeek() {
        if (this.config.firstDayOfWeek === undefined) {
            /** @type {?} */
            const locale = this.i18n.getLocaleId();
            return locale && ['zh-cn', 'zh-tw'].indexOf(locale.toLowerCase()) > -1 ? 1 : 0;
        }
        return this.config.firstDayOfWeek;
    }
    /**
     * @param {?} date
     * @param {?} formatStr
     * @return {?}
     */
    format(date, formatStr) {
        return date ? (/** @type {?} */ (this.datePipe.transform(date, formatStr, undefined, this.i18n.getLocaleId()))) : '';
    }
    /**
     * Compatible translate the moment-like format pattern to angular's pattern
     * Why? For now, we need to support the existing language formats in AntD, and AntD uses the default temporal syntax.
     *
     * TODO: compare and complete all format patterns
     * Each format docs as below:
     * @link https://momentjs.com/docs/#/displaying/format/ / https://angular.io/api/common/DatePipe#description
     * @param {?} format input format pattern
     * @return {?}
     */
    transCompatFormat(format) {
        return (format &&
            format
                .replace(/Y/g, 'y') // only support y, yy, yyy, yyyy
                .replace(/D/g, 'd')); // d, dd represent of D, DD for momentjs, others are not support
    }
}
/** @nocollapse */
DateHelperByDatePipe.ctorParameters = () => [
    { type: NzI18nService },
    { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [NZ_DATE_CONFIG,] }] },
    { type: DatePipe }
];
/** @nocollapse */ DateHelperByDatePipe.ngInjectableDef = defineInjectable({ factory: function DateHelperByDatePipe_Factory() { return DATE_HELPER_SERVICE_FACTORY(inject(INJECTOR), inject(NZ_DATE_CONFIG, 8), inject(DatePipe)); }, token: DateHelperByDatePipe, providedIn: "root" });

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$1 = {
    today: 'اليوم',
    now: 'الأن',
    backToToday: 'العودة إلى اليوم',
    ok: 'تأكيد',
    clear: 'مسح',
    month: 'الشهر',
    year: 'السنة',
    timeSelect: 'اختيار الوقت',
    dateSelect: 'اختيار التاريخ',
    monthSelect: 'اختيار الشهر',
    yearSelect: 'اختيار السنة',
    decadeSelect: 'اختيار العقد',
    yearFormat: 'YYYY',
    dateFormat: 'M/D/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'M/D/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'الشهر السابق (PageUp)',
    nextMonth: 'الشهر التالى(PageDown)',
    previousYear: 'العام السابق (Control + left)',
    nextYear: 'العام التالى (Control + right)',
    previousDecade: 'العقد السابق',
    nextDecade: 'العقد التالى',
    previousCentury: 'القرن السابق',
    nextCentury: 'القرن التالى'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$2 = {
    placeholder: 'اختيار الوقت'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$3 = {
    lang: Object.assign({ placeholder: 'اختيار التاريخ', rangePlaceholder: ['البداية', 'النهاية'] }, CalendarLocale$1),
    timePickerLocale: Object.assign({}, locale$2)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$1 = {
    // Options.jsx
    items_per_page: '/ الصفحة',
    jump_to: 'الذهاب إلى',
    jump_to_confirm: 'تأكيد',
    page: '',
    // Pagination.jsx
    prev_page: 'الصفحة السابقة',
    next_page: 'الصفحة التالية',
    prev_5: 'خمس صفحات سابقة',
    next_5: 'خمس صفحات تالية',
    prev_3: 'ثلاث صفحات سابقة',
    next_3: 'ثلاث صفحات تالية'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var ar_EG = {
    locale: 'ar',
    Pagination: Pagination$1,
    DatePicker: locale$3,
    TimePicker: locale$2,
    Calendar: CalendarLocale$1,
    Table: {
        filterTitle: 'الفلاتر',
        filterConfirm: 'تأكيد',
        filterReset: 'إعادة ضبط',
        selectAll: 'اختيار الكل',
        selectInvert: 'إلغاء الاختيار'
    },
    Modal: {
        okText: 'تأكيد',
        cancelText: 'إلغاء',
        justOkText: 'تأكيد'
    },
    Popconfirm: {
        okText: 'تأكيد',
        cancelText: 'إلغاء'
    },
    Transfer: {
        searchPlaceholder: 'ابحث هنا',
        itemUnit: 'عنصر',
        itemsUnit: 'عناصر'
    },
    Upload: {
        uploading: 'جاري الرفع...',
        removeFile: 'احذف الملف',
        uploadError: 'مشكلة فى الرفع',
        previewFile: 'استعرض الملف'
    },
    Empty: {
        description: 'لا توجد بيانات'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$2 = {
    today: 'Днес',
    now: 'Сега',
    backToToday: 'Към днес',
    ok: 'Добре',
    clear: 'Изчистване',
    month: 'Месец',
    year: 'Година',
    timeSelect: 'Избор на час',
    dateSelect: 'Избор на дата',
    monthSelect: 'Избор на месец',
    yearSelect: 'Избор на година',
    decadeSelect: 'Десетилетие',
    yearFormat: 'YYYY',
    dateFormat: 'D M YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D M YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Предишен месец (PageUp)',
    nextMonth: 'Следващ месец (PageDown)',
    previousYear: 'Последна година (Control + left)',
    nextYear: 'Следваща година (Control + right)',
    previousDecade: 'Предишно десетилетие',
    nextDecade: 'Следващо десетилетие',
    previousCentury: 'Последен век',
    nextCentury: 'Следващ век'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$4 = {
    placeholder: 'Избор на час'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$5 = {
    lang: Object.assign({ placeholder: 'Избор на дата', rangePlaceholder: ['Начална', 'Крайна'] }, CalendarLocale$2),
    timePickerLocale: Object.assign({}, locale$4)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$2 = {
    // Options.jsx
    items_per_page: '/ страница',
    jump_to: 'Към',
    jump_to_confirm: 'потвърждавам',
    page: '',
    // Pagination.jsx
    prev_page: 'Предишна страница',
    next_page: 'Следваща страница',
    prev_5: 'Предишни 5 страници',
    next_5: 'Следващи 5 страници',
    prev_3: 'Предишни 3 страници',
    next_3: 'Следващи 3 страници'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var bg_BG = {
    locale: 'bg',
    Pagination: Pagination$2,
    DatePicker: locale$5,
    TimePicker: locale$4,
    Calendar: CalendarLocale$2,
    Table: {
        filterTitle: 'Филтриране',
        filterConfirm: 'Добре',
        filterReset: 'Нулриане',
        selectAll: 'Избор на текуща страница',
        selectInvert: 'Обръщане'
    },
    Modal: {
        okText: 'Добре',
        cancelText: 'Отказ',
        justOkText: 'Добре'
    },
    Popconfirm: {
        okText: 'Добре',
        cancelText: 'Отказ'
    },
    Transfer: {
        searchPlaceholder: 'Търсене',
        itemUnit: 'избор',
        itemsUnit: 'избори'
    },
    Upload: {
        uploading: 'Качване...',
        removeFile: 'Премахване',
        uploadError: 'Грешка при качването',
        previewFile: 'Преглед'
    },
    Empty: {
        description: 'Няма данни'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$3 = {
    today: 'Avui',
    now: 'Ara',
    backToToday: 'Tornar a avui',
    ok: 'Acceptar',
    clear: 'Netejar',
    month: 'Mes',
    year: 'Any',
    timeSelect: 'Seleccionar hora',
    dateSelect: 'Seleccionar data',
    monthSelect: 'Escollir un mes',
    yearSelect: 'Escollir un any',
    decadeSelect: 'Escollir una dècada',
    yearFormat: 'YYYY',
    dateFormat: 'D/M/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D/M/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Mes anterior (PageUp)',
    nextMonth: 'Mes següent (PageDown)',
    previousYear: 'Any anterior (Control + left)',
    nextYear: 'Mes següent (Control + right)',
    previousDecade: 'Dècada anterior',
    nextDecade: 'Dècada següent',
    previousCentury: 'Segle anterior',
    nextCentury: 'Segle següent'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$6 = {
    placeholder: 'Seleccionar hora'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$7 = {
    lang: Object.assign({ placeholder: 'Seleccionar data', rangePlaceholder: ['Data inicial', 'Data final'] }, CalendarLocale$3),
    timePickerLocale: Object.assign({}, locale$6)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$3 = {
    // Options.jsx
    items_per_page: '/ pàgina',
    jump_to: 'Anar a',
    jump_to_confirm: 'Confirmar',
    page: '',
    // Pagination.jsx
    prev_page: 'Pàgina prèvia',
    next_page: 'Pàgina següent',
    prev_5: '5 pàgines prèvies',
    next_5: '5 pàgines següents',
    prev_3: '3 pàgines prèvies',
    next_3: '3 pàgines següents'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var ca_ES = {
    locale: 'ca',
    Pagination: Pagination$3,
    DatePicker: locale$7,
    TimePicker: locale$6,
    Calendar: CalendarLocale$3,
    Table: {
        filterTitle: 'Filtrar Menu',
        filterConfirm: 'OK',
        filterReset: 'Restablir',
        selectAll: 'Seleccionar tot',
        selectInvert: 'Invertir selecció'
    },
    Modal: {
        okText: 'Acceptar',
        cancelText: 'Cancel·lar',
        justOkText: 'Acceptar'
    },
    Popconfirm: {
        okText: 'Acceptar',
        cancelText: 'Cancel·lar'
    },
    Transfer: {
        searchPlaceholder: 'Cercar aquí',
        itemUnit: 'element',
        itemsUnit: 'elements'
    },
    Upload: {
        uploading: 'Pujant...',
        removeFile: 'Eliminar fitxer',
        uploadError: 'Error al pujar el fitxer',
        previewFile: 'Vista prèvia'
    },
    Empty: {
        description: 'No hi ha dades'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$4 = {
    today: 'Dnes',
    now: 'Nyní',
    backToToday: 'Zpět na dnešek',
    ok: 'Ok',
    clear: 'Vymazat',
    month: 'Měsíc',
    year: 'Rok',
    timeSelect: 'Vybrat čas',
    dateSelect: 'Vybrat datum',
    monthSelect: 'Vyberte měsíc',
    yearSelect: 'Vyberte rok',
    decadeSelect: 'Vyberte dekádu',
    yearFormat: 'YYYY',
    dateFormat: 'D.M.YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D.M.YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Předchozí měsíc (PageUp)',
    nextMonth: 'Následující (PageDown)',
    previousYear: 'Předchozí rok (Control + left)',
    nextYear: 'Následující rok (Control + right)',
    previousDecade: 'Předchozí dekáda',
    nextDecade: 'Následující dekáda',
    previousCentury: 'Předchozí století',
    nextCentury: 'Následující století'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$8 = {
    placeholder: 'Vybrat čas'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$9 = {
    lang: Object.assign({ placeholder: 'Vybrat datum', rangePlaceholder: ['Od', 'Do'] }, CalendarLocale$4),
    timePickerLocale: Object.assign({}, locale$8)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$4 = {
    // Options.jsx
    items_per_page: '/ strana',
    jump_to: 'Přejít',
    jump_to_confirm: 'potvrdit',
    page: '',
    // Pagination.jsx
    prev_page: 'Předchozí strana',
    next_page: 'Následující strana',
    prev_5: 'Předchozích 5 stran',
    next_5: 'Následujících 5 stran',
    prev_3: 'Předchozí 3 strany',
    next_3: 'Následující 3 strany'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var cs_CZ = {
    locale: 'cs',
    Pagination: Pagination$4,
    DatePicker: locale$9,
    TimePicker: locale$8,
    Calendar: CalendarLocale$4,
    Table: {
        filterTitle: 'Filtr',
        filterConfirm: 'Potvrdit',
        filterReset: 'Obnovit'
    },
    Modal: {
        okText: 'Ok',
        cancelText: 'Storno',
        justOkText: 'Ok'
    },
    Popconfirm: {
        okText: 'Ok',
        cancelText: 'Storno'
    },
    Transfer: {
        searchPlaceholder: 'Vyhledávání',
        itemUnit: 'položka',
        itemsUnit: 'položek'
    },
    Upload: {
        uploading: 'Nahrávání...',
        removeFile: 'Odstranit soubor',
        uploadError: 'Chyba při nahrávání',
        previewFile: 'Zobrazit soubor'
    },
    Empty: {
        description: 'Žádná data'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$5 = {
    today: 'I dag',
    now: 'Nu',
    backToToday: 'Gå til i dag',
    ok: 'Ok',
    clear: 'Annuller',
    month: 'Måned',
    year: 'År',
    timeSelect: 'Vælg tidspunkt',
    dateSelect: 'Vælg dato',
    monthSelect: 'Vælg måned',
    yearSelect: 'Vælg år',
    decadeSelect: 'Vælg årti',
    yearFormat: 'YYYY',
    dateFormat: 'D/M/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D/M/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Forrige måned(PageUp)',
    nextMonth: 'Næste måned (PageDown)',
    previousYear: 'Forrige år (Control + left)',
    nextYear: 'Næste r (Control + right)',
    previousDecade: 'Forrige årti',
    nextDecade: 'Næste årti',
    previousCentury: 'Forrige århundrede',
    nextCentury: 'Næste århundrede'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$a = {
    placeholder: 'Vælg tid'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$b = {
    lang: Object.assign({ placeholder: 'Vælg dato', rangePlaceholder: ['Startdato', 'Slutdato'] }, CalendarLocale$5),
    timePickerLocale: Object.assign({}, locale$a)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$5 = {
    // Options.jsx
    items_per_page: '/ side',
    jump_to: 'Gå til',
    jump_to_confirm: 'bekræft',
    page: '',
    // Pagination.jsx
    prev_page: 'Forrige Side',
    next_page: 'Næste Side',
    prev_5: 'Forrige 5 Sider',
    next_5: 'Næste 5 Sider',
    prev_3: 'Forrige 3 Sider',
    next_3: 'Næste 3 Sider'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var da_DK = {
    locale: 'da',
    DatePicker: locale$b,
    TimePicker: locale$a,
    Calendar: CalendarLocale$5,
    Pagination: Pagination$5,
    Table: {
        filterTitle: 'Filtermenu',
        filterConfirm: 'OK',
        filterReset: 'Nulstil',
        selectAll: 'Vælg alle',
        selectInvert: 'Inverter valg'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Afbryd',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Afbryd'
    },
    Transfer: {
        searchPlaceholder: 'Søg her',
        itemUnit: 'element',
        itemsUnit: 'elementer'
    },
    Upload: {
        uploading: 'Uploader...',
        removeFile: 'Fjern fil',
        uploadError: 'Fejl ved upload',
        previewFile: 'Forhåndsvisning'
    },
    Empty: {
        description: 'Ingen data'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$6 = {
    today: 'Heute',
    now: 'Jetzt',
    backToToday: 'Zurück zu Heute',
    ok: 'OK',
    clear: 'Zurücksetzen',
    month: 'Monat',
    year: 'Jahr',
    timeSelect: 'Zeit wählen',
    dateSelect: 'Datum wählen',
    monthSelect: 'Wähle einen Monat',
    yearSelect: 'Wähle ein Jahr',
    decadeSelect: 'Wähle ein Jahrzehnt',
    yearFormat: 'YYYY',
    dateFormat: 'D.M.YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D.M.YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Vorheriger Monat (PageUp)',
    nextMonth: 'Nächster Monat (PageDown)',
    previousYear: 'Vorheriges Jahr (Ctrl + left)',
    nextYear: 'Nächstes Jahr (Ctrl + right)',
    previousDecade: 'Vorheriges Jahrzehnt',
    nextDecade: 'Nächstes Jahrzehnt',
    previousCentury: 'Vorheriges Jahrhundert',
    nextCentury: 'Nächstes Jahrhundert'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$c = {
    placeholder: 'Zeit auswählen'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$d = {
    lang: Object.assign({ placeholder: 'Datum auswählen', rangePlaceholder: ['Startdatum', 'Enddatum'] }, CalendarLocale$6),
    timePickerLocale: Object.assign({}, locale$c)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$6 = {
    // Options.jsx
    items_per_page: '/ Seite',
    jump_to: 'Gehe zu',
    jump_to_confirm: 'bestätigen',
    page: '',
    // Pagination.jsx
    prev_page: 'Vorherige Seite',
    next_page: 'Nächste Seite',
    prev_5: '5 Seiten zurück',
    next_5: '5 Seiten vor',
    prev_3: '3 Seiten zurück',
    next_3: '3 Seiten vor'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var de_DE = {
    locale: 'de',
    Pagination: Pagination$6,
    DatePicker: locale$d,
    TimePicker: locale$c,
    Calendar: CalendarLocale$6,
    Table: {
        filterTitle: 'Filter-Menü',
        filterConfirm: 'OK',
        filterReset: 'Zurücksetzen',
        selectAll: 'Selektiere Alle',
        selectInvert: 'Selektion Invertieren'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Abbrechen',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Abbrechen'
    },
    Transfer: {
        searchPlaceholder: 'Suchen',
        itemUnit: 'Eintrag',
        itemsUnit: 'Einträge'
    },
    Upload: {
        uploading: 'Hochladen...',
        removeFile: 'Datei entfernen',
        uploadError: 'Fehler beim Hochladen',
        previewFile: 'Dateivorschau'
    },
    Empty: {
        description: 'Keine Daten'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$7 = {
    today: 'Σήμερα',
    now: 'Τώρα',
    backToToday: 'Πίσω στη σημερινή μέρα',
    ok: 'Ok',
    clear: 'Καθαρισμός',
    month: 'Μήνας',
    year: 'Έτος',
    timeSelect: 'Επιλογή ώρας',
    dateSelect: 'Επιλογή ημερομηνίας',
    monthSelect: 'Επιλογή μήνα',
    yearSelect: 'Επιλογή έτους',
    decadeSelect: 'Επιλογή δεκαετίας',
    yearFormat: 'YYYY',
    dateFormat: 'D/M/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D/M/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Προηγούμενος μήνας (PageUp)',
    nextMonth: 'Επόμενος μήνας (PageDown)',
    previousYear: 'Προηγούμενο έτος (Control + αριστερά)',
    nextYear: 'Επόμενο έτος (Control + δεξιά)',
    previousDecade: 'Προηγούμενη δεκαετία',
    nextDecade: 'Επόμενη δεκαετία',
    previousCentury: 'Προηγούμενος αιώνας',
    nextCentury: 'Επόμενος αιώνας'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$e = {
    placeholder: 'Επιλέξτε ώρα'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$f = {
    lang: Object.assign({ placeholder: 'Επιλέξτε ημερομηνία', rangePlaceholder: ['Αρχική ημερομηνία', 'Τελική ημερομηνία'] }, CalendarLocale$7),
    timePickerLocale: Object.assign({}, locale$e)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$7 = {
    // Options.jsx
    items_per_page: '/ σελίδα',
    jump_to: 'Μετάβαση',
    jump_to_confirm: 'επιβεβαιώνω',
    page: '',
    // Pagination.jsx
    prev_page: 'Προηγούμενη Σελίδα',
    next_page: 'Επόμενη Σελίδα',
    prev_5: 'Προηγούμενες 5 Σελίδες',
    next_5: 'Επόμενες 5 σελίδες',
    prev_3: 'Προηγούμενες 3 Σελίδες',
    next_3: 'Επόμενες 3 Σελίδες'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var el_GR = {
    locale: 'el',
    Pagination: Pagination$7,
    DatePicker: locale$f,
    TimePicker: locale$e,
    Calendar: CalendarLocale$7,
    Table: {
        filterTitle: 'Μενού φίλτρων',
        filterConfirm: 'ΟΚ',
        filterReset: 'Επαναφορά',
        selectAll: 'Επιλογή τρέχουσας σελίδας',
        selectInvert: 'Αντιστροφή τρέχουσας σελίδας'
    },
    Modal: {
        okText: 'ΟΚ',
        cancelText: 'Άκυρο',
        justOkText: 'ΟΚ'
    },
    Popconfirm: {
        okText: 'ΟΚ',
        cancelText: 'Άκυρο'
    },
    Transfer: {
        searchPlaceholder: 'Αναζήτηση',
        itemUnit: 'αντικείμενο',
        itemsUnit: 'αντικείμενα'
    },
    Upload: {
        uploading: 'Μεταφόρτωση...',
        removeFile: 'Αφαίρεση αρχείου',
        uploadError: 'Σφάλμα μεταφόρτωσης',
        previewFile: 'Προεπισκόπηση αρχείου'
    },
    Empty: {
        description: 'Δεν υπάρχουν δεδομένα'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$8 = {
    today: 'Today',
    now: 'Now',
    backToToday: 'Back to today',
    ok: 'Ok',
    clear: 'Clear',
    month: 'Month',
    year: 'Year',
    timeSelect: 'Select time',
    dateSelect: 'Select date',
    monthSelect: 'Choose a month',
    yearSelect: 'Choose a year',
    decadeSelect: 'Choose a decade',
    yearFormat: 'YYYY',
    dateFormat: 'D/M/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D/M/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Previous month (PageUp)',
    nextMonth: 'Next month (PageDown)',
    previousYear: 'Last year (Control + left)',
    nextYear: 'Next year (Control + right)',
    previousDecade: 'Last decade',
    nextDecade: 'Next decade',
    previousCentury: 'Last century',
    nextCentury: 'Next century'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$g = {
    placeholder: 'Select time'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$h = {
    lang: Object.assign({ placeholder: 'Select date', rangePlaceholder: ['Start date', 'End date'] }, CalendarLocale$8),
    timePickerLocale: Object.assign({}, locale$g)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$8 = {
    // Options.jsx
    items_per_page: '/ page',
    jump_to: 'Goto',
    jump_to_confirm: 'confirm',
    page: '',
    // Pagination.jsx
    prev_page: 'Previous Page',
    next_page: 'Next Page',
    prev_5: 'Previous 5 Pages',
    next_5: 'Next 5 Pages',
    prev_3: 'Previous 3 Pages',
    next_3: 'Next 3 Pages'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var en_GB = {
    locale: 'en-gb',
    Pagination: Pagination$8,
    DatePicker: locale$h,
    TimePicker: locale$g,
    Calendar: CalendarLocale$8,
    Table: {
        filterTitle: 'Filter menu',
        filterConfirm: 'OK',
        filterReset: 'Reset',
        selectAll: 'Select current page',
        selectInvert: 'Invert current page'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Cancel',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Cancel'
    },
    Transfer: {
        searchPlaceholder: 'Search here',
        itemUnit: 'item',
        itemsUnit: 'items'
    },
    Upload: {
        uploading: 'Uploading...',
        removeFile: 'Remove file',
        uploadError: 'Upload error',
        previewFile: 'Preview file'
    },
    Empty: {
        description: 'No data'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$9 = {
    today: 'Today',
    now: 'Now',
    backToToday: 'Back to today',
    ok: 'Ok',
    clear: 'Clear',
    month: 'Month',
    year: 'Year',
    timeSelect: 'Select time',
    dateSelect: 'Select date',
    monthSelect: 'Choose a month',
    yearSelect: 'Choose a year',
    decadeSelect: 'Choose a decade',
    yearFormat: 'YYYY',
    dateFormat: 'M/D/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'M/D/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Previous month (PageUp)',
    nextMonth: 'Next month (PageDown)',
    previousYear: 'Last year (Control + left)',
    nextYear: 'Next year (Control + right)',
    previousDecade: 'Last decade',
    nextDecade: 'Next decade',
    previousCentury: 'Last century',
    nextCentury: 'Next century'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$i = {
    placeholder: 'Select time'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$j = {
    lang: Object.assign({ placeholder: 'Select date', rangePlaceholder: ['Start date', 'End date'] }, CalendarLocale$9),
    timePickerLocale: Object.assign({}, locale$i)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$9 = {
    // Options.jsx
    items_per_page: '/ page',
    jump_to: 'Goto',
    jump_to_confirm: 'confirm',
    page: '',
    // Pagination.jsx
    prev_page: 'Previous Page',
    next_page: 'Next Page',
    prev_5: 'Previous 5 Pages',
    next_5: 'Next 5 Pages',
    prev_3: 'Previous 3 Pages',
    next_3: 'Next 3 Pages'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var en_US = {
    locale: 'en',
    Pagination: Pagination$9,
    DatePicker: locale$j,
    TimePicker: locale$i,
    Calendar: CalendarLocale$9,
    global: {
        placeholder: 'Please select'
    },
    Table: {
        filterTitle: 'Filter menu',
        filterConfirm: 'OK',
        filterReset: 'Reset',
        selectAll: 'Select current page',
        selectInvert: 'Invert current page',
        sortTitle: 'Sort'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Cancel',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Cancel'
    },
    Transfer: {
        titles: ['', ''],
        searchPlaceholder: 'Search here',
        itemUnit: 'item',
        itemsUnit: 'items'
    },
    Upload: {
        uploading: 'Uploading...',
        removeFile: 'Remove file',
        uploadError: 'Upload error',
        previewFile: 'Preview file'
    },
    Empty: {
        description: 'No Data'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$a = {
    today: 'Hoy',
    now: 'Ahora',
    backToToday: 'Volver a hoy',
    ok: 'Aceptar',
    clear: 'Limpiar',
    month: 'Mes',
    year: 'Año',
    timeSelect: 'Seleccionar hora',
    dateSelect: 'Seleccionar fecha',
    monthSelect: 'Elegir un mes',
    yearSelect: 'Elegir un año',
    decadeSelect: 'Elegir una década',
    yearFormat: 'YYYY',
    dateFormat: 'D/M/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D/M/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Mes anterior (PageUp)',
    nextMonth: 'Mes siguiente (PageDown)',
    previousYear: 'Año anterior (Control + left)',
    nextYear: 'Año siguiente (Control + right)',
    previousDecade: 'Década anterior',
    nextDecade: 'Década siguiente',
    previousCentury: 'Siglo anterior',
    nextCentury: 'Siglo siguiente'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$k = {
    placeholder: 'Seleccionar hora'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$l = {
    lang: Object.assign({ placeholder: 'Seleccionar fecha', rangePlaceholder: ['Fecha inicial', 'Fecha final'] }, CalendarLocale$a),
    timePickerLocale: Object.assign({}, locale$k)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$a = {
    // Options.jsx
    items_per_page: '/ página',
    jump_to: 'Ir a',
    jump_to_confirm: 'confirmar',
    page: '',
    // Pagination.jsx
    prev_page: 'Página anterior',
    next_page: 'Página siguiente',
    prev_5: '5 páginas previas',
    next_5: '5 páginas siguientes',
    prev_3: '3 páginas previas',
    next_3: '3 páginas siguientes'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var es_ES = {
    locale: 'es',
    Pagination: Pagination$a,
    DatePicker: locale$l,
    TimePicker: locale$k,
    Calendar: CalendarLocale$a,
    Table: {
        filterTitle: 'Filtrar menú',
        filterConfirm: 'Aceptar',
        filterReset: 'Reiniciar',
        selectAll: 'Seleccionar todo',
        selectInvert: 'Invertir selección'
    },
    Modal: {
        okText: 'Aceptar',
        cancelText: 'Cancelar',
        justOkText: 'Aceptar'
    },
    Popconfirm: {
        okText: 'Aceptar',
        cancelText: 'Cancelar'
    },
    Transfer: {
        searchPlaceholder: 'Buscar aquí',
        itemUnit: 'elemento',
        itemsUnit: 'elementos'
    },
    Upload: {
        uploading: 'Subiendo...',
        removeFile: 'Eliminar archivo',
        uploadError: 'Error al subir el archivo',
        previewFile: 'Vista previa'
    },
    Empty: {
        description: 'No hay datos'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$b = {
    today: 'Täna',
    now: 'Praegu',
    backToToday: 'Tagasi tänase juurde',
    ok: 'Ok',
    clear: 'Tühista',
    month: 'Kuu',
    year: 'Aasta',
    timeSelect: 'Vali aeg',
    dateSelect: 'Vali kuupäev',
    monthSelect: 'Vali kuu',
    yearSelect: 'Vali aasta',
    decadeSelect: 'Vali dekaad',
    yearFormat: 'YYYY',
    dateFormat: 'D.M.YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D.M.YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Eelmine kuu (PageUp)',
    nextMonth: 'Järgmine kuu (PageDown)',
    previousYear: 'Eelmine aasta (Control + left)',
    nextYear: 'Järgmine aasta (Control + right)',
    previousDecade: 'Eelmine dekaad',
    nextDecade: 'Järgmine dekaad',
    previousCentury: 'Eelmine sajand',
    nextCentury: 'Järgmine sajand'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$m = {
    placeholder: 'Vali aeg'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// 统一合并为完整的 Locale
/** @type {?} */
const locale$n = {
    lang: Object.assign({ placeholder: 'Vali kuupäev', rangePlaceholder: ['Algus kuupäev', 'Lõpu kuupäev'] }, CalendarLocale$b),
    timePickerLocale: Object.assign({}, locale$m)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$b = {
    // Options.jsx
    items_per_page: '/ leheküljel',
    jump_to: 'Hüppa',
    jump_to_confirm: 'Kinnitage',
    page: '',
    // Pagination.jsx
    prev_page: 'Eelmine leht',
    next_page: 'Järgmine leht',
    prev_5: 'Eelmised 5 lehekülge',
    next_5: 'Järgmised 5 lehekülge',
    prev_3: 'Eelmised 3 lehekülge',
    next_3: 'Järgmised 3 lehekülge'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var et_EE = {
    locale: 'et',
    Pagination: Pagination$b,
    DatePicker: locale$n,
    TimePicker: locale$m,
    Calendar: CalendarLocale$b,
    Table: {
        filterTitle: 'Filtri menüü',
        filterConfirm: 'OK',
        filterReset: 'Nulli',
        selectAll: 'Vali kõik',
        selectInvert: 'Inverteeri valik'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Tühista',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Tühista'
    },
    Transfer: {
        searchPlaceholder: 'Otsi siit',
        itemUnit: 'kogus',
        itemsUnit: 'kogus'
    },
    Upload: {
        uploading: 'Üleslaadimine...',
        removeFile: 'Eemalda fail',
        uploadError: 'Üleslaadimise tõrge',
        previewFile: 'Faili eelvaade'
    },
    Empty: {
        description: 'Andmed puuduvad'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$c = {
    today: 'امروز',
    now: 'اکنون',
    backToToday: 'بازگشت به روز',
    ok: 'باشه',
    clear: 'پاک کردن',
    month: 'ماه',
    year: 'سال',
    timeSelect: 'انتخاب زمان',
    dateSelect: 'انتخاب تاریخ',
    monthSelect: 'یک ماه را انتخاب کنید',
    yearSelect: 'یک سال را انتخاب کنید',
    decadeSelect: 'یک دهه را انتخاب کنید',
    yearFormat: 'YYYY',
    dateFormat: 'M/D/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'M/D/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'ماه قبل (PageUp)',
    nextMonth: 'ماه بعد (PageDown)',
    previousYear: 'سال قبل (Control + left)',
    nextYear: 'سال بعد (Control + right)',
    previousDecade: 'دهه قبل',
    nextDecade: 'دهه بعد',
    previousCentury: 'قرن قبل',
    nextCentury: 'قرن بعد'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$o = {
    placeholder: 'انتخاب زمان'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$p = {
    lang: Object.assign({ placeholder: 'انتخاب تاریخ', rangePlaceholder: ['تاریخ شروع', 'تاریخ پایان'] }, CalendarLocale$c),
    timePickerLocale: Object.assign({}, locale$o)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$c = {
    // Options.jsx
    items_per_page: '/ صفحه',
    jump_to: 'برو به',
    jump_to_confirm: 'تایید',
    page: '',
    // Pagination.jsx
    prev_page: 'صفحه قبلی',
    next_page: 'صفحه بعدی',
    prev_5: '۵ صفحه قبلی',
    next_5: '۵ صفحه بعدی',
    prev_3: '۳ صفحه قبلی',
    next_3: '۳ صفحه بعدی'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var fa_IR = {
    locale: 'fa',
    Pagination: Pagination$c,
    DatePicker: locale$p,
    TimePicker: locale$o,
    Calendar: CalendarLocale$c,
    Table: {
        filterTitle: 'منوی فیلتر',
        filterConfirm: 'تایید',
        filterReset: 'پاک کردن',
        selectAll: 'انتخاب صفحه‌ی کنونی',
        selectInvert: 'معکوس کردن انتخاب‌ها در صفحه ی کنونی'
    },
    Modal: {
        okText: 'تایید',
        cancelText: 'لغو',
        justOkText: 'تایید'
    },
    Popconfirm: {
        okText: 'تایید',
        cancelText: 'لغو'
    },
    Transfer: {
        searchPlaceholder: 'جستجو',
        itemUnit: '',
        itemsUnit: ''
    },
    Upload: {
        uploading: 'در حال آپلود...',
        removeFile: 'حذف فایل',
        uploadError: 'خطا در آپلود',
        previewFile: 'مشاهده‌ی فایل'
    },
    Empty: {
        description: 'داده‌ای موجود نیست'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$d = {
    today: 'Tänään',
    now: 'Nyt',
    backToToday: 'Tämä päivä',
    ok: 'Ok',
    clear: 'Tyhjennä',
    month: 'Kuukausi',
    year: 'Vuosi',
    timeSelect: 'Valise aika',
    dateSelect: 'Valitse päivä',
    monthSelect: 'Valitse kuukausi',
    yearSelect: 'Valitse vuosi',
    decadeSelect: 'Valitse vuosikymmen',
    yearFormat: 'YYYY',
    dateFormat: 'D.M.YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D.M.YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Edellinen kuukausi (PageUp)',
    nextMonth: 'Seuraava kuukausi (PageDown)',
    previousYear: 'Edellinen vuosi (Control + left)',
    nextYear: 'Seuraava vuosi (Control + right)',
    previousDecade: 'Edellinen vuosikymmen',
    nextDecade: 'Seuraava vuosikymmen',
    previousCentury: 'Edellinen vuosisata',
    nextCentury: 'Seuraava vuosisata'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$q = {
    placeholder: 'Valitse aika'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$r = {
    lang: Object.assign({ placeholder: 'Valitse päivä', rangePlaceholder: ['Alku päivä', 'Loppu päivä'] }, CalendarLocale$d),
    timePickerLocale: Object.assign({}, locale$q)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$d = {
    // Options.jsx
    items_per_page: '/ sivu',
    jump_to: 'Mene',
    jump_to_confirm: 'Potvrdite',
    page: '',
    // Pagination.jsx
    prev_page: 'Edellinen sivu',
    next_page: 'Seuraava sivu',
    prev_5: 'Edelliset 5 sivua',
    next_5: 'Seuraavat 5 sivua',
    prev_3: 'Edelliset 3 sivua',
    next_3: 'Seuraavat 3 sivua'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var fi_FI = {
    locale: 'fi',
    Pagination: Pagination$d,
    DatePicker: locale$r,
    TimePicker: locale$q,
    Calendar: CalendarLocale$d,
    Table: {
        filterTitle: 'Suodatus valikko',
        filterConfirm: 'OK',
        filterReset: 'Tyhjennä',
        selectAll: 'Valitse kaikki',
        selectInvert: 'Valitse päinvastoin',
        sortTitle: 'Lajittele'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Peruuta',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Peruuta'
    },
    Transfer: {
        searchPlaceholder: 'Etsi täältä',
        itemUnit: 'kohde',
        itemsUnit: 'kohdetta'
    },
    Upload: {
        uploading: 'Lähetetään...',
        removeFile: 'Poista tiedosto',
        uploadError: 'Virhe lähetyksessä',
        previewFile: 'Esikatsele tiedostoa'
    },
    Empty: {
        description: 'Ei kohteita'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$e = {
    today: 'Aujourd\'hui',
    now: 'Maintenant',
    backToToday: 'Aujourd\'hui',
    ok: 'Ok',
    clear: 'Rétablir',
    month: 'Mois',
    year: 'Année',
    timeSelect: 'Sélectionner l\'heure',
    dateSelect: 'Sélectionner l\'heure',
    monthSelect: 'Choisissez un mois',
    yearSelect: 'Choisissez une année',
    decadeSelect: 'Choisissez une décennie',
    yearFormat: 'YYYY',
    dateFormat: 'D/M/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D/M/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Mois précédent (PageUp)',
    nextMonth: 'Mois suivant (PageDown)',
    previousYear: 'Année précédente (Ctrl + gauche)',
    nextYear: 'Année prochaine (Ctrl + droite)',
    previousDecade: 'Décennie précédente',
    nextDecade: 'Décennie suivante',
    previousCentury: 'Siècle précédent',
    nextCentury: 'Siècle suivant'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$s = {
    placeholder: 'Sélectionner l\'heure'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$t = {
    lang: Object.assign({ placeholder: 'Sélectionner une date', rangePlaceholder: ['Date de début', 'Date de fin'] }, CalendarLocale$e),
    timePickerLocale: Object.assign({}, locale$s)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$e = {
    // Options.jsx
    items_per_page: '/ page',
    jump_to: 'Aller à',
    jump_to_confirm: 'confirmer',
    page: '',
    // Pagination.jsx
    prev_page: 'Page précédente',
    next_page: 'Page suivante',
    prev_5: '5 Pages précédentes',
    next_5: '5 Pages suivantes',
    prev_3: '3 Pages précédentes',
    next_3: '3 Pages suivantes'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var fr_BE = {
    locale: 'fr',
    Pagination: Pagination$e,
    DatePicker: locale$t,
    TimePicker: locale$s,
    Calendar: CalendarLocale$e,
    Table: {
        filterTitle: 'Filtrer',
        filterConfirm: 'OK',
        filterReset: 'Réinitialiser'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Annuler',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Annuler'
    },
    Transfer: {
        searchPlaceholder: 'Recherche',
        itemUnit: 'élément',
        itemsUnit: 'éléments'
    },
    Empty: {
        description: 'Aucune donnée'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$f = {
    today: 'Aujourd\'hui',
    now: 'Maintenant',
    backToToday: 'Aujourd\'hui',
    ok: 'Ok',
    clear: 'Rétablir',
    month: 'Mois',
    year: 'Année',
    timeSelect: 'Sélectionner l\'heure',
    dateSelect: 'Sélectionner l\'heure',
    monthSelect: 'Choisissez un mois',
    yearSelect: 'Choisissez une année',
    decadeSelect: 'Choisissez une décennie',
    yearFormat: 'YYYY',
    dateFormat: 'DD/MM/YYYY',
    dayFormat: 'DD',
    dateTimeFormat: 'DD/MM/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Mois précédent (PageUp)',
    nextMonth: 'Mois suivant (PageDown)',
    previousYear: 'Année précédente (Ctrl + gauche)',
    nextYear: 'Année prochaine (Ctrl + droite)',
    previousDecade: 'Décennie précédente',
    nextDecade: 'Décennie suivante',
    previousCentury: 'Siècle précédent',
    nextCentury: 'Siècle suivant'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$u = {
    placeholder: 'Sélectionner l\'heure'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$v = {
    lang: Object.assign({ placeholder: 'Sélectionner une date', rangePlaceholder: ['Date de début', 'Date de fin'] }, CalendarLocale$f),
    timePickerLocale: Object.assign({}, locale$u)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$f = {
    // Options.jsx
    items_per_page: '/ page',
    jump_to: 'Aller à',
    jump_to_confirm: 'confirmer',
    page: '',
    // Pagination.jsx
    prev_page: 'Page précédente',
    next_page: 'Page suivante',
    prev_5: '5 Pages précédentes',
    next_5: '5 Pages suivantes',
    prev_3: '3 Pages précédentes',
    next_3: '3 Pages suivantes'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var fr_FR = {
    locale: 'fr',
    Pagination: Pagination$f,
    DatePicker: locale$v,
    TimePicker: locale$u,
    Calendar: CalendarLocale$f,
    Table: {
        filterTitle: 'Filtrer',
        filterConfirm: 'OK',
        filterReset: 'Réinitialiser',
        selectAll: 'Tout sélectionner',
        selectInvert: 'Inverser la sélection'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Annuler',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Annuler'
    },
    Transfer: {
        searchPlaceholder: 'Recherche',
        itemUnit: 'élément',
        itemsUnit: 'éléments'
    },
    Upload: {
        uploading: 'Téléversement en cours...',
        removeFile: 'Supprimer',
        uploadError: 'Erreur de téléversement',
        previewFile: 'Afficher l\'aperçu du fichier'
    },
    Empty: {
        description: 'Aucune donnée'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$g = {
    today: 'Í dag',
    now: 'Núna',
    backToToday: 'Til baka til dagsins í dag',
    ok: 'Í lagi',
    clear: 'Hreinsa',
    month: 'Mánuður',
    year: 'Ár',
    timeSelect: 'Velja tíma',
    dateSelect: 'Velja dag',
    monthSelect: 'Velja mánuð',
    yearSelect: 'Velja ár',
    decadeSelect: 'Velja áratug',
    yearFormat: 'YYYY',
    dateFormat: 'D/M/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D/M/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Fyrri mánuður (PageUp)',
    nextMonth: 'Næsti mánuður (PageDown)',
    previousYear: 'Fyrra ár (Control + left)',
    nextYear: 'Næsta ár (Control + right)',
    previousDecade: 'Fyrri áratugur',
    nextDecade: 'Næsti áratugur',
    previousCentury: 'Fyrri öld',
    nextCentury: 'Næsta öld'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$w = {
    placeholder: 'Velja tíma'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$x = {
    lang: Object.assign({ placeholder: 'Veldu dag', rangePlaceholder: ['Upphafsdagur', 'Lokadagur'] }, CalendarLocale$g),
    timePickerLocale: Object.assign({}, locale$w)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$g = {
    // Options.jsx
    items_per_page: '/ síðu',
    jump_to: 'Síða',
    jump_to_confirm: 'staðfest',
    page: '',
    // Pagination.jsx
    prev_page: 'Fyrri síða',
    next_page: 'Næsta síða',
    prev_5: 'Til baka 5 síður',
    next_5: 'Áfram 5 síður',
    prev_3: 'Til baka 3 síður',
    next_3: 'Áfram 3 síður'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var is_IS = {
    locale: 'is',
    Pagination: Pagination$g,
    DatePicker: locale$x,
    TimePicker: locale$w,
    Calendar: CalendarLocale$g,
    Table: {
        filterTitle: 'Afmarkanir',
        filterConfirm: 'Staðfesta',
        filterReset: 'Núllstilla',
        selectAll: 'Velja allt',
        selectInvert: 'Viðsnúa vali'
    },
    Modal: {
        okText: 'Áfram',
        cancelText: 'Hætta við',
        justOkText: 'Í lagi'
    },
    Popconfirm: {
        okText: 'Áfram',
        cancelText: 'Hætta við'
    },
    Transfer: {
        searchPlaceholder: 'Leita hér',
        itemUnit: 'færsla',
        itemsUnit: 'færslur'
    },
    Upload: {
        uploading: 'Hleð upp...',
        removeFile: 'Fjarlægja skrá',
        uploadError: 'Villa við að hlaða upp',
        previewFile: 'Forskoða skrá'
    },
    Empty: {
        description: 'Engin gögn'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$h = {
    today: 'Oggi',
    now: 'adesso',
    backToToday: 'Torna ad oggi',
    ok: 'Ok',
    clear: 'Chiaro',
    month: 'Mese',
    year: 'Anno',
    timeSelect: 'Seleziona il tempo',
    dateSelect: 'Select date',
    monthSelect: 'Seleziona la data',
    yearSelect: 'Scegli un anno',
    decadeSelect: 'Scegli un decennio',
    yearFormat: 'YYYY',
    dateFormat: 'D/M/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D/M/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Il mese scorso (PageUp)',
    nextMonth: 'Il prossimo mese (PageDown)',
    previousYear: 'L\'anno scorso (Control + sinistra)',
    nextYear: 'L\'anno prossimo (Control + destra)',
    previousDecade: 'Ultimo decennio',
    nextDecade: 'Prossimo decennio',
    previousCentury: 'Secolo precedente',
    nextCentury: 'Prossimo secolo'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$y = {
    placeholder: 'Selezionare il tempo'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$z = {
    lang: Object.assign({ placeholder: 'Selezionare la data', rangePlaceholder: ['Data d\'inizio', 'Data di fine'] }, CalendarLocale$h),
    timePickerLocale: Object.assign({}, locale$y)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$h = {
    // Options.jsx
    items_per_page: '/ pagina',
    jump_to: 'vai a',
    jump_to_confirm: 'Conferma',
    page: '',
    // Pagination.jsx
    prev_page: 'Pagina precedente',
    next_page: 'Pagina successiva',
    prev_5: 'Precedente 5 pagine',
    next_5: 'Prossime 5 pagine',
    prev_3: 'Precedente 3 pagine',
    next_3: 'Prossime 3 pagine'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var it_IT = {
    locale: 'it',
    Pagination: Pagination$h,
    DatePicker: locale$z,
    TimePicker: locale$y,
    Calendar: CalendarLocale$h,
    Table: {
        filterTitle: 'Menù Filtro',
        filterConfirm: 'OK',
        filterReset: 'Reset',
        selectAll: 'Seleziona pagina corrente',
        selectInvert: 'Inverti selezione nella pagina corrente',
        sortTitle: 'Ordina'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Annulla',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Annulla'
    },
    Transfer: {
        searchPlaceholder: 'Cerca qui',
        itemUnit: 'articolo',
        itemsUnit: 'elementi'
    },
    Upload: {
        uploading: 'Caricamento...',
        removeFile: 'Rimuovi il file',
        uploadError: 'Errore di caricamento',
        previewFile: 'Anteprima file'
    },
    Empty: {
        description: 'Nessun dato'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$i = {
    today: '今日',
    now: '現在時刻',
    backToToday: '今日に戻る',
    ok: '決定',
    timeSelect: '時間を選択',
    dateSelect: '日時を選択',
    clear: 'クリア',
    month: '月',
    year: '年',
    previousMonth: '前月 (ページアップキー)',
    nextMonth: '翌月 (ページダウンキー)',
    monthSelect: '月を選択',
    yearSelect: '年を選択',
    decadeSelect: '年代を選択',
    yearFormat: 'YYYY年',
    dayFormat: 'D日',
    dateFormat: 'YYYY年M月D日',
    dateTimeFormat: 'YYYY年M月D日 HH時mm分ss秒',
    previousYear: '前年 (Controlを押しながら左キー)',
    nextYear: '翌年 (Controlを押しながら右キー)',
    previousDecade: '前の年代',
    nextDecade: '次の年代',
    previousCentury: '前の世紀',
    nextCentury: '次の世紀'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$A = {
    placeholder: '時刻を選択'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/** @type {?} */
const locale$B = {
    lang: Object.assign({ placeholder: '日付を選択', rangePlaceholder: ['開始日付', '終了日付'] }, CalendarLocale$i),
    timePickerLocale: Object.assign({}, locale$A)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$i = {
    // Options.jsx
    items_per_page: '/ ページ',
    jump_to: '移動',
    jump_to_confirm: '確認する',
    page: 'ページ',
    // Pagination.jsx
    prev_page: '前のページ',
    next_page: '次のページ',
    prev_5: '前 5ページ',
    next_5: '次 5ページ',
    prev_3: '前 3ページ',
    next_3: '次 3ページ'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var ja_JP = {
    locale: 'ja',
    Pagination: Pagination$i,
    DatePicker: locale$B,
    TimePicker: locale$A,
    Calendar: CalendarLocale$i,
    Table: {
        filterTitle: 'メニューをフィルター',
        filterConfirm: 'OK',
        filterReset: 'リセット',
        selectAll: 'すべてを選択',
        selectInvert: '選択を反転'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'キャンセル',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'キャンセル'
    },
    Transfer: {
        searchPlaceholder: 'ここを検索',
        itemUnit: 'アイテム',
        itemsUnit: 'アイテム'
    },
    Upload: {
        uploading: 'アップロード中...',
        removeFile: 'ファイルを削除',
        uploadError: 'アップロードエラー',
        previewFile: 'ファイルをプレビュー'
    },
    Empty: {
        description: 'データがありません'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$j = {
    today: '오늘',
    now: '현재 시각',
    backToToday: '오늘로 돌아가기',
    ok: '확인',
    clear: '지우기',
    month: '월',
    year: '년',
    timeSelect: '시간 선택',
    dateSelect: '날짜 선택',
    monthSelect: '달 선택',
    yearSelect: '연 선택',
    decadeSelect: '연대 선택',
    yearFormat: 'YYYY년',
    dateFormat: 'YYYY-MM-DD',
    dayFormat: 'Do',
    dateTimeFormat: 'YYYY-MM-DD HH:mm:ss',
    monthBeforeYear: false,
    previousMonth: '이전 달 (PageUp)',
    nextMonth: '다음 달 (PageDown)',
    previousYear: '이전 해 (Control + left)',
    nextYear: '다음 해 (Control + right)',
    previousDecade: '이전 연대',
    nextDecade: '다음 연대',
    previousCentury: '이전 세기',
    nextCentury: '다음 세기'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$C = {
    placeholder: '날짜 선택'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$D = {
    lang: Object.assign({ placeholder: '날짜 선택', rangePlaceholder: ['시작일', '종료일'] }, CalendarLocale$j),
    timePickerLocale: Object.assign({}, locale$C)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$j = {
    // Options.jsx
    items_per_page: '/ 쪽',
    jump_to: '이동하기',
    jump_to_confirm: '확인하다',
    page: '',
    // Pagination.jsx
    prev_page: '이전 페이지',
    next_page: '다음 페이지',
    prev_5: '이전 5 페이지',
    next_5: '다음 5 페이지',
    prev_3: '이전 3 페이지',
    next_3: '다음 3 페이지'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var ko_KR = {
    locale: 'ko',
    Pagination: Pagination$j,
    DatePicker: locale$D,
    TimePicker: locale$C,
    Calendar: CalendarLocale$j,
    Table: {
        filterTitle: '필터 메뉴',
        filterConfirm: '확인',
        filterReset: '초기화',
        selectAll: '모두 선택',
        selectInvert: '선택 반전'
    },
    Modal: {
        okText: '확인',
        cancelText: '취소',
        justOkText: '확인'
    },
    Popconfirm: {
        okText: '확인',
        cancelText: '취소'
    },
    Transfer: {
        searchPlaceholder: '여기에 검색하세요',
        itemUnit: '개',
        itemsUnit: '개'
    },
    Upload: {
        uploading: '업로드 중...',
        removeFile: '파일 삭제',
        uploadError: '업로드 실패',
        previewFile: '파일 미리보기'
    },
    Empty: {
        description: '데이터 없음'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$k = {
    today: 'I dag',
    now: 'Nå',
    backToToday: 'Gå til i dag',
    ok: 'Ok',
    clear: 'Annuller',
    month: 'Måned',
    year: 'År',
    timeSelect: 'Velg tidspunkt',
    dateSelect: 'Velg dato',
    monthSelect: 'Velg måned',
    yearSelect: 'Velg år',
    decadeSelect: 'Velg årti',
    yearFormat: 'YYYY',
    dateFormat: 'DD.MM.YYYY',
    dayFormat: 'DD',
    dateTimeFormat: 'DD.MM.YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Forrige måned(PageUp)',
    nextMonth: 'Neste måned (PageDown)',
    previousYear: 'Forrige år (Control + left)',
    nextYear: 'Neste år (Control + right)',
    previousDecade: 'Forrige tiår',
    nextDecade: 'Neste tiår',
    previousCentury: 'Forrige århundre',
    nextCentury: 'Neste århundre'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$E = {
    placeholder: 'Velg tid'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$F = {
    lang: Object.assign({ placeholder: 'Velg dato', rangePlaceholder: ['Startdato', 'Sluttdato'] }, CalendarLocale$k),
    timePickerLocale: Object.assign({}, locale$E)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$k = {
    // Options.jsx
    items_per_page: '/ side',
    jump_to: 'Gå til side',
    page: '',
    // Pagination.jsx
    prev_page: 'Forrige side',
    next_page: 'Neste side',
    prev_5: '5 forrige',
    next_5: '5 neste',
    prev_3: '3 forrige',
    next_3: '3 neste'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var nb_NO = {
    locale: 'nb',
    DatePicker: locale$F,
    TimePicker: locale$E,
    Calendar: CalendarLocale$k,
    Pagination: Pagination$k,
    Table: {
        filterTitle: 'Filtermeny',
        filterConfirm: 'OK',
        filterReset: 'Nullstill',
        selectAll: 'Velg alle',
        selectInvert: 'Inverter valg'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Avbryt',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Avbryt'
    },
    Transfer: {
        searchPlaceholder: 'Søk her',
        itemUnit: 'element',
        itemsUnit: 'elementer'
    },
    Upload: {
        uploading: 'Laster opp...',
        removeFile: 'Fjern fil',
        uploadError: 'Feil ved opplastning',
        previewFile: 'Forhåndsvisning'
    },
    Empty: {
        description: 'Ingen data'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$l = {
    today: 'Vandaag',
    now: 'Nu',
    backToToday: 'Terug naar vandaag',
    ok: 'Ok',
    clear: 'Reset',
    month: 'Maand',
    year: 'Jaar',
    timeSelect: 'Selecteer tijd',
    dateSelect: 'Selecteer datum',
    monthSelect: 'Kies een maand',
    yearSelect: 'Kies een jaar',
    decadeSelect: 'Kies een decennium',
    yearFormat: 'YYYY',
    dateFormat: 'D-M-YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D-M-YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Vorige maand (PageUp)',
    nextMonth: 'Volgende maand (PageDown)',
    previousYear: 'Vorig jaar (Control + left)',
    nextYear: 'Volgend jaar (Control + right)',
    previousDecade: 'Vorig decennium',
    nextDecade: 'Volgend decennium',
    previousCentury: 'Vorige eeuw',
    nextCentury: 'Volgende eeuw'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$G = {
    placeholder: 'Selecteer tijd'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$H = {
    lang: Object.assign({ placeholder: 'Selecteer datum', rangePlaceholder: ['Begin datum', 'Eind datum'] }, CalendarLocale$l),
    timePickerLocale: Object.assign({}, locale$G)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$l = {
    // Options.jsx
    items_per_page: '/ pagina',
    jump_to: 'Ga naar',
    jump_to_confirm: 'bevestigen',
    page: '',
    // Pagination.jsx
    prev_page: 'Vorige pagina',
    next_page: 'Volgende pagina',
    prev_5: 'Vorige 5 pagina\'s',
    next_5: 'Volgende 5 pagina\'s',
    prev_3: 'Vorige 3 pagina\'s',
    next_3: 'Volgende 3 pagina\'s'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var nl_BE = {
    locale: 'nl-be',
    Pagination: Pagination$l,
    DatePicker: locale$H,
    TimePicker: locale$G,
    Calendar: CalendarLocale$l,
    Table: {
        filterTitle: 'FilterMenu',
        filterConfirm: 'OK',
        filterReset: 'Reset',
        selectAll: 'Selecteer huidige pagina',
        selectInvert: 'Selecteer huidige pagina'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Annuleer',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Annuleer'
    },
    Transfer: {
        searchPlaceholder: 'Zoek hier',
        itemUnit: 'item',
        itemsUnit: 'items'
    },
    Upload: {
        uploading: 'Uploaden...',
        removeFile: 'Bestand verwijderen',
        uploadError: 'Upload fout',
        previewFile: 'Preview bestand'
    },
    Empty: {
        description: 'Geen gegevens'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$m = {
    today: 'Vandaag',
    now: 'Nu',
    backToToday: 'Terug naar vandaag',
    ok: 'Ok',
    clear: 'Reset',
    month: 'Maand',
    year: 'Jaar',
    timeSelect: 'Selecteer tijd',
    dateSelect: 'Selecteer datum',
    monthSelect: 'Kies een maand',
    yearSelect: 'Kies een jaar',
    decadeSelect: 'Kies een decennium',
    yearFormat: 'YYYY',
    dateFormat: 'D-M-YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D-M-YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Vorige maand (PageUp)',
    nextMonth: 'Volgende maand (PageDown)',
    previousYear: 'Vorig jaar (Control + left)',
    nextYear: 'Volgend jaar (Control + right)',
    previousDecade: 'Vorig decennium',
    nextDecade: 'Volgend decennium',
    previousCentury: 'Vorige eeuw',
    nextCentury: 'Volgende eeuw'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$I = {
    placeholder: 'Selecteer tijd'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$J = {
    lang: Object.assign({ placeholder: 'Selecteer datum', rangePlaceholder: ['Begin datum', 'Eind datum'] }, CalendarLocale$m),
    timePickerLocale: Object.assign({}, locale$I)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$m = {
    // Options.jsx
    items_per_page: '/ pagina',
    jump_to: 'Ga naar',
    jump_to_confirm: 'bevestigen',
    page: '',
    // Pagination.jsx
    prev_page: 'Vorige pagina',
    next_page: 'Volgende pagina',
    prev_5: 'Vorige 5 pagina\'s',
    next_5: 'Volgende 5 pagina\'s',
    prev_3: 'Vorige 3 pagina\'s',
    next_3: 'Volgende 3 pagina\'s'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var nl_NL = {
    locale: 'nl',
    Pagination: Pagination$m,
    DatePicker: locale$J,
    TimePicker: locale$I,
    Calendar: CalendarLocale$m,
    Table: {
        filterTitle: 'Filteren',
        filterConfirm: 'OK',
        filterReset: 'Reset',
        selectAll: 'Selecteer huidige pagina',
        selectInvert: 'Deselecteer huidige pagina'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Annuleren',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Annuleren'
    },
    Transfer: {
        searchPlaceholder: 'Zoeken',
        itemUnit: 'item',
        itemsUnit: 'items'
    },
    Upload: {
        uploading: 'Uploaden...',
        removeFile: 'Verwijder bestand',
        uploadError: 'Fout tijdens uploaden',
        previewFile: 'Bekijk bestand'
    },
    Empty: {
        description: 'Geen gegevens'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$n = {
    today: 'Dzisiaj',
    now: 'Teraz',
    backToToday: 'Ustaw dzisiaj',
    ok: 'Ok',
    clear: 'Wyczyść',
    month: 'Miesiąc',
    year: 'Rok',
    timeSelect: 'Ustaw czas',
    dateSelect: 'Ustaw datę',
    monthSelect: 'Wybierz miesiąc',
    yearSelect: 'Wybierz rok',
    decadeSelect: 'Wybierz dekadę',
    yearFormat: 'YYYY',
    dateFormat: 'D/M/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D/M/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Poprzedni miesiąc (PageUp)',
    nextMonth: 'Następny miesiąc (PageDown)',
    previousYear: 'Ostatni rok (Ctrl + left)',
    nextYear: 'Następny rok (Ctrl + right)',
    previousDecade: 'Ostatnia dekada',
    nextDecade: 'Następna dekada',
    previousCentury: 'Ostatni wiek',
    nextCentury: 'Następny wiek'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$K = {
    placeholder: 'Wybierz godzinę'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$L = {
    lang: Object.assign({ placeholder: 'Wybierz datę', rangePlaceholder: ['Data początkowa', 'Data końcowa'] }, CalendarLocale$n),
    timePickerLocale: Object.assign({}, locale$K)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$n = {
    // Options.jsx
    items_per_page: '/ stronę',
    jump_to: 'Idź do',
    jump_to_confirm: 'potwierdzać',
    page: '',
    // Pagination.jsx
    prev_page: 'Poprzednia strona',
    next_page: 'Następna strona',
    prev_5: 'Poprzednie 5 stron',
    next_5: 'Następne 5 stron',
    prev_3: 'Poprzednie 3 strony',
    next_3: 'Następne 3 strony'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var pl_PL = {
    locale: 'pl',
    Pagination: Pagination$n,
    DatePicker: locale$L,
    TimePicker: locale$K,
    Calendar: CalendarLocale$n,
    Table: {
        filterTitle: 'Menu filtra',
        filterConfirm: 'OK',
        filterReset: 'Wyczyść',
        selectAll: 'Zaznacz bieżącą stronę',
        selectInvert: 'Odwróć zaznaczenie'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Anuluj',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Anuluj'
    },
    Transfer: {
        searchPlaceholder: 'Szukaj',
        itemUnit: 'obiekt',
        itemsUnit: 'obiekty'
    },
    Upload: {
        uploading: 'Wysyłanie...',
        removeFile: 'Usuń plik',
        uploadError: 'Błąd wysyłania',
        previewFile: 'Podejrzyj plik'
    },
    Empty: {
        description: 'Brak danych'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$o = {
    today: 'Hoje',
    now: 'Agora',
    backToToday: 'Voltar para hoje',
    ok: 'Ok',
    clear: 'Limpar',
    month: 'Mês',
    year: 'Ano',
    timeSelect: 'Selecionar tempo',
    dateSelect: 'Selecionar data',
    monthSelect: 'Escolher mês',
    yearSelect: 'Escolher ano',
    decadeSelect: 'Escolher década',
    yearFormat: 'YYYY',
    dateFormat: 'D/M/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D/M/YYYY HH:mm:ss',
    monthBeforeYear: false,
    previousMonth: 'Mês anterior (PageUp)',
    nextMonth: 'Próximo mês (PageDown)',
    previousYear: 'Ano anterior (Control + esquerda)',
    nextYear: 'Próximo ano (Control + direita)',
    previousDecade: 'Década anterior',
    nextDecade: 'Próxima década',
    previousCentury: 'Século anterior',
    nextCentury: 'Próximo século'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$M = {
    placeholder: 'Hora'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$N = {
    lang: Object.assign({ placeholder: 'Selecionar data', rangePlaceholder: ['Data de início', 'Data de fim'] }, CalendarLocale$o),
    timePickerLocale: Object.assign({}, locale$M)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$o = {
    // Options.jsx
    items_per_page: '/ páginas',
    jump_to: 'Vá até',
    jump_to_confirm: 'confirme',
    page: '',
    // Pagination.jsx
    prev_page: 'Página anterior',
    next_page: 'Próxima página',
    prev_5: '5 páginas anteriores',
    next_5: '5 próximas páginas',
    prev_3: '3 páginas anteriores',
    next_3: '3 próximas páginas'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var pt_BR = {
    locale: 'pt-br',
    Pagination: Pagination$o,
    DatePicker: locale$N,
    TimePicker: locale$M,
    Calendar: CalendarLocale$o,
    Table: {
        filterTitle: 'Filtro',
        filterConfirm: 'OK',
        filterReset: 'Resetar',
        selectAll: 'Selecionar página atual',
        selectInvert: 'Inverter seleção'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Cancelar',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Cancelar'
    },
    Transfer: {
        searchPlaceholder: 'Procurar',
        itemUnit: 'item',
        itemsUnit: 'items'
    },
    Upload: {
        uploading: 'Enviando...',
        removeFile: 'Remover arquivo',
        uploadError: 'Erro no envio',
        previewFile: 'Visualizar arquivo'
    },
    Empty: {
        description: 'Não há dados'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$p = {
    today: 'Hoje',
    now: 'Agora',
    backToToday: 'Hoje',
    ok: 'Ok',
    clear: 'Limpar',
    month: 'Mês',
    year: 'Ano',
    timeSelect: 'Selecionar hora',
    dateSelect: 'Selecionar data',
    monthSelect: 'Selecionar mês',
    yearSelect: 'Selecionar ano',
    decadeSelect: 'Selecionar década',
    yearFormat: 'YYYY',
    dateFormat: 'D/M/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D/M/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Mês anterior (PageUp)',
    nextMonth: 'Mês seguinte (PageDown)',
    previousYear: 'Ano anterior (Control + left)',
    nextYear: 'Ano seguinte (Control + right)',
    previousDecade: 'Década anterior',
    nextDecade: 'Década seguinte',
    previousCentury: 'Século anterior',
    nextCentury: 'Século seguinte'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$O = {
    placeholder: 'Hora'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$P = {
    lang: Object.assign({}, CalendarLocale$p, { placeholder: 'Data', rangePlaceholder: ['Data inicial', 'Data final'], today: 'Hoje', now: 'Agora', backToToday: 'Hoje', ok: 'Ok', clear: 'Limpar', month: 'Mês', year: 'Ano', timeSelect: 'Hora', dateSelect: 'Selecionar data', monthSelect: 'Selecionar mês', yearSelect: 'Selecionar ano', decadeSelect: 'Selecionar década', yearFormat: 'YYYY', dateFormat: 'D/M/YYYY', dayFormat: 'D', dateTimeFormat: 'D/M/YYYY HH:mm:ss', monthFormat: 'MMMM', monthBeforeYear: false, previousMonth: 'Mês anterior (PageUp)', nextMonth: 'Mês seguinte (PageDown)', previousYear: 'Ano anterior (Control + left)', nextYear: 'Ano seguinte (Control + right)', previousDecade: 'Última década', nextDecade: 'Próxima década', previousCentury: 'Último século', nextCentury: 'Próximo século' }),
    timePickerLocale: Object.assign({}, locale$O, { placeholder: 'Hora' })
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$p = {
    // Options.jsx
    items_per_page: '/ página',
    jump_to: 'Saltar',
    jump_to_confirm: 'confirmar',
    page: '',
    // Pagination.jsx
    prev_page: 'Página Anterior',
    next_page: 'Página Seguinte',
    prev_5: 'Recuar 5 Páginas',
    next_5: 'Avançar 5 Páginas',
    prev_3: 'Recuar 3 Páginas',
    next_3: 'Avançar 3 Páginas'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var pt_PT = {
    locale: 'pt',
    Pagination: Pagination$p,
    DatePicker: locale$P,
    TimePicker: locale$O,
    Calendar: CalendarLocale$p,
    Table: {
        filterTitle: 'Filtro',
        filterConfirm: 'Aplicar',
        filterReset: 'Reiniciar',
        selectAll: 'Selecionar página atual',
        selectInvert: 'Inverter seleção'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Cancelar',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Cancelar'
    },
    Transfer: {
        searchPlaceholder: 'Procurar...',
        itemUnit: 'item',
        itemsUnit: 'itens'
    },
    Upload: {
        uploading: 'A carregar...',
        removeFile: 'Remover',
        uploadError: 'Erro ao carregar',
        previewFile: 'Pré-visualizar'
    },
    Empty: {
        description: 'Sem resultados'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$q = {
    today: 'Сегодня',
    now: 'Сейчас',
    backToToday: 'Текущая дата',
    ok: 'Ok',
    clear: 'Очистить',
    month: 'Месяц',
    year: 'Год',
    timeSelect: 'Выбрать время',
    dateSelect: 'Выбрать дату',
    monthSelect: 'Выбрать месяц',
    yearSelect: 'Выбрать год',
    decadeSelect: 'Выбрать десятилетие',
    yearFormat: 'YYYY',
    dateFormat: 'D-M-YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D-M-YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Предыдущий месяц (PageUp)',
    nextMonth: 'Следующий месяц (PageDown)',
    previousYear: 'Предыдущий год (Control + left)',
    nextYear: 'Следующий год (Control + right)',
    previousDecade: 'Предыдущее десятилетие',
    nextDecade: 'Следущее десятилетие',
    previousCentury: 'Предыдущий век',
    nextCentury: 'Следующий век'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/**
 * Created by Andrey Gayvoronsky on 13/04/16.
 * @type {?}
 */
const locale$Q = {
    placeholder: 'Выберите время'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/** @type {?} */
const locale$R = {
    lang: Object.assign({ placeholder: 'Выберите дату', rangePlaceholder: ['Начальная дата', 'Конечная дата'] }, CalendarLocale$q),
    timePickerLocale: Object.assign({}, locale$Q)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$q = {
    // Options.jsx
    items_per_page: '/странице',
    jump_to: 'Перейти',
    jump_to_confirm: 'подтвердить',
    page: '',
    // Pagination.jsx
    prev_page: 'Назад',
    next_page: 'Вперед',
    prev_5: 'Предыдущие 5',
    next_5: 'Следующие 5',
    prev_3: 'Предыдущие 3',
    next_3: 'Следующие 3'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var ru_RU = {
    locale: 'ru',
    Pagination: Pagination$q,
    DatePicker: locale$R,
    TimePicker: locale$Q,
    Calendar: CalendarLocale$q,
    Table: {
        filterTitle: 'Фильтр',
        filterConfirm: 'OK',
        filterReset: 'Сбросить',
        selectAll: 'Выбрать всё',
        selectInvert: 'Инвертировать выбор'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Отмена',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Отмена'
    },
    Transfer: {
        searchPlaceholder: 'Поиск',
        itemUnit: 'элем.',
        itemsUnit: 'элем.'
    },
    Upload: {
        uploading: 'Загрузка...',
        removeFile: 'Удалить файл',
        uploadError: 'При загрузке произошла ошибка',
        previewFile: 'Предпросмотр файла'
    },
    Empty: {
        description: 'Нет данных'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$r = {
    today: 'Dnes',
    now: 'Teraz',
    backToToday: 'Späť na dnes',
    ok: 'Ok',
    clear: 'Vymazať',
    month: 'Mesiac',
    year: 'Rok',
    timeSelect: 'Vybrať čas',
    dateSelect: 'Vybrať dátum',
    monthSelect: 'Vybrať mesiac',
    yearSelect: 'Vybrať rok',
    decadeSelect: 'Vybrať dekádu',
    yearFormat: 'YYYY',
    dateFormat: 'D.M.YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D.M.YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Predchádzajúci mesiac (PageUp)',
    nextMonth: 'Nasledujúci mesiac (PageDown)',
    previousYear: 'Predchádzajúci rok (Control + left)',
    nextYear: 'Nasledujúci rok (Control + right)',
    previousDecade: 'Predchádzajúca dekáda',
    nextDecade: 'Nasledujúca dekáda',
    previousCentury: 'Predchádzajúce storočie',
    nextCentury: 'Nasledujúce storočie'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$S = {
    placeholder: 'Vybrať čas'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// 统一合并为完整的 Locale
/** @type {?} */
const locale$T = {
    lang: Object.assign({ placeholder: 'Vybrať dátum', rangePlaceholder: ['Od', 'Do'] }, CalendarLocale$r),
    timePickerLocale: Object.assign({}, locale$S)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$r = {
    // Options.jsx
    items_per_page: '/ strana',
    jump_to: 'Choď na',
    jump_to_confirm: 'potvrdit',
    page: '',
    // Pagination.jsx
    prev_page: 'Predchádzajúca strana',
    next_page: 'Nasledujúca strana',
    prev_5: 'Predchádzajúcich 5 strán',
    next_5: 'Nasledujúcich 5 strán',
    prev_3: 'Predchádzajúce 3 strany',
    next_3: 'Nasledujúce 3 strany'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var sk_SK = {
    locale: 'sk',
    Pagination: Pagination$r,
    DatePicker: locale$T,
    TimePicker: locale$S,
    Calendar: CalendarLocale$r,
    Table: {
        filterTitle: 'Filter',
        filterConfirm: 'OK',
        filterReset: 'Obnoviť',
        selectAll: 'Vybrať všetko',
        selectInvert: 'Vybrať opačné'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Zrušiť',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Zrušiť'
    },
    Transfer: {
        searchPlaceholder: 'Vyhľadávanie',
        itemUnit: 'položka',
        itemsUnit: 'položiek'
    },
    Upload: {
        uploading: 'Nahrávanie...',
        removeFile: 'Odstrániť súbor',
        uploadError: 'Chyba pri nahrávaní',
        previewFile: 'Zobraziť súbor'
    },
    Empty: {
        description: 'Žiadne dáta'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$s = {
    today: 'Danes',
    now: 'Zdaj',
    backToToday: 'Nazaj na danes',
    ok: 'V redu',
    clear: 'Počisti',
    month: 'Mesec',
    year: 'Leto',
    timeSelect: 'Izberi čas',
    dateSelect: 'Izberi datum',
    monthSelect: 'Izberi mesec',
    yearSelect: 'Izberi leto',
    decadeSelect: 'Izberi desetletje',
    yearFormat: 'YYYY',
    dateFormat: 'DD.MM.YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'DD.MM.YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Predhodnji mesec (PageUp)',
    nextMonth: 'Naslednji mesec (PageDown)',
    previousYear: 'Prejšnje leto (Control + left)',
    nextYear: 'Naslednje leto (Control + right)',
    previousDecade: 'Prejšnje desetletje',
    nextDecade: 'Naslednje desetletje',
    previousCentury: 'Prejšnje stoletje',
    nextCentury: 'Naslednje stoletje'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$U = {
    placeholder: 'Izberite čas'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$V = {
    lang: Object.assign({ placeholder: 'Izberite datum', rangePlaceholder: ['Začetni datum', 'Končni datum'] }, CalendarLocale$s),
    timePickerLocale: Object.assign({}, locale$U)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$s = {
    // Options.jsx
    items_per_page: '/ stran',
    jump_to: 'Pojdi na',
    jump_to_confirm: 'potrdi',
    page: '',
    // Pagination.jsx
    prev_page: 'Prejšnja stran',
    next_page: 'Naslednja stran',
    prev_5: 'Prejšnjih 5 Strani',
    next_5: 'Naslednjih 5 Strani',
    prev_3: 'Prejšnje 3 Strani',
    next_3: 'Naslednje 3 Strani'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var sl_SI = {
    locale: 'sl',
    Pagination: Pagination$s,
    DatePicker: locale$V,
    TimePicker: locale$U,
    Calendar: CalendarLocale$s,
    Table: {
        filterTitle: 'Filter',
        filterConfirm: 'Filtriraj',
        filterReset: 'Pobriši filter',
        selectAll: 'Izberi vse na trenutni strani',
        selectInvert: 'Obrni izbor na trenutni strani'
    },
    Modal: {
        okText: 'V redu',
        cancelText: 'Prekliči',
        justOkText: 'V redu'
    },
    Popconfirm: {
        okText: 'v redu',
        cancelText: 'Prekliči'
    },
    Transfer: {
        searchPlaceholder: 'Išči tukaj',
        itemUnit: 'Objekt',
        itemsUnit: 'Objektov'
    },
    Upload: {
        uploading: 'Nalaganje...',
        removeFile: 'Odstrani datoteko',
        uploadError: 'Napaka pri nalaganju',
        previewFile: 'Predogled datoteke'
    },
    Empty: {
        description: 'Ni podatkov'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$t = {
    today: 'Danas',
    now: 'Sada',
    backToToday: 'Vrati se na danas',
    ok: 'U redu',
    clear: 'Obriši',
    month: 'Mesec',
    year: 'Godina',
    timeSelect: 'Izaberi vreme',
    dateSelect: 'Izaberi datum',
    monthSelect: 'Izaberi mesec',
    yearSelect: 'Izaberi godinu',
    decadeSelect: 'Izaberi deceniju',
    yearFormat: 'YYYY',
    dateFormat: 'DD.MM.YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'DD.MM.YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Prethodni mesec (PageUp)',
    nextMonth: 'Sledeći mesec (PageDown)',
    previousYear: 'Prethodna godina (Control + left)',
    nextYear: 'Sledeća godina (Control + right)',
    previousDecade: 'Prethodna decenija',
    nextDecade: 'Sledeća decenija',
    previousCentury: 'Prethodni vek',
    nextCentury: 'Sledeći vek'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$W = {
    placeholder: 'Izaberite vreme'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$X = {
    lang: Object.assign({ placeholder: 'Izaberite datum', rangePlaceholder: ['Početni datum', 'Krajnji datum'] }, CalendarLocale$t),
    timePickerLocale: Object.assign({}, locale$W)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$t = {
    // Options.jsx
    items_per_page: '/ strani',
    jump_to: 'Idi na',
    page: '',
    // Pagination.jsx
    prev_page: 'Prethodna strana',
    next_page: 'Sledeća strana',
    prev_5: 'Prethodnih 5 Strana',
    next_5: 'Sledećih 5 Strana',
    prev_3: 'Prethodnih 3 Strane',
    next_3: 'Sledećih 3 Strane'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var sr_RS = {
    locale: 'sr',
    Pagination: Pagination$t,
    DatePicker: locale$X,
    TimePicker: locale$W,
    Calendar: CalendarLocale$t,
    Table: {
        filterTitle: 'Filter',
        filterConfirm: 'Primeni filter',
        filterReset: 'Resetuj filter',
        selectAll: 'Obeleži sve na trenutnoj strani',
        selectInvert: 'Obrni selekciju na trenutnoj stranici'
    },
    Modal: {
        okText: 'U redu',
        cancelText: 'Otkaži',
        justOkText: 'U redu'
    },
    Popconfirm: {
        okText: 'U redu',
        cancelText: 'Otkaži'
    },
    Transfer: {
        searchPlaceholder: 'Pretražite ovde',
        itemUnit: 'stavka',
        itemsUnit: 'stavki'
    },
    Upload: {
        uploading: 'Slanje...',
        removeFile: 'Ukloni fajl',
        uploadError: 'Greška prilikom slanja',
        previewFile: 'Pogledaj fajl'
    },
    Empty: {
        description: 'Nema podataka'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$u = {
    today: 'I dag',
    now: 'Nu',
    backToToday: 'Till idag',
    ok: 'Ok',
    clear: 'Avbryt',
    month: 'Månad',
    year: 'År',
    timeSelect: 'Välj tidpunkt',
    dateSelect: 'Välj datum',
    monthSelect: 'Välj månad',
    yearSelect: 'Välj år',
    decadeSelect: 'Välj årtionde',
    yearFormat: 'YYYY',
    dateFormat: 'YYYY-MM-DD',
    dayFormat: 'D',
    dateTimeFormat: 'YYYY-MM-DD H:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Förra månaden (PageUp)',
    nextMonth: 'Nästa månad (PageDown)',
    previousYear: 'Föreg år (Control + left)',
    nextYear: 'Nästa år (Control + right)',
    previousDecade: 'Föreg årtionde',
    nextDecade: 'Nästa årtionde',
    previousCentury: 'Föreg århundrade',
    nextCentury: 'Nästa århundrade'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$Y = {
    placeholder: 'Välj tid'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/** @type {?} */
const locale$Z = {
    lang: Object.assign({ placeholder: 'Välj datum', rangePlaceholder: ['Startdatum', 'Slutdatum'] }, CalendarLocale$u),
    timePickerLocale: Object.assign({}, locale$Y)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$u = {
    // Options.jsx
    items_per_page: '/ sida',
    jump_to: 'Gå till',
    jump_to_confirm: 'bekräfta',
    page: '',
    // Pagination.jsx
    prev_page: 'Föreg sida',
    next_page: 'Nästa sida',
    prev_5: 'Föreg 5 sidor',
    next_5: 'Nästa 5 sidor',
    prev_3: 'Föreg 3 sidor',
    next_3: 'Nästa 3 sidor'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var sv_SE = {
    locale: 'sv',
    Pagination: Pagination$u,
    DatePicker: locale$Z,
    TimePicker: locale$Y,
    Calendar: CalendarLocale$u,
    Table: {
        filterTitle: 'Filtermeny',
        filterConfirm: 'OK',
        filterReset: 'Rensa'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Avbryt',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Avbryt'
    },
    Transfer: {
        searchPlaceholder: 'Sök',
        itemUnit: 'element',
        itemsUnit: 'element'
    },
    Empty: {
        description: 'Ingen information'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$v = {
    today: 'วันนี้',
    now: 'ตอนนี้',
    backToToday: 'กลับไปยังวันนี้',
    ok: 'ตกลง',
    clear: 'ลบล้าง',
    month: 'เดือน',
    year: 'ปี',
    timeSelect: 'เลือกเวลา',
    dateSelect: 'เลือกวัน',
    monthSelect: 'เลือกเดือน',
    yearSelect: 'เลือกปี',
    decadeSelect: 'เลือกทศวรรษ',
    yearFormat: 'YYYY',
    dateFormat: 'D/M/YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D/M/YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'เดือนก่อนหน้า (PageUp)',
    nextMonth: 'เดือนถัดไป (PageDown)',
    previousYear: 'ปีก่อนหน้า (Control + left)',
    nextYear: 'ปีถัดไป (Control + right)',
    previousDecade: 'ทศวรรษก่อนหน้า',
    nextDecade: 'ทศวรรษถัดไป',
    previousCentury: 'ศตวรรษก่อนหน้า',
    nextCentury: 'ศตวรรษถัดไป'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$_ = {
    placeholder: 'เลือกเวลา'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$10 = {
    lang: Object.assign({ placeholder: 'เลือกวันที่', rangePlaceholder: ['วันเริ่มต้น', 'วันสิ้นสุด'] }, CalendarLocale$v),
    timePickerLocale: Object.assign({}, locale$_)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$v = {
    // Options.jsx
    items_per_page: '/ หน้า',
    jump_to: 'ไปยัง',
    jump_to_confirm: 'ยืนยัน',
    page: '',
    // Pagination.jsx
    prev_page: 'หน้าก่อนหน้า',
    next_page: 'หน้าถัดไป',
    prev_5: 'ย้อนกลับ 5 หน้า',
    next_5: 'ถัดไป 5 หน้า',
    prev_3: 'ย้อนกลับ 3 หน้า',
    next_3: 'ถัดไป 3 หน้า'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var th_TH = {
    locale: 'th',
    Pagination: Pagination$v,
    DatePicker: locale$10,
    TimePicker: locale$_,
    Calendar: CalendarLocale$v,
    Table: {
        filterTitle: 'ตัวกรอง',
        filterConfirm: 'ยืนยัน',
        filterReset: 'รีเซ็ต',
        selectAll: 'เลือกทั้งหมดในหน้านี้',
        selectInvert: 'เลือกสถานะตรงกันข้าม'
    },
    Modal: {
        okText: 'ตกลง',
        cancelText: 'ยกเลิก',
        justOkText: 'ตกลง'
    },
    Popconfirm: {
        okText: 'ตกลง',
        cancelText: 'ยกเลิก'
    },
    Transfer: {
        searchPlaceholder: 'ค้นหา',
        itemUnit: 'ชิ้น',
        itemsUnit: 'ชิ้น'
    },
    Upload: {
        uploading: 'กำลังอัปโหลด...',
        removeFile: 'ลบไฟล์',
        uploadError: 'เกิดข้อผิดพลาดในการอัปโหลด',
        previewFile: 'ดูตัวอย่างไฟล์'
    },
    Empty: {
        description: 'ไม่มีข้อมูล'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$11 = {
    placeholder: 'Zaman Seç'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$12 = {
    lang: Object.assign({ placeholder: 'Tarih Seç', rangePlaceholder: ['Başlangıç Tarihi', 'Bitiş Tarihi'] }, CalendarLocale$9),
    timePickerLocale: Object.assign({}, locale$11)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var tr_TR = {
    locale: 'tr',
    Pagination: Pagination$9,
    DatePicker: locale$12,
    TimePicker: locale$11,
    Calendar: CalendarLocale$9,
    Table: {
        filterTitle: 'Menü Filtrele',
        filterConfirm: 'Tamam',
        filterReset: 'Sıfırla',
        selectAll: 'Hepsini Seç',
        selectInvert: 'Tersini Seç'
    },
    Modal: {
        okText: 'Tamam',
        cancelText: 'İptal',
        justOkText: 'Tamam'
    },
    Popconfirm: {
        okText: 'Tamam',
        cancelText: 'İptal'
    },
    Transfer: {
        searchPlaceholder: 'Arama',
        itemUnit: 'Öğe',
        itemsUnit: 'Öğeler'
    },
    Upload: {
        uploading: 'Yükleniyor...',
        removeFile: `Dosyayı kaldır`,
        uploadError: 'Yükleme Hatası',
        previewFile: `Dosyayı Önizle`
    },
    Empty: {
        description: 'Veri Yok'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$w = {
    today: 'Сьогодні',
    now: 'Зараз',
    backToToday: 'Поточна дата',
    ok: 'Ok',
    clear: 'Очистити',
    month: 'Місяць',
    year: 'Рік',
    timeSelect: 'Обрати час',
    dateSelect: 'Обрати дату',
    monthSelect: 'Обрати місяць',
    yearSelect: 'Обрати рік',
    decadeSelect: 'Обрати десятиріччя',
    yearFormat: 'YYYY',
    dateFormat: 'D-M-YYYY',
    dayFormat: 'D',
    dateTimeFormat: 'D-M-YYYY HH:mm:ss',
    monthBeforeYear: true,
    previousMonth: 'Попередній місяць (PageUp)',
    nextMonth: 'Наступний місяць (PageDown)',
    previousYear: 'Попередній рік (Control + left)',
    nextYear: 'Наступний рік (Control + right)',
    previousDecade: 'Попереднє десятиріччя',
    nextDecade: 'Наступне десятиріччя',
    previousCentury: 'Попереднє століття',
    nextCentury: 'Наступне століття'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$13 = {
    placeholder: 'Оберіть час'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/** @type {?} */
const locale$14 = {
    lang: Object.assign({ placeholder: 'Оберіть дату', rangePlaceholder: ['Початкова дата', 'Кінцева дата'] }, CalendarLocale$w),
    timePickerLocale: Object.assign({}, locale$13)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$w = {
    // Options.jsx
    items_per_page: '/ сторінці',
    jump_to: 'Перейти',
    jump_to_confirm: 'підтвердити',
    page: '',
    // Pagination.jsx
    prev_page: 'Попередня сторінка',
    next_page: 'Наступна сторінка',
    prev_5: 'Попередні 5 сторінок',
    next_5: 'Наступні 5 сторінок',
    prev_3: 'Попередні 3 сторінки',
    next_3: 'Наступні 3 сторінки'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var uk_UA = {
    locale: 'uk',
    Pagination: Pagination$w,
    DatePicker: locale$14,
    TimePicker: locale$13,
    Calendar: CalendarLocale$w,
    Table: {
        filterTitle: 'Фільтрувати',
        filterConfirm: 'OK',
        filterReset: 'Скинути',
        selectAll: 'Обрати всі',
        selectInvert: 'Інвертувати вибір'
    },
    Modal: {
        okText: 'Гаразд',
        cancelText: 'Скасувати',
        justOkText: 'Гаразд'
    },
    Popconfirm: {
        okText: 'Гаразд',
        cancelText: 'Скасувати'
    },
    Transfer: {
        searchPlaceholder: 'Введіть текст для пошуку',
        itemUnit: 'item',
        itemsUnit: 'items'
    },
    Upload: {
        uploading: 'Завантаження ...',
        removeFile: 'Видалити файл',
        uploadError: 'Помилка завантаження',
        previewFile: 'Попередній перегляд файлу'
    },
    Empty: {
        description: 'Даних немає'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
// Merge into a locale object
/** @type {?} */
const locale$15 = {
    lang: Object.assign({ placeholder: 'Chọn thời điểm', rangePlaceholder: ['Ngày bắt đầu', 'Ngày kết thúc'] }, CalendarLocale$9),
    timePickerLocale: Object.assign({}, locale$i)
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$x = {
    // Options.jsx
    items_per_page: '/ trang',
    jump_to: 'Đến',
    jump_to_confirm: 'xác nhận',
    page: '',
    // Pagination.jsx
    prev_page: 'Trang Trước',
    next_page: 'Trang Kế',
    prev_5: 'Về 5 Trang Trước',
    next_5: 'Đến 5 Trang Kế',
    prev_3: 'Về 3 Trang Trước',
    next_3: 'Đến 3 Trang Kế'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$16 = {
    placeholder: 'Chọn thời gian'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var vi_VN = {
    locale: 'vi',
    Pagination: Pagination$x,
    DatePicker: locale$15,
    TimePicker: locale$16,
    Calendar: locale$15,
    Table: {
        filterTitle: 'Bộ ',
        filterConfirm: 'OK',
        filterReset: 'Tạo Lại',
        selectAll: 'Chọn Tất Cả',
        selectInvert: 'Chọn Ngược Lại'
    },
    Modal: {
        okText: 'OK',
        cancelText: 'Huỷ',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: 'OK',
        cancelText: 'Huỷ'
    },
    Transfer: {
        searchPlaceholder: 'Tìm ở đây',
        itemUnit: 'mục',
        itemsUnit: 'mục'
    },
    Upload: {
        uploading: 'Đang tải lên...',
        removeFile: 'Gỡ bỏ tập tin',
        uploadError: 'Lỗi tải lên',
        previewFile: 'Xem thử tập tin'
    },
    Empty: {
        description: 'Trống'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var CalendarLocale$x = {
    today: '今天',
    now: '此刻',
    backToToday: '返回今天',
    ok: '確定',
    timeSelect: '選擇時間',
    dateSelect: '選擇日期',
    clear: '清除',
    month: '月',
    year: '年',
    previousMonth: '上個月 (翻頁上鍵)',
    nextMonth: '下個月 (翻頁下鍵)',
    monthSelect: '選擇月份',
    yearSelect: '選擇年份',
    decadeSelect: '選擇年代',
    yearFormat: 'YYYY年',
    dayFormat: 'D日',
    dateFormat: 'YYYY年M月D日',
    dateTimeFormat: 'YYYY年M月D日 HH時mm分ss秒',
    previousYear: '上一年 (Control鍵加左方向鍵)',
    nextYear: '下一年 (Control鍵加右方向鍵)',
    previousDecade: '上一年代',
    nextDecade: '下一年代',
    previousCentury: '上一世紀',
    nextCentury: '下一世紀'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
/** @type {?} */
const locale$17 = {
    placeholder: '請選擇時間'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/** @type {?} */
const locale$18 = {
    lang: Object.assign({ placeholder: '請選擇日期', rangePlaceholder: ['開始日期', '結束日期'] }, CalendarLocale$x),
    timePickerLocale: Object.assign({}, locale$17)
};
locale$18.lang.ok = '確 定';

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
/**
 * @license
 * Copyright Alibaba.com All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
 */
var Pagination$y = {
    // Options.jsx
    items_per_page: '條/頁',
    jump_to: '跳至',
    jump_to_confirm: '確定',
    page: '頁',
    // Pagination.jsx
    prev_page: '上一頁',
    next_page: '下一頁',
    prev_5: '向前 5 頁',
    next_5: '向後 5 頁',
    prev_3: '向前 3 頁',
    next_3: '向後 3 頁'
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
var zh_TW = {
    locale: 'zh-tw',
    Pagination: Pagination$y,
    DatePicker: locale$18,
    TimePicker: locale$17,
    Calendar: CalendarLocale$x,
    Table: {
        filterTitle: '篩選器',
        filterConfirm: '確 定',
        filterReset: '重 置',
        selectAll: '全部選取',
        selectInvert: '反向選取'
    },
    Modal: {
        okText: '確 定',
        cancelText: '取 消',
        justOkText: 'OK'
    },
    Popconfirm: {
        okText: '確 定',
        cancelText: '取 消'
    },
    Transfer: {
        searchPlaceholder: '搜尋資料',
        itemUnit: '項目',
        itemsUnit: '項目'
    },
    Upload: {
        uploading: '正在上傳...',
        removeFile: '刪除檔案',
        uploadError: '上傳失敗',
        previewFile: '檔案預覽'
    },
    Empty: {
        description: '無此資料'
    }
};

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */

/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */

export { NzI18nModule, NzI18nService, NZ_DATE_CONFIG, ar_EG, bg_BG, ca_ES, cs_CZ, da_DK, de_DE, el_GR, en_GB, en_US, es_ES, et_EE, fa_IR, fi_FI, fr_BE, fr_FR, is_IS, it_IT, ja_JP, ko_KR, nb_NO, nl_BE, nl_NL, pl_PL, pt_BR, pt_PT, ru_RU, sk_SK, sl_SI, sr_RS, sv_SE, th_TH, tr_TR, uk_UA, vi_VN, zh_CN, zh_TW, NZ_I18N, NZ_DATE_LOCALE, DATE_HELPER_SERVICE_FACTORY, DateHelperService, DateHelperByDateFns, DateHelperByDatePipe, NzI18nPipe };

//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctem9ycm8tYW50ZC1pMThuLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2NhbGVuZGFyL3poX0NOLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3RpbWUtcGlja2VyL3poX0NOLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhdGUtcGlja2VyL3poX0NOLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BhZ2luYXRpb24vemhfQ04udHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvemhfQ04udHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9uei1pMThuLnRva2VuLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbnotaTE4bi5zZXJ2aWNlLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbnotaTE4bi5waXBlLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbnotaTE4bi5tb2R1bGUudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9kYXRlLWNvbmZpZy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2RhdGUtaGVscGVyLnNlcnZpY2UudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FsZW5kYXIvYXJfRUcudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIvYXJfRUcudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGF0ZS1waWNrZXIvYXJfRUcudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcGFnaW5hdGlvbi9hcl9FRy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9hcl9FRy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9jYWxlbmRhci9iZ19CRy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aW1lLXBpY2tlci9iZ19CRy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9kYXRlLXBpY2tlci9iZ19CRy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9wYWdpbmF0aW9uL2JnX0JHLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2JnX0JHLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2NhbGVuZGFyL2NhX0VTLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3RpbWUtcGlja2VyL2NhX0VTLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhdGUtcGlja2VyL2NhX0VTLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BhZ2luYXRpb24vY2FfRVMudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FfRVMudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FsZW5kYXIvY3NfQ1oudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIvY3NfQ1oudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGF0ZS1waWNrZXIvY3NfQ1oudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcGFnaW5hdGlvbi9jc19DWi50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9jc19DWi50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9jYWxlbmRhci9kYV9ESy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aW1lLXBpY2tlci9kYV9ESy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9kYXRlLXBpY2tlci9kYV9ESy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9wYWdpbmF0aW9uL2RhX0RLLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhX0RLLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2NhbGVuZGFyL2RlX0RFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3RpbWUtcGlja2VyL2RlX0RFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhdGUtcGlja2VyL2RlX0RFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BhZ2luYXRpb24vZGVfREUudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGVfREUudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FsZW5kYXIvZWxfR1IudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIvZWxfR1IudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGF0ZS1waWNrZXIvZWxfR1IudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcGFnaW5hdGlvbi9lbF9HUi50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9lbF9HUi50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9jYWxlbmRhci9lbl9HQi50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aW1lLXBpY2tlci9lbl9HQi50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9kYXRlLXBpY2tlci9lbl9HQi50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9wYWdpbmF0aW9uL2VuX0dCLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2VuX0dCLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2NhbGVuZGFyL2VuX1VTLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3RpbWUtcGlja2VyL2VuX1VTLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhdGUtcGlja2VyL2VuX1VTLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BhZ2luYXRpb24vZW5fVVMudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZW5fVVMudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FsZW5kYXIvZXNfRVMudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIvZXNfRVMudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGF0ZS1waWNrZXIvZXNfRVMudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcGFnaW5hdGlvbi9lc19FUy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9lc19FUy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9jYWxlbmRhci9ldF9FRS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aW1lLXBpY2tlci9ldF9FRS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9kYXRlLXBpY2tlci9ldF9FRS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9wYWdpbmF0aW9uL2V0X0VFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2V0X0VFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2NhbGVuZGFyL2ZhX0lSLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3RpbWUtcGlja2VyL2ZhX0lSLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhdGUtcGlja2VyL2ZhX0lSLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BhZ2luYXRpb24vZmFfSVIudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZmFfSVIudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FsZW5kYXIvZmlfRkkudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIvZmlfRkkudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGF0ZS1waWNrZXIvZmlfRkkudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcGFnaW5hdGlvbi9maV9GSS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9maV9GSS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9jYWxlbmRhci9mcl9CRS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aW1lLXBpY2tlci9mcl9CRS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9kYXRlLXBpY2tlci9mcl9CRS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9wYWdpbmF0aW9uL2ZyX0JFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2ZyX0JFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2NhbGVuZGFyL2ZyX0ZSLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3RpbWUtcGlja2VyL2ZyX0ZSLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhdGUtcGlja2VyL2ZyX0ZSLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BhZ2luYXRpb24vZnJfRlIudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZnJfRlIudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FsZW5kYXIvaXNfSVMudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIvaXNfSVMudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGF0ZS1waWNrZXIvaXNfSVMudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcGFnaW5hdGlvbi9pc19JUy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9pc19JUy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9jYWxlbmRhci9pdF9JVC50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aW1lLXBpY2tlci9pdF9JVC50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9kYXRlLXBpY2tlci9pdF9JVC50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9wYWdpbmF0aW9uL2l0X0lULnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2l0X0lULnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2NhbGVuZGFyL2phX0pQLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3RpbWUtcGlja2VyL2phX0pQLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhdGUtcGlja2VyL2phX0pQLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BhZ2luYXRpb24vamFfSlAudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvamFfSlAudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FsZW5kYXIva29fS1IudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIva29fS1IudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGF0ZS1waWNrZXIva29fS1IudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcGFnaW5hdGlvbi9rb19LUi50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9rb19LUi50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9jYWxlbmRhci9uYl9OTy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aW1lLXBpY2tlci9uYl9OTy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9kYXRlLXBpY2tlci9uYl9OTy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9wYWdpbmF0aW9uL25iX05PLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL25iX05PLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2NhbGVuZGFyL25sX0JFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3RpbWUtcGlja2VyL25sX0JFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhdGUtcGlja2VyL25sX0JFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BhZ2luYXRpb24vbmxfQkUudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvbmxfQkUudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FsZW5kYXIvbmxfTkwudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIvbmxfTkwudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGF0ZS1waWNrZXIvbmxfTkwudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcGFnaW5hdGlvbi9ubF9OTC50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9ubF9OTC50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9jYWxlbmRhci9wbF9QTC50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aW1lLXBpY2tlci9wbF9QTC50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9kYXRlLXBpY2tlci9wbF9QTC50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9wYWdpbmF0aW9uL3BsX1BMLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BsX1BMLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2NhbGVuZGFyL3B0X0JSLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3RpbWUtcGlja2VyL3B0X0JSLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhdGUtcGlja2VyL3B0X0JSLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BhZ2luYXRpb24vcHRfQlIudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcHRfQlIudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FsZW5kYXIvcHRfUFQudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIvcHRfUFQudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGF0ZS1waWNrZXIvcHRfUFQudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcGFnaW5hdGlvbi9wdF9QVC50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9wdF9QVC50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9jYWxlbmRhci9ydV9SVS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aW1lLXBpY2tlci9ydV9SVS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9kYXRlLXBpY2tlci9ydV9SVS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9wYWdpbmF0aW9uL3J1X1JVLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3J1X1JVLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2NhbGVuZGFyL3NrX1NLLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3RpbWUtcGlja2VyL3NrX1NLLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhdGUtcGlja2VyL3NrX1NLLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BhZ2luYXRpb24vc2tfU0sudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvc2tfU0sudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FsZW5kYXIvc2xfU0kudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIvc2xfU0kudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGF0ZS1waWNrZXIvc2xfU0kudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcGFnaW5hdGlvbi9zbF9TSS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9zbF9TSS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9jYWxlbmRhci9zcl9SUy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aW1lLXBpY2tlci9zcl9SUy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9kYXRlLXBpY2tlci9zcl9SUy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9wYWdpbmF0aW9uL3NyX1JTLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3NyX1JTLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2NhbGVuZGFyL3N2X1NFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3RpbWUtcGlja2VyL3N2X1NFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhdGUtcGlja2VyL3N2X1NFLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BhZ2luYXRpb24vc3ZfU0UudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvc3ZfU0UudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FsZW5kYXIvdGhfVEgudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIvdGhfVEgudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGF0ZS1waWNrZXIvdGhfVEgudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcGFnaW5hdGlvbi90aF9USC50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aF9USC50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aW1lLXBpY2tlci90cl9UUi50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9kYXRlLXBpY2tlci90cl9UUi50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90cl9UUi50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9jYWxlbmRhci91a19VQS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy90aW1lLXBpY2tlci91a19VQS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9kYXRlLXBpY2tlci91a19VQS50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy9wYWdpbmF0aW9uL3VrX1VBLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3VrX1VBLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL2RhdGUtcGlja2VyL3ZpX1ZOLnRzIiwibmc6Ly9uZy16b3Jyby1hbnRkL2kxOG4vbGFuZ3VhZ2VzL3BhZ2luYXRpb24vdmlfVk4udHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIvdmlfVk4udHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdmlfVk4udHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvY2FsZW5kYXIvemhfVFcudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvdGltZS1waWNrZXIvemhfVFcudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvZGF0ZS1waWNrZXIvemhfVFcudHMiLCJuZzovL25nLXpvcnJvLWFudGQvaTE4bi9sYW5ndWFnZXMvcGFnaW5hdGlvbi96aF9UVy50cyIsIm5nOi8vbmctem9ycm8tYW50ZC9pMThuL2xhbmd1YWdlcy96aF9UVy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ8OkwrvCisOlwqTCqScsXG4gIG5vdzogJ8Omwq3CpMOlwojCuycsXG4gIGJhY2tUb1RvZGF5OiAnw6jCv8KUw6XCm8Kew6TCu8KKw6XCpMKpJyxcbiAgb2s6ICfDp8Khwq7DpcKuwponLFxuICB0aW1lU2VsZWN0OiAnw6nCgMKJw6bCi8Kpw6bCl8K2w6nCl8K0JyxcbiAgZGF0ZVNlbGVjdDogJ8OpwoDCicOmwovCqcOmwpfCpcOmwpzCnycsXG4gIGNsZWFyOiAnw6bCuMKFw6nCmcKkJyxcbiAgbW9udGg6ICfDpsKcwognLFxuICB5ZWFyOiAnw6XCucK0JyxcbiAgcHJldmlvdXNNb250aDogJ8OkwrjCisOkwrjCqsOmwpzCiCAow6fCv8K7w6nCocK1w6TCuMKKw6nClMKuKScsXG4gIG5leHRNb250aDogJ8OkwrjCi8OkwrjCqsOmwpzCiCAow6fCv8K7w6nCocK1w6TCuMKLw6nClMKuKScsXG4gIG1vbnRoU2VsZWN0OiAnw6nCgMKJw6bCi8Kpw6bCnMKIw6TCu8K9JyxcbiAgeWVhclNlbGVjdDogJ8OpwoDCicOmwovCqcOlwrnCtMOkwrvCvScsXG4gIGRlY2FkZVNlbGVjdDogJ8OpwoDCicOmwovCqcOlwrnCtMOkwrvCoycsXG4gIHllYXJGb3JtYXQ6ICdZWVlZw6XCucK0JyxcbiAgZGF5Rm9ybWF0OiAnRMOmwpfCpScsXG4gIGRhdGVGb3JtYXQ6ICdZWVlZw6XCucK0TcOmwpzCiETDpsKXwqUnLFxuICBkYXRlVGltZUZvcm1hdDogJ1lZWVnDpcK5wrRNw6bCnMKIRMOmwpfCpSBISMOmwpfCtm1tw6XCiMKGc3PDp8KnwpInLFxuICBwcmV2aW91c1llYXI6ICfDpMK4worDpMK4woDDpcK5wrQgKENvbnRyb2zDqcKUwq7DpcKKwqDDpcK3wqbDpsKWwrnDpcKQwpHDqcKUwq4pJyxcbiAgbmV4dFllYXI6ICfDpMK4wovDpMK4woDDpcK5wrQgKENvbnRyb2zDqcKUwq7DpcKKwqDDpcKPwrPDpsKWwrnDpcKQwpHDqcKUwq4pJyxcbiAgcHJldmlvdXNEZWNhZGU6ICfDpMK4worDpMK4woDDpcK5wrTDpMK7wqMnLFxuICBuZXh0RGVjYWRlOiAnw6TCuMKLw6TCuMKAw6XCucK0w6TCu8KjJyxcbiAgcHJldmlvdXNDZW50dXJ5OiAnw6TCuMKKw6TCuMKAw6TCuMKWw6fCusKqJyxcbiAgbmV4dENlbnR1cnk6ICfDpMK4wovDpMK4woDDpMK4wpbDp8K6wqonXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICfDqMKvwrfDqcKAwonDpsKLwqnDpsKXwrbDqcKXwrQnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyTG9jYWxlIGZyb20gJy4uL2NhbGVuZGFyL3poX0NOJztcbmltcG9ydCBUaW1lUGlja2VyTG9jYWxlIGZyb20gJy4uL3RpbWUtcGlja2VyL3poX0NOJztcblxuY29uc3QgbG9jYWxlID0ge1xuICBsYW5nOiB7XG4gICAgcGxhY2Vob2xkZXI6ICfDqMKvwrfDqcKAwonDpsKLwqnDpsKXwqXDpsKcwp8nLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnw6XCvMKAw6XCp8KLw6bCl8Klw6bCnMKfJywgJ8OnwrvCk8Omwp3Cn8OmwpfCpcOmwpzCnyddLFxuICAgIC4uLkNhbGVuZGFyTG9jYWxlXG4gIH0sXG4gIHRpbWVQaWNrZXJMb2NhbGU6IHtcbiAgICAuLi5UaW1lUGlja2VyTG9jYWxlXG4gIH1cbn07XG5cbi8vIHNob3VsZCBhZGQgd2hpdGVzcGFjZSBiZXR3ZWVuIGNoYXIgaW4gQnV0dG9uXG5sb2NhbGUubGFuZy5vayA9ICfDp8Khwq4gw6XCrsKaJztcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICfDpsKdwqEvw6nCocK1JyxcbiAganVtcF90bzogJ8OowrfCs8OowofCsycsXG4gIGp1bXBfdG9fY29uZmlybTogJ8OnwqHCrsOlwq7CmicsXG4gIHBhZ2U6ICfDqcKhwrUnLFxuXG4gIC8vIFBhZ2luYXRpb24uanN4XG4gIHByZXZfcGFnZTogJ8OkwrjCisOkwrjCgMOpwqHCtScsXG4gIG5leHRfcGFnZTogJ8OkwrjCi8OkwrjCgMOpwqHCtScsXG4gIHByZXZfNTogJ8OlwpDCkcOlwonCjSA1IMOpwqHCtScsXG4gIG5leHRfNTogJ8OlwpDCkcOlwpDCjiA1IMOpwqHCtScsXG4gIHByZXZfMzogJ8OlwpDCkcOlwonCjSAzIMOpwqHCtScsXG4gIG5leHRfMzogJ8OlwpDCkcOlwpDCjiAzIMOpwqHCtSdcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyIGZyb20gJy4vY2FsZW5kYXIvemhfQ04nO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi9kYXRlLXBpY2tlci96aF9DTic7XG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tICcuL3BhZ2luYXRpb24vemhfQ04nO1xuaW1wb3J0IFRpbWVQaWNrZXIgZnJvbSAnLi90aW1lLXBpY2tlci96aF9DTic7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbG9jYWxlOiAnemgtY24nLFxuICBQYWdpbmF0aW9uLFxuICBEYXRlUGlja2VyLFxuICBUaW1lUGlja2VyLFxuICBDYWxlbmRhcixcbiAgLy8gbG9jYWxlcyBmb3IgYWxsIGNvbW9wb25lbnRzXG4gIGdsb2JhbDoge1xuICAgIHBsYWNlaG9sZGVyOiAnw6jCr8K3w6nCgMKJw6bCi8KpJ1xuICB9LFxuICBUYWJsZToge1xuICAgIGZpbHRlclRpdGxlOiAnw6fCrcKbw6nCgMKJJyxcbiAgICBmaWx0ZXJDb25maXJtOiAnw6fCocKuw6XCrsKaJyxcbiAgICBmaWx0ZXJSZXNldDogJ8OpwofCjcOnwr3CricsXG4gICAgc2VsZWN0QWxsOiAnw6XChcKow6nCgMKJw6XCvcKTw6nCocK1JyxcbiAgICBzZWxlY3RJbnZlcnQ6ICfDpcKPwo3DqcKAwonDpcK9wpPDqcKhwrUnLFxuICAgIHNvcnRUaXRsZTogJ8Omwo7CksOlwrrCjydcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICfDp8Khwq7DpcKuwponLFxuICAgIGNhbmNlbFRleHQ6ICfDpcKPwpbDpsK2wognLFxuICAgIGp1c3RPa1RleHQ6ICfDp8KfwqXDqcKBwpPDpMK6woYnXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBjYW5jZWxUZXh0OiAnw6XCj8KWw6bCtsKIJyxcbiAgICBva1RleHQ6ICfDp8Khwq7DpcKuwponXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICfDqMKvwrfDqMK+wpPDpcKFwqXDpsKQwpzDp8K0wqLDpcKGwoXDpcKuwrknLFxuICAgIGl0ZW1Vbml0OiAnw6nCocK5JyxcbiAgICBpdGVtc1VuaXQ6ICfDqcKhwrknXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ8OmwpbCh8OkwrvCtsOkwrjCisOkwrzCoMOkwrjCrScsXG4gICAgcmVtb3ZlRmlsZTogJ8OlwojCoMOpwpnCpMOmwpbCh8OkwrvCticsXG4gICAgdXBsb2FkRXJyb3I6ICfDpMK4worDpMK8wqDDqcKUwpnDqMKvwq8nLFxuICAgIHByZXZpZXdGaWxlOiAnw6nCosKEw6jCp8KIw6bClsKHw6TCu8K2J1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnw6bCmsKCw6bCl8Kgw6bClcKww6bCjcKuJ1xuICB9XG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERhdGVMb2NhbGUsIE56STE4bkludGVyZmFjZSB9IGZyb20gJy4vbnotaTE4bi5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY29uc3QgTlpfSTE4TiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOekkxOG5JbnRlcmZhY2U+KCduei1pMThuJyk7XG5cbi8qKiBMb2NhbGUgZm9yIGRhdGUgb3BlcmF0aW9ucywgc2hvdWxkIGltcG9ydCBmcm9tIGRhdGUtZm5zLCBzZWUgZXhhbXBsZTogaHR0cHM6Ly9naXRodWIuY29tL2RhdGUtZm5zL2RhdGUtZm5zL2Jsb2IvdjEuMzAuMS9zcmMvbG9jYWxlL3poX2NuL2luZGV4LmpzICovXG5leHBvcnQgY29uc3QgTlpfREFURV9MT0NBTEUgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGF0ZUxvY2FsZT4oJ256LWRhdGUtbG9jYWxlJyk7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEluZGV4YWJsZU9iamVjdCB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZSc7XG5cbmltcG9ydCB6aF9DTiBmcm9tICcuL2xhbmd1YWdlcy96aF9DTic7XG5pbXBvcnQgeyBEYXRlTG9jYWxlLCBOekkxOG5JbnRlcmZhY2UgfSBmcm9tICcuL256LWkxOG4uaW50ZXJmYWNlJztcbmltcG9ydCB7IE5aX0RBVEVfTE9DQUxFLCBOWl9JMThOIH0gZnJvbSAnLi9uei1pMThuLnRva2VuJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgTnpJMThuU2VydmljZSB7XG4gIHByaXZhdGUgX2xvY2FsZTogTnpJMThuSW50ZXJmYWNlO1xuICBwcml2YXRlIF9jaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE56STE4bkludGVyZmFjZT4odGhpcy5fbG9jYWxlKTtcbiAgcHJpdmF0ZSBkYXRlTG9jYWxlOiBEYXRlTG9jYWxlO1xuXG4gIGdldCBsb2NhbGVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxOekkxOG5JbnRlcmZhY2U+IHtcbiAgICByZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChOWl9JMThOKSBsb2NhbGU6IE56STE4bkludGVyZmFjZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5aX0RBVEVfTE9DQUxFKSBkYXRlTG9jYWxlOiBEYXRlTG9jYWxlXG4gICkge1xuICAgIHRoaXMuc2V0TG9jYWxlKGxvY2FsZSB8fCB6aF9DTik7XG4gICAgdGhpcy5zZXREYXRlTG9jYWxlKGRhdGVMb2NhbGUgfHwgbnVsbCk7XG4gIH1cblxuICAvLyBbTk9URV0gUGVyZm9ybWFuY2UgaXNzdWU6IHRoaXMgbWV0aG9kIG1heSBjYWxsZWQgYnkgZXZlcnkgY2hhbmdlIGRldGVjdGlvbnNcbiAgLy8gVE9ETzogY2FjaGUgbW9yZSBkZWVwbHkgcGF0aHMgZm9yIHBlcmZvcm1hbmNlXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cbiAgdHJhbnNsYXRlKHBhdGg6IHN0cmluZywgZGF0YT86IGFueSk6IHN0cmluZyB7XG4gICAgLy8gdGhpcy5fbG9nZ2VyLmRlYnVnKGBbTnpJMThuU2VydmljZV0gVHJhbnNsYXRpbmcoJHt0aGlzLl9sb2NhbGUubG9jYWxlfSk6ICR7cGF0aH1gKTtcbiAgICBsZXQgY29udGVudCA9IHRoaXMuX2dldE9iamVjdFBhdGgodGhpcy5fbG9jYWxlLCBwYXRoKSBhcyBzdHJpbmc7XG4gICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgT2JqZWN0LmtleXMoZGF0YSkuZm9yRWFjaChrZXkgPT4gKGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2UobmV3IFJlZ0V4cChgJSR7a2V5fSVgLCAnZycpLCBkYXRhW2tleV0pKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGg7XG4gIH1cblxuICAvKipcbiAgICogU2V0L0NoYW5nZSBjdXJyZW50IGxvY2FsZSBnbG9iYWxseSB0aHJvdWdob3V0IHRoZSBXSE9MRSBhcHBsaWNhdGlvblxuICAgKiBbTk9URV0gSWYgY2FsbGVkIGF0IHJ1bnRpbWUsIHJlbmRlcmVkIGludGVyZmFjZSBtYXkgbm90IGNoYW5nZSBhbG9uZyB3aXRoIHRoZSBsb2NhbGUgY2hhbmdlIChiZWNhdXNlIHRoaXMgZG8gbm90IHRyaWdnZXIgYW5vdGhlciByZW5kZXIgc2NoZWR1bGUpXG4gICAqIEBwYXJhbSBsb2NhbGUgVGhlIHRyYW5zbGF0aW5nIGxldHRlcnNcbiAgICovXG4gIHNldExvY2FsZShsb2NhbGU6IE56STE4bkludGVyZmFjZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9sb2NhbGUgJiYgdGhpcy5fbG9jYWxlLmxvY2FsZSA9PT0gbG9jYWxlLmxvY2FsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9sb2NhbGUgPSBsb2NhbGU7XG4gICAgdGhpcy5fY2hhbmdlLm5leHQobG9jYWxlKTtcbiAgfVxuXG4gIGdldExvY2FsZSgpOiBOekkxOG5JbnRlcmZhY2Uge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gIH1cblxuICBnZXRMb2NhbGVJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9sb2NhbGUgPyB0aGlzLl9sb2NhbGUubG9jYWxlIDogJyc7XG4gIH1cblxuICBzZXREYXRlTG9jYWxlKGRhdGVMb2NhbGU6IERhdGVMb2NhbGUpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGVMb2NhbGUgPSBkYXRlTG9jYWxlO1xuICB9XG5cbiAgZ2V0RGF0ZUxvY2FsZSgpOiBEYXRlTG9jYWxlIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlTG9jYWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsb2NhbGUgZGF0YVxuICAgKiBAcGFyYW0gcGF0aCBkb3QgcGF0aHMgZm9yIGZpbmRpbmcgZXhpc3QgdmFsdWUgZnJvbSBsb2NhbGUgZGF0YSwgZWcuIFwiYS5iLmNcIlxuICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIGRlZmF1bHQgdmFsdWUgaWYgdGhlIHJlc3VsdCBpcyBub3QgXCJ0cnV0aHlcIlxuICAgKi9cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICBnZXRMb2NhbGVEYXRhKHBhdGg/OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSk6IGFueSB7XG4gICAgY29uc3QgcmVzdWx0ID0gcGF0aCA/IHRoaXMuX2dldE9iamVjdFBhdGgodGhpcy5fbG9jYWxlLCBwYXRoKSA6IHRoaXMuX2xvY2FsZTtcbiAgICByZXR1cm4gcmVzdWx0IHx8IGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbiAgcHJpdmF0ZSBfZ2V0T2JqZWN0UGF0aChvYmo6IEluZGV4YWJsZU9iamVjdCwgcGF0aDogc3RyaW5nKTogc3RyaW5nIHwgb2JqZWN0IHwgYW55IHtcbiAgICBsZXQgcmVzID0gb2JqO1xuICAgIGNvbnN0IHBhdGhzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGRlcHRoID0gcGF0aHMubGVuZ3RoO1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgd2hpbGUgKHJlcyAmJiBpbmRleCA8IGRlcHRoKSB7XG4gICAgICByZXMgPSByZXNbcGF0aHNbaW5kZXgrK11dO1xuICAgIH1cbiAgICByZXR1cm4gaW5kZXggPT09IGRlcHRoID8gcmVzIDogbnVsbDtcbiAgfVxufVxuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTnpJMThuU2VydmljZSB9IGZyb20gJy4vbnotaTE4bi5zZXJ2aWNlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnbnpJMThuJ1xufSlcbmV4cG9ydCBjbGFzcyBOekkxOG5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2xvY2FsZTogTnpJMThuU2VydmljZSkge31cblxuICB0cmFuc2Zvcm0ocGF0aDogc3RyaW5nLCBrZXlWYWx1ZT86IG9iamVjdCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZS50cmFuc2xhdGUocGF0aCwga2V5VmFsdWUpO1xuICB9XG59XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTG9nZ2VyTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlJztcblxuaW1wb3J0IHsgTnpJMThuUGlwZSB9IGZyb20gJy4vbnotaTE4bi5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0xvZ2dlck1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW056STE4blBpcGVdLFxuICBleHBvcnRzOiBbTnpJMThuUGlwZV0sXG4gIHByb3ZpZGVyczogW0RhdGVQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBOekkxOG5Nb2R1bGUge31cbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgTlpfREFURV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TnpEYXRlQ29uZmlnPignZGF0ZS1jb25maWcnKTtcblxuZXhwb3J0IGNvbnN0IE5aX0RBVEVfQ09ORklHX0RFRkFVTFQ6IE56RGF0ZUNvbmZpZyA9IHtcbiAgZmlyc3REYXlPZldlZWs6IHVuZGVmaW5lZFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlRGF0ZUNvbmZpZyhjb25maWc6IE56RGF0ZUNvbmZpZyk6IE56RGF0ZUNvbmZpZyB7XG4gIHJldHVybiB7IC4uLk5aX0RBVEVfQ09ORklHX0RFRkFVTFQsIC4uLmNvbmZpZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE56RGF0ZUNvbmZpZyB7XG4gIC8qKiBDdXN0b21pemUgdGhlIGZpcnN0IGRheSBvZiBhIHdlZWsgKi9cbiAgZmlyc3REYXlPZldlZWs/OiAwIHwgMSB8IDIgfCAzIHwgNCB8IDUgfCA2O1xufVxuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgZm5zRm9ybWF0IGZyb20gJ2RhdGUtZm5zL2Zvcm1hdCc7XG5pbXBvcnQgZm5zR2V0SVNPV2VlayBmcm9tICdkYXRlLWZucy9nZXRfaXNvX3dlZWsnO1xuaW1wb3J0IGZuc1BhcnNlIGZyb20gJ2RhdGUtZm5zL3BhcnNlJztcbmltcG9ydCB7IG1lcmdlRGF0ZUNvbmZpZywgTnpEYXRlQ29uZmlnLCBOWl9EQVRFX0NPTkZJRyB9IGZyb20gJy4vZGF0ZS1jb25maWcnO1xuaW1wb3J0IHsgTnpJMThuU2VydmljZSB9IGZyb20gJy4vbnotaTE4bi5zZXJ2aWNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIERBVEVfSEVMUEVSX1NFUlZJQ0VfRkFDVE9SWShcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxuICBjb25maWc6IE56RGF0ZUNvbmZpZyxcbiAgZGF0ZVBpcGU6IERhdGVQaXBlXG4pOiBEYXRlSGVscGVyU2VydmljZSB7XG4gIGNvbnN0IGkxOG4gPSBpbmplY3Rvci5nZXQoTnpJMThuU2VydmljZSk7XG4gIHJldHVybiBpMThuLmdldERhdGVMb2NhbGUoKVxuICAgID8gbmV3IERhdGVIZWxwZXJCeURhdGVGbnMoaTE4biwgY29uZmlnKVxuICAgIDogbmV3IERhdGVIZWxwZXJCeURhdGVQaXBlKGkxOG4sIGNvbmZpZywgZGF0ZVBpcGUpO1xufVxuXG4vKipcbiAqIEFic3RyYWN0IERhdGVIZWxwZXJTZXJ2aWNlKFRva2VuIHZpYSBDbGFzcylcbiAqIENvbXBhdGliaWxpdHk6IGNvbXBhY3QgZm9yIG9yaWdpbmFsIHVzYWdlIGJ5IGRlZmF1bHQgd2hpY2ggdXNpbmcgRGF0ZVBpcGVcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIHVzZUZhY3Rvcnk6IERBVEVfSEVMUEVSX1NFUlZJQ0VfRkFDVE9SWSxcbiAgZGVwczogW0luamVjdG9yLCBbbmV3IE9wdGlvbmFsKCksIE5aX0RBVEVfQ09ORklHXSwgRGF0ZVBpcGVdXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGVIZWxwZXJTZXJ2aWNlIHtcbiAgcmVseU9uRGF0ZVBpcGU6IGJvb2xlYW4gPSB0aGlzIGluc3RhbmNlb2YgRGF0ZUhlbHBlckJ5RGF0ZVBpcGU7IC8vIEluZGljYXRlIHdoZXRoZXIgdGhpcyBzZXJ2aWNlIGlzIHJlbHkgb24gRGF0ZVBpcGVcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaTE4bjogTnpJMThuU2VydmljZSwgQE9wdGlvbmFsKCkgQEluamVjdChOWl9EQVRFX0NPTkZJRykgcHJvdGVjdGVkIGNvbmZpZzogTnpEYXRlQ29uZmlnKSB7XG4gICAgdGhpcy5jb25maWcgPSBtZXJnZURhdGVDb25maWcodGhpcy5jb25maWcpO1xuICB9XG5cbiAgYWJzdHJhY3QgZ2V0SVNPV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyO1xuICBhYnN0cmFjdCBnZXRGaXJzdERheU9mV2VlaygpOiBXZWVrRGF5SW5kZXg7XG4gIGFic3RyYWN0IGZvcm1hdChkYXRlOiBEYXRlLCBmb3JtYXRTdHI6IHN0cmluZyk6IHN0cmluZztcblxuICBwYXJzZURhdGUodGV4dDogc3RyaW5nKTogRGF0ZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiBmbnNQYXJzZSh0ZXh0KTtcbiAgfVxuXG4gIHBhcnNlVGltZSh0ZXh0OiBzdHJpbmcpOiBEYXRlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIGZuc1BhcnNlKGAxOTcwLTAxLTAxICR7dGV4dH1gKTtcbiAgfVxufVxuXG4vKipcbiAqIERhdGVIZWxwZXIgdGhhdCBoYW5kbGVzIGRhdGUgZm9ybWF0cyB3aXRoIGRhdGUtZm5zXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRlSGVscGVyQnlEYXRlRm5zIGV4dGVuZHMgRGF0ZUhlbHBlclNlcnZpY2Uge1xuICBnZXRJU09XZWVrKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBmbnNHZXRJU09XZWVrKGRhdGUpO1xuICB9XG5cbiAgLy8gVE9ETzogVXNlIGRhdGUtZm5zJ3MgXCJ3ZWVrU3RhcnRzT25cIiB0byBzdXBwb3J0IGRpZmZlcmVudCBsb2NhbGUgd2hlbiBcImNvbmZpZy5maXJzdERheU9mV2Vla1wiIGlzIG51bGxcbiAgLy8gd2hlbiB2Mi4wIGlzIHJlYWR5OiBodHRwczovL2dpdGh1Yi5jb20vZGF0ZS1mbnMvZGF0ZS1mbnMvYmxvYi92Mi4wLjAtYWxwaGEuMjcvc3JjL2xvY2FsZS9lbi1VUy9pbmRleC5qcyNMMjNcbiAgZ2V0Rmlyc3REYXlPZldlZWsoKTogMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmZpcnN0RGF5T2ZXZWVrID09IG51bGwgPyAxIDogdGhpcy5jb25maWcuZmlyc3REYXlPZldlZWs7XG4gIH1cblxuICAvKipcbiAgICogRm9ybWF0IGEgZGF0ZVxuICAgKiBAc2VlIGh0dHBzOi8vZGF0ZS1mbnMub3JnL2RvY3MvZm9ybWF0I2Rlc2NyaXB0aW9uXG4gICAqIEBwYXJhbSBkYXRlIERhdGVcbiAgICogQHBhcmFtIGZvcm1hdFN0ciBmb3JtYXQgc3RyaW5nXG4gICAqL1xuICBmb3JtYXQoZGF0ZTogRGF0ZSwgZm9ybWF0U3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBmbnNGb3JtYXQoZGF0ZSwgZm9ybWF0U3RyLCB7IGxvY2FsZTogdGhpcy5pMThuLmdldERhdGVMb2NhbGUoKSB9KTtcbiAgfVxufVxuXG4vKipcbiAqIERhdGVIZWxwZXIgdGhhdCBoYW5kbGVzIGRhdGUgZm9ybWF0cyB3aXRoIGFuZ3VsYXIncyBkYXRlLXBpcGVcbiAqIFtCVUddIFVzZSBEYXRlUGlwZSBtYXkgY2F1c2Ugbm9uLXN0YW5kYXJkIHdlZWsgYnVnLCBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2lzc3Vlcy8yNDA2XG4gKlxuICogQGRlcHJlY2F0ZWQgTWF5YmUgcmVtb3ZlZCBpbiBuZXh0IG1ham9yIHZlcnNpb24gZHVlIHRvIHRoaXMgc2VyaW91cyBidWdcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGVIZWxwZXJCeURhdGVQaXBlIGV4dGVuZHMgRGF0ZUhlbHBlclNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBpMThuOiBOekkxOG5TZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTlpfREFURV9DT05GSUcpIGNvbmZpZzogTnpEYXRlQ29uZmlnLFxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXG4gICkge1xuICAgIHN1cGVyKGkxOG4sIGNvbmZpZyk7XG4gIH1cblxuICBnZXRJU09XZWVrKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiArdGhpcy5mb3JtYXQoZGF0ZSwgJ3cnKTtcbiAgfVxuXG4gIGdldEZpcnN0RGF5T2ZXZWVrKCk6IFdlZWtEYXlJbmRleCB7XG4gICAgaWYgKHRoaXMuY29uZmlnLmZpcnN0RGF5T2ZXZWVrID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGxvY2FsZSA9IHRoaXMuaTE4bi5nZXRMb2NhbGVJZCgpO1xuICAgICAgcmV0dXJuIGxvY2FsZSAmJiBbJ3poLWNuJywgJ3poLXR3J10uaW5kZXhPZihsb2NhbGUudG9Mb3dlckNhc2UoKSkgPiAtMSA/IDEgOiAwO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb25maWcuZmlyc3REYXlPZldlZWs7XG4gIH1cblxuICBmb3JtYXQoZGF0ZTogRGF0ZSwgZm9ybWF0U3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlID8gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgZm9ybWF0U3RyLCB1bmRlZmluZWQsIHRoaXMuaTE4bi5nZXRMb2NhbGVJZCgpKSEgOiAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXRpYmxlIHRyYW5zbGF0ZSB0aGUgbW9tZW50LWxpa2UgZm9ybWF0IHBhdHRlcm4gdG8gYW5ndWxhcidzIHBhdHRlcm5cbiAgICogV2h5PyBGb3Igbm93LCB3ZSBuZWVkIHRvIHN1cHBvcnQgdGhlIGV4aXN0aW5nIGxhbmd1YWdlIGZvcm1hdHMgaW4gQW50RCwgYW5kIEFudEQgdXNlcyB0aGUgZGVmYXVsdCB0ZW1wb3JhbCBzeW50YXguXG4gICAqXG4gICAqIFRPRE86IGNvbXBhcmUgYW5kIGNvbXBsZXRlIGFsbCBmb3JtYXQgcGF0dGVybnNcbiAgICogRWFjaCBmb3JtYXQgZG9jcyBhcyBiZWxvdzpcbiAgICogQGxpbmsgaHR0cHM6Ly9tb21lbnRqcy5jb20vZG9jcy8jL2Rpc3BsYXlpbmcvZm9ybWF0L1xuICAgKiBAbGluayBodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvbW1vbi9EYXRlUGlwZSNkZXNjcmlwdGlvblxuICAgKiBAcGFyYW0gZm9ybWF0IGlucHV0IGZvcm1hdCBwYXR0ZXJuXG4gICAqL1xuICB0cmFuc0NvbXBhdEZvcm1hdChmb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChcbiAgICAgIGZvcm1hdCAmJlxuICAgICAgZm9ybWF0XG4gICAgICAgIC5yZXBsYWNlKC9ZL2csICd5JykgLy8gb25seSBzdXBwb3J0IHksIHl5LCB5eXksIHl5eXlcbiAgICAgICAgLnJlcGxhY2UoL0QvZywgJ2QnKVxuICAgICk7IC8vIGQsIGRkIHJlcHJlc2VudCBvZiBELCBERCBmb3IgbW9tZW50anMsIG90aGVycyBhcmUgbm90IHN1cHBvcnRcbiAgfVxufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IHR5cGUgV2Vla0RheUluZGV4ID0gMCB8IDEgfCAyIHwgMyB8IDQgfCA1IHwgNjtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnw5jCp8OZwoTDmcKKw5nCiMOZwoUnLFxuICBub3c6ICfDmMKnw5nChMOYwqPDmcKGJyxcbiAgYmFja1RvVG9kYXk6ICfDmMKnw5nChMOYwrnDmcKIw5jCr8OYwqkgw5jCpcOZwoTDmcKJIMOYwqfDmcKEw5nCisOZwojDmcKFJyxcbiAgb2s6ICfDmMKqw5jCo8OZwoPDmcKKw5jCrycsXG4gIGNsZWFyOiAnw5nChcOYwrPDmMKtJyxcbiAgbW9udGg6ICfDmMKnw5nChMOYwrTDmcKHw5jCsScsXG4gIHllYXI6ICfDmMKnw5nChMOYwrPDmcKGw5jCqScsXG4gIHRpbWVTZWxlY3Q6ICfDmMKnw5jCrsOYwqrDmcKKw5jCp8OYwrEgw5jCp8OZwoTDmcKIw5nCgsOYwqonLFxuICBkYXRlU2VsZWN0OiAnw5jCp8OYwq7DmMKqw5nCisOYwqfDmMKxIMOYwqfDmcKEw5jCqsOYwqfDmMKxw5nCisOYwq4nLFxuICBtb250aFNlbGVjdDogJ8OYwqfDmMKuw5jCqsOZworDmMKnw5jCsSDDmMKnw5nChMOYwrTDmcKHw5jCsScsXG4gIHllYXJTZWxlY3Q6ICfDmMKnw5jCrsOYwqrDmcKKw5jCp8OYwrEgw5jCp8OZwoTDmMKzw5nChsOYwqknLFxuICBkZWNhZGVTZWxlY3Q6ICfDmMKnw5jCrsOYwqrDmcKKw5jCp8OYwrEgw5jCp8OZwoTDmMK5w5nCgsOYwq8nLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdNL0QvWVlZWScsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ00vRC9ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnw5jCp8OZwoTDmMK0w5nCh8OYwrEgw5jCp8OZwoTDmMKzw5jCp8OYwqjDmcKCIChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnw5jCp8OZwoTDmMK0w5nCh8OYwrEgw5jCp8OZwoTDmMKqw5jCp8OZwoTDmcKJKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ8OYwqfDmcKEw5jCucOYwqfDmcKFIMOYwqfDmcKEw5jCs8OYwqfDmMKow5nCgiAoQ29udHJvbCArIGxlZnQpJyxcbiAgbmV4dFllYXI6ICfDmMKnw5nChMOYwrnDmMKnw5nChSDDmMKnw5nChMOYwqrDmMKnw5nChMOZwokgKENvbnRyb2wgKyByaWdodCknLFxuICBwcmV2aW91c0RlY2FkZTogJ8OYwqfDmcKEw5jCucOZwoLDmMKvIMOYwqfDmcKEw5jCs8OYwqfDmMKow5nCgicsXG4gIG5leHREZWNhZGU6ICfDmMKnw5nChMOYwrnDmcKCw5jCryDDmMKnw5nChMOYwqrDmMKnw5nChMOZwoknLFxuICBwcmV2aW91c0NlbnR1cnk6ICfDmMKnw5nChMOZwoLDmMKxw5nChiDDmMKnw5nChMOYwrPDmMKnw5jCqMOZwoInLFxuICBuZXh0Q2VudHVyeTogJ8OYwqfDmcKEw5nCgsOYwrHDmcKGIMOYwqfDmcKEw5jCqsOYwqfDmcKEw5nCiSdcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ8OYwqfDmMKuw5jCqsOZworDmMKnw5jCsSDDmMKnw5nChMOZwojDmcKCw5jCqidcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXJMb2NhbGUgZnJvbSAnLi4vY2FsZW5kYXIvYXJfRUcnO1xuaW1wb3J0IFRpbWVQaWNrZXJMb2NhbGUgZnJvbSAnLi4vdGltZS1waWNrZXIvYXJfRUcnO1xuXG4vLyBNZXJnZSBpbnRvIGEgbG9jYWxlIG9iamVjdFxuY29uc3QgbG9jYWxlID0ge1xuICBsYW5nOiB7XG4gICAgcGxhY2Vob2xkZXI6ICfDmMKnw5jCrsOYwqrDmcKKw5jCp8OYwrEgw5jCp8OZwoTDmMKqw5jCp8OYwrHDmcKKw5jCricsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWyfDmMKnw5nChMOYwqjDmMKvw5jCp8OZworDmMKpJywgJ8OYwqfDmcKEw5nChsOZwofDmMKnw5nCisOYwqknXSxcbiAgICAuLi5DYWxlbmRhckxvY2FsZVxuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7XG4gICAgLi4uVGltZVBpY2tlckxvY2FsZVxuICB9XG59O1xuXG4vLyBBbGwgc2V0dGluZ3MgYXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2Jsb2IvbWFzdGVyL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvbG9jYWxlL2V4YW1wbGUuanNvblxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJy8gw5jCp8OZwoTDmMK1w5nCgcOYwq3DmMKpJyxcbiAganVtcF90bzogJ8OYwqfDmcKEw5jCsMOZwofDmMKnw5jCqCDDmMKlw5nChMOZwoknLFxuICBqdW1wX3RvX2NvbmZpcm06ICfDmMKqw5jCo8OZwoPDmcKKw5jCrycsXG4gIHBhZ2U6ICcnLFxuXG4gIC8vIFBhZ2luYXRpb24uanN4XG4gIHByZXZfcGFnZTogJ8OYwqfDmcKEw5jCtcOZwoHDmMKtw5jCqSDDmMKnw5nChMOYwrPDmMKnw5jCqMOZwoLDmMKpJyxcbiAgbmV4dF9wYWdlOiAnw5jCp8OZwoTDmMK1w5nCgcOYwq3DmMKpIMOYwqfDmcKEw5jCqsOYwqfDmcKEw5nCisOYwqknLFxuICBwcmV2XzU6ICfDmMKuw5nChcOYwrMgw5jCtcOZwoHDmMKtw5jCp8OYwqogw5jCs8OYwqfDmMKow5nCgsOYwqknLFxuICBuZXh0XzU6ICfDmMKuw5nChcOYwrMgw5jCtcOZwoHDmMKtw5jCp8OYwqogw5jCqsOYwqfDmcKEw5nCisOYwqknLFxuICBwcmV2XzM6ICfDmMKrw5nChMOYwqfDmMKrIMOYwrXDmcKBw5jCrcOYwqfDmMKqIMOYwrPDmMKnw5jCqMOZwoLDmMKpJyxcbiAgbmV4dF8zOiAnw5jCq8OZwoTDmMKnw5jCqyDDmMK1w5nCgcOYwq3DmMKnw5jCqiDDmMKqw5jCp8OZwoTDmcKKw5jCqSdcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyIGZyb20gJy4vY2FsZW5kYXIvYXJfRUcnO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi9kYXRlLXBpY2tlci9hcl9FRyc7XG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tICcuL3BhZ2luYXRpb24vYXJfRUcnO1xuaW1wb3J0IFRpbWVQaWNrZXIgZnJvbSAnLi90aW1lLXBpY2tlci9hcl9FRyc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbG9jYWxlOiAnYXInLFxuICBQYWdpbmF0aW9uLFxuICBEYXRlUGlja2VyLFxuICBUaW1lUGlja2VyLFxuICBDYWxlbmRhcixcbiAgVGFibGU6IHtcbiAgICBmaWx0ZXJUaXRsZTogJ8OYwqfDmcKEw5nCgcOZwoTDmMKnw5jCqsOYwrEnLFxuICAgIGZpbHRlckNvbmZpcm06ICfDmMKqw5jCo8OZwoPDmcKKw5jCrycsXG4gICAgZmlsdGVyUmVzZXQ6ICfDmMKlw5jCucOYwqfDmMKvw5jCqSDDmMK2w5jCqMOYwrcnLFxuICAgIHNlbGVjdEFsbDogJ8OYwqfDmMKuw5jCqsOZworDmMKnw5jCsSDDmMKnw5nChMOZwoPDmcKEJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICfDmMKlw5nChMOYwrrDmMKnw5jCoSDDmMKnw5nChMOYwqfDmMKuw5jCqsOZworDmMKnw5jCsSdcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICfDmMKqw5jCo8OZwoPDmcKKw5jCrycsXG4gICAgY2FuY2VsVGV4dDogJ8OYwqXDmcKEw5jCusOYwqfDmMKhJyxcbiAgICBqdXN0T2tUZXh0OiAnw5jCqsOYwqPDmcKDw5nCisOYwq8nXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICfDmMKqw5jCo8OZwoPDmcKKw5jCrycsXG4gICAgY2FuY2VsVGV4dDogJ8OYwqXDmcKEw5jCusOYwqfDmMKhJ1xuICB9LFxuICBUcmFuc2Zlcjoge1xuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnw5jCp8OYwqjDmMKtw5jCqyDDmcKHw5nChsOYwqcnLFxuICAgIGl0ZW1Vbml0OiAnw5jCucOZwobDmMK1w5jCsScsXG4gICAgaXRlbXNVbml0OiAnw5jCucOZwobDmMKnw5jCtcOYwrEnXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ8OYwqzDmMKnw5jCscOZwoogw5jCp8OZwoTDmMKxw5nCgcOYwrkuLi4nLFxuICAgIHJlbW92ZUZpbGU6ICfDmMKnw5jCrcOYwrDDmcKBIMOYwqfDmcKEw5nChcOZwoTDmcKBJyxcbiAgICB1cGxvYWRFcnJvcjogJ8OZwoXDmMK0w5nCg8OZwoTDmMKpIMOZwoHDmcKJIMOYwqfDmcKEw5jCscOZwoHDmMK5JyxcbiAgICBwcmV2aWV3RmlsZTogJ8OYwqfDmMKzw5jCqsOYwrnDmMKxw5jCtiDDmMKnw5nChMOZwoXDmcKEw5nCgSdcbiAgfSxcbiAgRW1wdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJ8OZwoTDmMKnIMOYwqrDmcKIw5jCrMOYwq8gw5jCqMOZworDmMKnw5nChsOYwqfDmMKqJ1xuICB9XG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9kYXk6ICfDkMKUw5DCvcOQwrXDkcKBJyxcbiAgbm93OiAnw5DCocOQwrXDkMKzw5DCsCcsXG4gIGJhY2tUb1RvZGF5OiAnw5DCmsORworDkMK8IMOQwrTDkMK9w5DCtcORwoEnLFxuICBvazogJ8OQwpTDkMK+w5DCscORwoDDkMK1JyxcbiAgY2xlYXI6ICfDkMKYw5DCt8ORwofDkMK4w5HCgcORwoLDkMKyw5DCsMOQwr3DkMK1JyxcbiAgbW9udGg6ICfDkMKcw5DCtcORwoHDkMK1w5HChicsXG4gIHllYXI6ICfDkMKTw5DCvsOQwrTDkMK4w5DCvcOQwrAnLFxuICB0aW1lU2VsZWN0OiAnw5DCmMOQwrfDkMKxw5DCvsORwoAgw5DCvcOQwrAgw5HCh8OQwrDDkcKBJyxcbiAgZGF0ZVNlbGVjdDogJ8OQwpjDkMK3w5DCscOQwr7DkcKAIMOQwr3DkMKwIMOQwrTDkMKww5HCgsOQwrAnLFxuICBtb250aFNlbGVjdDogJ8OQwpjDkMK3w5DCscOQwr7DkcKAIMOQwr3DkMKwIMOQwrzDkMK1w5HCgcOQwrXDkcKGJyxcbiAgeWVhclNlbGVjdDogJ8OQwpjDkMK3w5DCscOQwr7DkcKAIMOQwr3DkMKwIMOQwrPDkMK+w5DCtMOQwrjDkMK9w5DCsCcsXG4gIGRlY2FkZVNlbGVjdDogJ8OQwpTDkMK1w5HCgcOQwrXDkcKCw5DCuMOQwrvDkMK1w5HCgsOQwrjDkMK1JyxcbiAgeWVhckZvcm1hdDogJ1lZWVknLFxuICBkYXRlRm9ybWF0OiAnRCBNIFlZWVknLFxuICBkYXlGb3JtYXQ6ICdEJyxcbiAgZGF0ZVRpbWVGb3JtYXQ6ICdEIE0gWVlZWSBISDptbTpzcycsXG4gIG1vbnRoQmVmb3JlWWVhcjogdHJ1ZSxcbiAgcHJldmlvdXNNb250aDogJ8OQwp/DkcKAw5DCtcOQwrTDkMK4w5HCiMOQwrXDkMK9IMOQwrzDkMK1w5HCgcOQwrXDkcKGIChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnw5DCocOQwrvDkMK1w5DCtMOQwrLDkMKww5HCiSDDkMK8w5DCtcORwoHDkMK1w5HChiAoUGFnZURvd24pJyxcbiAgcHJldmlvdXNZZWFyOiAnw5DCn8OQwr7DkcKBw5DCu8OQwrXDkMK0w5DCvcOQwrAgw5DCs8OQwr7DkMK0w5DCuMOQwr3DkMKwIChDb250cm9sICsgbGVmdCknLFxuICBuZXh0WWVhcjogJ8OQwqHDkMK7w5DCtcOQwrTDkMKyw5DCsMORwonDkMKwIMOQwrPDkMK+w5DCtMOQwrjDkMK9w5DCsCAoQ29udHJvbCArIHJpZ2h0KScsXG4gIHByZXZpb3VzRGVjYWRlOiAnw5DCn8ORwoDDkMK1w5DCtMOQwrjDkcKIw5DCvcOQwr4gw5DCtMOQwrXDkcKBw5DCtcORwoLDkMK4w5DCu8OQwrXDkcKCw5DCuMOQwrUnLFxuICBuZXh0RGVjYWRlOiAnw5DCocOQwrvDkMK1w5DCtMOQwrLDkMKww5HCicOQwr4gw5DCtMOQwrXDkcKBw5DCtcORwoLDkMK4w5DCu8OQwrXDkcKCw5DCuMOQwrUnLFxuICBwcmV2aW91c0NlbnR1cnk6ICfDkMKfw5DCvsORwoHDkMK7w5DCtcOQwrTDkMK1w5DCvSDDkMKyw5DCtcOQwronLFxuICBuZXh0Q2VudHVyeTogJ8OQwqHDkMK7w5DCtcOQwrTDkMKyw5DCsMORwokgw5DCssOQwrXDkMK6J1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5jb25zdCBsb2NhbGUgPSB7XG4gIHBsYWNlaG9sZGVyOiAnw5DCmMOQwrfDkMKxw5DCvsORwoAgw5DCvcOQwrAgw5HCh8OQwrDDkcKBJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9iZ19CRyc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9iZ19CRyc7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ8OQwpjDkMK3w5DCscOQwr7DkcKAIMOQwr3DkMKwIMOQwrTDkMKww5HCgsOQwrAnLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnw5DCncOQwrDDkcKHw5DCsMOQwrvDkMK9w5DCsCcsICfDkMKaw5HCgMOQwrDDkMK5w5DCvcOQwrAnXSxcbiAgICAuLi5DYWxlbmRhckxvY2FsZVxuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7XG4gICAgLi4uVGltZVBpY2tlckxvY2FsZVxuICB9XG59O1xuXG4vLyBBbGwgc2V0dGluZ3MgYXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2Jsb2IvbWFzdGVyL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvbG9jYWxlL2V4YW1wbGUuanNvblxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJy8gw5HCgcORwoLDkcKAw5DCsMOQwr3DkMK4w5HChsOQwrAnLFxuICBqdW1wX3RvOiAnw5DCmsORworDkMK8JyxcbiAganVtcF90b19jb25maXJtOiAnw5DCv8OQwr7DkcKCw5DCssORworDkcKAw5DCtsOQwrTDkMKww5DCssOQwrDDkMK8JyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnw5DCn8ORwoDDkMK1w5DCtMOQwrjDkcKIw5DCvcOQwrAgw5HCgcORwoLDkcKAw5DCsMOQwr3DkMK4w5HChsOQwrAnLFxuICBuZXh0X3BhZ2U6ICfDkMKhw5DCu8OQwrXDkMK0w5DCssOQwrDDkcKJw5DCsCDDkcKBw5HCgsORwoDDkMKww5DCvcOQwrjDkcKGw5DCsCcsXG4gIHByZXZfNTogJ8OQwp/DkcKAw5DCtcOQwrTDkMK4w5HCiMOQwr3DkMK4IDUgw5HCgcORwoLDkcKAw5DCsMOQwr3DkMK4w5HChsOQwrgnLFxuICBuZXh0XzU6ICfDkMKhw5DCu8OQwrXDkMK0w5DCssOQwrDDkcKJw5DCuCA1IMORwoHDkcKCw5HCgMOQwrDDkMK9w5DCuMORwobDkMK4JyxcbiAgcHJldl8zOiAnw5DCn8ORwoDDkMK1w5DCtMOQwrjDkcKIw5DCvcOQwrggMyDDkcKBw5HCgsORwoDDkMKww5DCvcOQwrjDkcKGw5DCuCcsXG4gIG5leHRfMzogJ8OQwqHDkMK7w5DCtcOQwrTDkMKyw5DCsMORwonDkMK4IDMgw5HCgcORwoLDkcKAw5DCsMOQwr3DkMK4w5HChsOQwrgnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL2JnX0JHJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvYmdfQkcnO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL2JnX0JHJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvYmdfQkcnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ2JnJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICfDkMKkw5DCuMOQwrvDkcKCw5HCgMOQwrjDkcKAw5DCsMOQwr3DkMK1JyxcbiAgICBmaWx0ZXJDb25maXJtOiAnw5DClMOQwr7DkMKxw5HCgMOQwrUnLFxuICAgIGZpbHRlclJlc2V0OiAnw5DCncORwoPDkMK7w5HCgMOQwrjDkMKww5DCvcOQwrUnLFxuICAgIHNlbGVjdEFsbDogJ8OQwpjDkMK3w5DCscOQwr7DkcKAIMOQwr3DkMKwIMORwoLDkMK1w5DCusORwoPDkcKJw5DCsCDDkcKBw5HCgsORwoDDkMKww5DCvcOQwrjDkcKGw5DCsCcsXG4gICAgc2VsZWN0SW52ZXJ0OiAnw5DCnsOQwrHDkcKAw5HCisORwonDkMKww5DCvcOQwrUnXG4gIH0sXG4gIE1vZGFsOiB7XG4gICAgb2tUZXh0OiAnw5DClMOQwr7DkMKxw5HCgMOQwrUnLFxuICAgIGNhbmNlbFRleHQ6ICfDkMKew5HCgsOQwrrDkMKww5DCtycsXG4gICAganVzdE9rVGV4dDogJ8OQwpTDkMK+w5DCscORwoDDkMK1J1xuICB9LFxuICBQb3Bjb25maXJtOiB7XG4gICAgb2tUZXh0OiAnw5DClMOQwr7DkMKxw5HCgMOQwrUnLFxuICAgIGNhbmNlbFRleHQ6ICfDkMKew5HCgsOQwrrDkMKww5DCtydcbiAgfSxcbiAgVHJhbnNmZXI6IHtcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ8OQwqLDkcKKw5HCgMORwoHDkMK1w5DCvcOQwrUnLFxuICAgIGl0ZW1Vbml0OiAnw5DCuMOQwrfDkMKxw5DCvsORwoAnLFxuICAgIGl0ZW1zVW5pdDogJ8OQwrjDkMK3w5DCscOQwr7DkcKAw5DCuCdcbiAgfSxcbiAgVXBsb2FkOiB7XG4gICAgdXBsb2FkaW5nOiAnw5DCmsOQwrDDkcKHw5DCssOQwrDDkMK9w5DCtS4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ8OQwp/DkcKAw5DCtcOQwrzDkMKww5HChcOQwrLDkMKww5DCvcOQwrUnLFxuICAgIHVwbG9hZEVycm9yOiAnw5DCk8ORwoDDkMK1w5HCiMOQwrrDkMKwIMOQwr/DkcKAw5DCuCDDkMK6w5DCsMORwofDkMKyw5DCsMOQwr3DkMK1w5HCgsOQwr4nLFxuICAgIHByZXZpZXdGaWxlOiAnw5DCn8ORwoDDkMK1w5DCs8OQwrvDkMK1w5DCtCdcbiAgfSxcbiAgRW1wdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJ8OQwp3DkcKPw5DCvMOQwrAgw5DCtMOQwrDDkMK9w5DCvcOQwrgnXG4gIH1cbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ0F2dWknLFxuICBub3c6ICdBcmEnLFxuICBiYWNrVG9Ub2RheTogJ1Rvcm5hciBhIGF2dWknLFxuICBvazogJ0FjY2VwdGFyJyxcbiAgY2xlYXI6ICdOZXRlamFyJyxcbiAgbW9udGg6ICdNZXMnLFxuICB5ZWFyOiAnQW55JyxcbiAgdGltZVNlbGVjdDogJ1NlbGVjY2lvbmFyIGhvcmEnLFxuICBkYXRlU2VsZWN0OiAnU2VsZWNjaW9uYXIgZGF0YScsXG4gIG1vbnRoU2VsZWN0OiAnRXNjb2xsaXIgdW4gbWVzJyxcbiAgeWVhclNlbGVjdDogJ0VzY29sbGlyIHVuIGFueScsXG4gIGRlY2FkZVNlbGVjdDogJ0VzY29sbGlyIHVuYSBkw4PCqGNhZGEnLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdEL00vWVlZWScsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ0QvTS9ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnTWVzIGFudGVyaW9yIChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnTWVzIHNlZ8ODwrxlbnQgKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ0FueSBhbnRlcmlvciAoQ29udHJvbCArIGxlZnQpJyxcbiAgbmV4dFllYXI6ICdNZXMgc2Vnw4PCvGVudCAoQ29udHJvbCArIHJpZ2h0KScsXG4gIHByZXZpb3VzRGVjYWRlOiAnRMODwqhjYWRhIGFudGVyaW9yJyxcbiAgbmV4dERlY2FkZTogJ0TDg8KoY2FkYSBzZWfDg8K8ZW50JyxcbiAgcHJldmlvdXNDZW50dXJ5OiAnU2VnbGUgYW50ZXJpb3InLFxuICBuZXh0Q2VudHVyeTogJ1NlZ2xlIHNlZ8ODwrxlbnQnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICdTZWxlY2Npb25hciBob3JhJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9jYV9FUyc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9jYV9FUyc7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1NlbGVjY2lvbmFyIGRhdGEnLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnRGF0YSBpbmljaWFsJywgJ0RhdGEgZmluYWwnXSxcbiAgICAuLi5DYWxlbmRhckxvY2FsZVxuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7XG4gICAgLi4uVGltZVBpY2tlckxvY2FsZVxuICB9XG59O1xuXG4vLyBBbGwgc2V0dGluZ3MgYXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2Jsb2IvbWFzdGVyL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvbG9jYWxlL2V4YW1wbGUuanNvblxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJy8gcMODwqBnaW5hJyxcbiAganVtcF90bzogJ0FuYXIgYScsXG4gIGp1bXBfdG9fY29uZmlybTogJ0NvbmZpcm1hcicsXG4gIHBhZ2U6ICcnLFxuXG4gIC8vIFBhZ2luYXRpb24uanN4XG4gIHByZXZfcGFnZTogJ1DDg8KgZ2luYSBwcsODwqh2aWEnLFxuICBuZXh0X3BhZ2U6ICdQw4PCoGdpbmEgc2Vnw4PCvGVudCcsXG4gIHByZXZfNTogJzUgcMODwqBnaW5lcyBwcsODwqh2aWVzJyxcbiAgbmV4dF81OiAnNSBww4PCoGdpbmVzIHNlZ8ODwrxlbnRzJyxcbiAgcHJldl8zOiAnMyBww4PCoGdpbmVzIHByw4PCqHZpZXMnLFxuICBuZXh0XzM6ICczIHDDg8KgZ2luZXMgc2Vnw4PCvGVudHMnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL2NhX0VTJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvY2FfRVMnO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL2NhX0VTJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvY2FfRVMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ2NhJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0cmFyIE1lbnUnLFxuICAgIGZpbHRlckNvbmZpcm06ICdPSycsXG4gICAgZmlsdGVyUmVzZXQ6ICdSZXN0YWJsaXInLFxuICAgIHNlbGVjdEFsbDogJ1NlbGVjY2lvbmFyIHRvdCcsXG4gICAgc2VsZWN0SW52ZXJ0OiAnSW52ZXJ0aXIgc2VsZWNjacODwrMnXG4gIH0sXG4gIE1vZGFsOiB7XG4gICAgb2tUZXh0OiAnQWNjZXB0YXInLFxuICAgIGNhbmNlbFRleHQ6ICdDYW5jZWzDgsK3bGFyJyxcbiAgICBqdXN0T2tUZXh0OiAnQWNjZXB0YXInXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICdBY2NlcHRhcicsXG4gICAgY2FuY2VsVGV4dDogJ0NhbmNlbMOCwrdsYXInXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdDZXJjYXIgYXF1w4PCrScsXG4gICAgaXRlbVVuaXQ6ICdlbGVtZW50JyxcbiAgICBpdGVtc1VuaXQ6ICdlbGVtZW50cydcbiAgfSxcbiAgVXBsb2FkOiB7XG4gICAgdXBsb2FkaW5nOiAnUHVqYW50Li4uJyxcbiAgICByZW1vdmVGaWxlOiAnRWxpbWluYXIgZml0eGVyJyxcbiAgICB1cGxvYWRFcnJvcjogJ0Vycm9yIGFsIHB1amFyIGVsIGZpdHhlcicsXG4gICAgcHJldmlld0ZpbGU6ICdWaXN0YSBwcsODwqh2aWEnXG4gIH0sXG4gIEVtcHR5OiB7XG4gICAgZGVzY3JpcHRpb246ICdObyBoaSBoYSBkYWRlcydcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnRG5lcycsXG4gIG5vdzogJ055bsODwq0nLFxuICBiYWNrVG9Ub2RheTogJ1pww4TCm3QgbmEgZG5lw4XCoWVrJyxcbiAgb2s6ICdPaycsXG4gIGNsZWFyOiAnVnltYXphdCcsXG4gIG1vbnRoOiAnTcOEwptzw4PCrWMnLFxuICB5ZWFyOiAnUm9rJyxcbiAgdGltZVNlbGVjdDogJ1Z5YnJhdCDDhMKNYXMnLFxuICBkYXRlU2VsZWN0OiAnVnlicmF0IGRhdHVtJyxcbiAgbW9udGhTZWxlY3Q6ICdWeWJlcnRlIG3DhMKbc8ODwq1jJyxcbiAgeWVhclNlbGVjdDogJ1Z5YmVydGUgcm9rJyxcbiAgZGVjYWRlU2VsZWN0OiAnVnliZXJ0ZSBkZWvDg8KhZHUnLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdELk0uWVlZWScsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ0QuTS5ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnUMOFwpllZGNob3rDg8KtIG3DhMKbc8ODwq1jIChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnTsODwqFzbGVkdWrDg8KtY8ODwq0gKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ1DDhcKZZWRjaG96w4PCrSByb2sgKENvbnRyb2wgKyBsZWZ0KScsXG4gIG5leHRZZWFyOiAnTsODwqFzbGVkdWrDg8KtY8ODwq0gcm9rIChDb250cm9sICsgcmlnaHQpJyxcbiAgcHJldmlvdXNEZWNhZGU6ICdQw4XCmWVkY2hvesODwq0gZGVrw4PCoWRhJyxcbiAgbmV4dERlY2FkZTogJ07Dg8Khc2xlZHVqw4PCrWPDg8KtIGRla8ODwqFkYScsXG4gIHByZXZpb3VzQ2VudHVyeTogJ1DDhcKZZWRjaG96w4PCrSBzdG9sZXTDg8KtJyxcbiAgbmV4dENlbnR1cnk6ICdOw4PCoXNsZWR1asODwq1jw4PCrSBzdG9sZXTDg8KtJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5jb25zdCBsb2NhbGUgPSB7XG4gIHBsYWNlaG9sZGVyOiAnVnlicmF0IMOEwo1hcydcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXJMb2NhbGUgZnJvbSAnLi4vY2FsZW5kYXIvY3NfQ1onO1xuaW1wb3J0IFRpbWVQaWNrZXJMb2NhbGUgZnJvbSAnLi4vdGltZS1waWNrZXIvY3NfQ1onO1xuXG4vLyBNZXJnZSBpbnRvIGEgbG9jYWxlIG9iamVjdFxuY29uc3QgbG9jYWxlID0ge1xuICBsYW5nOiB7XG4gICAgcGxhY2Vob2xkZXI6ICdWeWJyYXQgZGF0dW0nLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnT2QnLCAnRG8nXSxcbiAgICAuLi5DYWxlbmRhckxvY2FsZVxuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7XG4gICAgLi4uVGltZVBpY2tlckxvY2FsZVxuICB9XG59O1xuXG4vLyBBbGwgc2V0dGluZ3MgYXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2Jsb2IvbWFzdGVyL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvbG9jYWxlL2V4YW1wbGUuanNvblxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJy8gc3RyYW5hJyxcbiAganVtcF90bzogJ1DDhcKZZWrDg8KtdCcsXG4gIGp1bXBfdG9fY29uZmlybTogJ3BvdHZyZGl0JyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnUMOFwpllZGNob3rDg8KtIHN0cmFuYScsXG4gIG5leHRfcGFnZTogJ07Dg8Khc2xlZHVqw4PCrWPDg8KtIHN0cmFuYScsXG4gIHByZXZfNTogJ1DDhcKZZWRjaG96w4PCrWNoIDUgc3RyYW4nLFxuICBuZXh0XzU6ICdOw4PCoXNsZWR1asODwq1jw4PCrWNoIDUgc3RyYW4nLFxuICBwcmV2XzM6ICdQw4XCmWVkY2hvesODwq0gMyBzdHJhbnknLFxuICBuZXh0XzM6ICdOw4PCoXNsZWR1asODwq1jw4PCrSAzIHN0cmFueSdcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyIGZyb20gJy4vY2FsZW5kYXIvY3NfQ1onO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi9kYXRlLXBpY2tlci9jc19DWic7XG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tICcuL3BhZ2luYXRpb24vY3NfQ1onO1xuaW1wb3J0IFRpbWVQaWNrZXIgZnJvbSAnLi90aW1lLXBpY2tlci9jc19DWic7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbG9jYWxlOiAnY3MnLFxuICBQYWdpbmF0aW9uLFxuICBEYXRlUGlja2VyLFxuICBUaW1lUGlja2VyLFxuICBDYWxlbmRhcixcbiAgVGFibGU6IHtcbiAgICBmaWx0ZXJUaXRsZTogJ0ZpbHRyJyxcbiAgICBmaWx0ZXJDb25maXJtOiAnUG90dnJkaXQnLFxuICAgIGZpbHRlclJlc2V0OiAnT2Jub3ZpdCdcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICdPaycsXG4gICAgY2FuY2VsVGV4dDogJ1N0b3JubycsXG4gICAganVzdE9rVGV4dDogJ09rJ1xuICB9LFxuICBQb3Bjb25maXJtOiB7XG4gICAgb2tUZXh0OiAnT2snLFxuICAgIGNhbmNlbFRleHQ6ICdTdG9ybm8nXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdWeWhsZWTDg8KhdsODwqFuw4PCrScsXG4gICAgaXRlbVVuaXQ6ICdwb2xvw4XCvmthJyxcbiAgICBpdGVtc1VuaXQ6ICdwb2xvw4XCvmVrJ1xuICB9LFxuICBVcGxvYWQ6IHtcbiAgICB1cGxvYWRpbmc6ICdOYWhyw4PCoXbDg8KhbsODwq0uLi4nLFxuICAgIHJlbW92ZUZpbGU6ICdPZHN0cmFuaXQgc291Ym9yJyxcbiAgICB1cGxvYWRFcnJvcjogJ0NoeWJhIHDDhcKZaSBuYWhyw4PCoXbDg8KhbsODwq0nLFxuICAgIHByZXZpZXdGaWxlOiAnWm9icmF6aXQgc291Ym9yJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnw4XCvcODwqFkbsODwqEgZGF0YSdcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnSSBkYWcnLFxuICBub3c6ICdOdScsXG4gIGJhY2tUb1RvZGF5OiAnR8ODwqUgdGlsIGkgZGFnJyxcbiAgb2s6ICdPaycsXG4gIGNsZWFyOiAnQW5udWxsZXInLFxuICBtb250aDogJ03Dg8KlbmVkJyxcbiAgeWVhcjogJ8ODwoVyJyxcbiAgdGltZVNlbGVjdDogJ1bDg8KmbGcgdGlkc3B1bmt0JyxcbiAgZGF0ZVNlbGVjdDogJ1bDg8KmbGcgZGF0bycsXG4gIG1vbnRoU2VsZWN0OiAnVsODwqZsZyBtw4PCpW5lZCcsXG4gIHllYXJTZWxlY3Q6ICdWw4PCpmxnIMODwqVyJyxcbiAgZGVjYWRlU2VsZWN0OiAnVsODwqZsZyDDg8KlcnRpJyxcbiAgeWVhckZvcm1hdDogJ1lZWVknLFxuICBkYXRlRm9ybWF0OiAnRC9NL1lZWVknLFxuICBkYXlGb3JtYXQ6ICdEJyxcbiAgZGF0ZVRpbWVGb3JtYXQ6ICdEL00vWVlZWSBISDptbTpzcycsXG4gIG1vbnRoQmVmb3JlWWVhcjogdHJ1ZSxcbiAgcHJldmlvdXNNb250aDogJ0ZvcnJpZ2UgbcODwqVuZWQoUGFnZVVwKScsXG4gIG5leHRNb250aDogJ07Dg8Kmc3RlIG3Dg8KlbmVkIChQYWdlRG93biknLFxuICBwcmV2aW91c1llYXI6ICdGb3JyaWdlIMODwqVyIChDb250cm9sICsgbGVmdCknLFxuICBuZXh0WWVhcjogJ07Dg8Kmc3RlIHIgKENvbnRyb2wgKyByaWdodCknLFxuICBwcmV2aW91c0RlY2FkZTogJ0ZvcnJpZ2Ugw4PCpXJ0aScsXG4gIG5leHREZWNhZGU6ICdOw4PCpnN0ZSDDg8KlcnRpJyxcbiAgcHJldmlvdXNDZW50dXJ5OiAnRm9ycmlnZSDDg8Klcmh1bmRyZWRlJyxcbiAgbmV4dENlbnR1cnk6ICdOw4PCpnN0ZSDDg8Klcmh1bmRyZWRlJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5jb25zdCBsb2NhbGUgPSB7XG4gICAgcGxhY2Vob2xkZXI6ICdWw4PCpmxnIHRpZCdcbiAgfTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9kYV9ESyc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9kYV9ESyc7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1bDg8KmbGcgZGF0bycsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWydTdGFydGRhdG8nLCAnU2x1dGRhdG8nXSxcbiAgICAuLi5DYWxlbmRhckxvY2FsZVxuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7XG4gICAgLi4uVGltZVBpY2tlckxvY2FsZVxuICB9XG59O1xuXG4vLyBBbGwgc2V0dGluZ3MgYXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2Jsb2IvbWFzdGVyL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvbG9jYWxlL2V4YW1wbGUuanNvblxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJy8gc2lkZScsXG4gIGp1bXBfdG86ICdHw4PCpSB0aWwnLFxuICBqdW1wX3RvX2NvbmZpcm06ICdiZWtyw4PCpmZ0JyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnRm9ycmlnZSBTaWRlJyxcbiAgbmV4dF9wYWdlOiAnTsODwqZzdGUgU2lkZScsXG4gIHByZXZfNTogJ0ZvcnJpZ2UgNSBTaWRlcicsXG4gIG5leHRfNTogJ07Dg8Kmc3RlIDUgU2lkZXInLFxuICBwcmV2XzM6ICdGb3JyaWdlIDMgU2lkZXInLFxuICBuZXh0XzM6ICdOw4PCpnN0ZSAzIFNpZGVyJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi9jYWxlbmRhci9kYV9ESyc7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL2RhdGUtcGlja2VyL2RhX0RLJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4vcGFnaW5hdGlvbi9kYV9ESyc7XG5pbXBvcnQgVGltZVBpY2tlciBmcm9tICcuL3RpbWUtcGlja2VyL2RhX0RLJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2NhbGU6ICdkYScsXG4gIERhdGVQaWNrZXIsXG4gIFRpbWVQaWNrZXIsXG4gIENhbGVuZGFyLFxuICBQYWdpbmF0aW9uLFxuICBUYWJsZToge1xuICAgIGZpbHRlclRpdGxlOiAnRmlsdGVybWVudScsXG4gICAgZmlsdGVyQ29uZmlybTogJ09LJyxcbiAgICBmaWx0ZXJSZXNldDogJ051bHN0aWwnLFxuICAgIHNlbGVjdEFsbDogJ1bDg8KmbGcgYWxsZScsXG4gICAgc2VsZWN0SW52ZXJ0OiAnSW52ZXJ0ZXIgdmFsZydcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ0FmYnJ5ZCcsXG4gICAganVzdE9rVGV4dDogJ09LJ1xuICB9LFxuICBQb3Bjb25maXJtOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdBZmJyeWQnXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTw4PCuGcgaGVyJyxcbiAgICBpdGVtVW5pdDogJ2VsZW1lbnQnLFxuICAgIGl0ZW1zVW5pdDogJ2VsZW1lbnRlcidcbiAgfSxcbiAgVXBsb2FkOiB7XG4gICAgdXBsb2FkaW5nOiAnVXBsb2FkZXIuLi4nLFxuICAgIHJlbW92ZUZpbGU6ICdGamVybiBmaWwnLFxuICAgIHVwbG9hZEVycm9yOiAnRmVqbCB2ZWQgdXBsb2FkJyxcbiAgICBwcmV2aWV3RmlsZTogJ0ZvcmjDg8KlbmRzdmlzbmluZydcbiAgfSxcbiAgRW1wdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJ0luZ2VuIGRhdGEnXG4gIH1cbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ0hldXRlJyxcbiAgbm93OiAnSmV0enQnLFxuICBiYWNrVG9Ub2RheTogJ1p1csODwrxjayB6dSBIZXV0ZScsXG4gIG9rOiAnT0snLFxuICBjbGVhcjogJ1p1csODwrxja3NldHplbicsXG4gIG1vbnRoOiAnTW9uYXQnLFxuICB5ZWFyOiAnSmFocicsXG4gIHRpbWVTZWxlY3Q6ICdaZWl0IHfDg8KkaGxlbicsXG4gIGRhdGVTZWxlY3Q6ICdEYXR1bSB3w4PCpGhsZW4nLFxuICBtb250aFNlbGVjdDogJ1fDg8KkaGxlIGVpbmVuIE1vbmF0JyxcbiAgeWVhclNlbGVjdDogJ1fDg8KkaGxlIGVpbiBKYWhyJyxcbiAgZGVjYWRlU2VsZWN0OiAnV8ODwqRobGUgZWluIEphaHJ6ZWhudCcsXG4gIHllYXJGb3JtYXQ6ICdZWVlZJyxcbiAgZGF0ZUZvcm1hdDogJ0QuTS5ZWVlZJyxcbiAgZGF5Rm9ybWF0OiAnRCcsXG4gIGRhdGVUaW1lRm9ybWF0OiAnRC5NLllZWVkgSEg6bW06c3MnLFxuICBtb250aEJlZm9yZVllYXI6IHRydWUsXG4gIHByZXZpb3VzTW9udGg6ICdWb3JoZXJpZ2VyIE1vbmF0IChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnTsODwqRjaHN0ZXIgTW9uYXQgKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ1ZvcmhlcmlnZXMgSmFociAoQ3RybCArIGxlZnQpJyxcbiAgbmV4dFllYXI6ICdOw4PCpGNoc3RlcyBKYWhyIChDdHJsICsgcmlnaHQpJyxcbiAgcHJldmlvdXNEZWNhZGU6ICdWb3JoZXJpZ2VzIEphaHJ6ZWhudCcsXG4gIG5leHREZWNhZGU6ICdOw4PCpGNoc3RlcyBKYWhyemVobnQnLFxuICBwcmV2aW91c0NlbnR1cnk6ICdWb3JoZXJpZ2VzIEphaHJodW5kZXJ0JyxcbiAgbmV4dENlbnR1cnk6ICdOw4PCpGNoc3RlcyBKYWhyaHVuZGVydCdcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ1plaXQgYXVzd8ODwqRobGVuJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9kZV9ERSc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9kZV9ERSc7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ0RhdHVtIGF1c3fDg8KkaGxlbicsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWydTdGFydGRhdHVtJywgJ0VuZGRhdHVtJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvNDI0XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyBTZWl0ZScsXG4gIGp1bXBfdG86ICdHZWhlIHp1JyxcbiAganVtcF90b19jb25maXJtOiAnYmVzdMODwqR0aWdlbicsXG4gIHBhZ2U6ICcnLFxuXG4gIC8vIFBhZ2luYXRpb24uanN4XG4gIHByZXZfcGFnZTogJ1ZvcmhlcmlnZSBTZWl0ZScsXG4gIG5leHRfcGFnZTogJ07Dg8KkY2hzdGUgU2VpdGUnLFxuICBwcmV2XzU6ICc1IFNlaXRlbiB6dXLDg8K8Y2snLFxuICBuZXh0XzU6ICc1IFNlaXRlbiB2b3InLFxuICBwcmV2XzM6ICczIFNlaXRlbiB6dXLDg8K8Y2snLFxuICBuZXh0XzM6ICczIFNlaXRlbiB2b3InXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL2RlX0RFJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvZGVfREUnO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL2RlX0RFJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvZGVfREUnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ2RlJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0ZXItTWVuw4PCvCcsXG4gICAgZmlsdGVyQ29uZmlybTogJ09LJyxcbiAgICBmaWx0ZXJSZXNldDogJ1p1csODwrxja3NldHplbicsXG4gICAgc2VsZWN0QWxsOiAnU2VsZWt0aWVyZSBBbGxlJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICdTZWxla3Rpb24gSW52ZXJ0aWVyZW4nXG4gIH0sXG4gIE1vZGFsOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdBYmJyZWNoZW4nLFxuICAgIGp1c3RPa1RleHQ6ICdPSydcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnQWJicmVjaGVuJ1xuICB9LFxuICBUcmFuc2Zlcjoge1xuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU3VjaGVuJyxcbiAgICBpdGVtVW5pdDogJ0VpbnRyYWcnLFxuICAgIGl0ZW1zVW5pdDogJ0VpbnRyw4PCpGdlJ1xuICB9LFxuICBVcGxvYWQ6IHtcbiAgICB1cGxvYWRpbmc6ICdIb2NobGFkZW4uLi4nLFxuICAgIHJlbW92ZUZpbGU6ICdEYXRlaSBlbnRmZXJuZW4nLFxuICAgIHVwbG9hZEVycm9yOiAnRmVobGVyIGJlaW0gSG9jaGxhZGVuJyxcbiAgICBwcmV2aWV3RmlsZTogJ0RhdGVpdm9yc2NoYXUnXG4gIH0sXG4gIEVtcHR5OiB7XG4gICAgZGVzY3JpcHRpb246ICdLZWluZSBEYXRlbidcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnw47Co8OOwq7DjsK8w47CtcOPwoHDjsKxJyxcbiAgbm93OiAnw47CpMOPwo7Dj8KBw47CsScsXG4gIGJhY2tUb1RvZGF5OiAnw47CoMOOwq/Dj8KDw4/CiSDDj8KDw4/ChMOOwrcgw4/Cg8OOwrfDjsK8w47CtcOPwoHDjsK5w47CvcOOwq4gw47CvMOOwq3Dj8KBw47CsScsXG4gIG9rOiAnT2snLFxuICBjbGVhcjogJ8OOwprDjsKxw47CuMOOwrHDj8KBw47CucOPwoPDjsK8w4/CjMOPwoInLFxuICBtb250aDogJ8OOwpzDjsKuw47CvcOOwrHDj8KCJyxcbiAgeWVhcjogJ8OOwojDj8KEw47Cv8OPwoInLFxuICB0aW1lU2VsZWN0OiAnw47ClcOPwoDDjsK5w47Cu8OOwr/DjsKzw47CriDDj8KOw4/CgcOOwrHDj8KCJyxcbiAgZGF0ZVNlbGVjdDogJ8OOwpXDj8KAw47CucOOwrvDjsK/w47Cs8OOwq4gw47Ct8OOwrzDjsK1w4/CgcOOwr/DjsK8w47Ct8OOwr3DjsKvw47CscOPwoInLFxuICBtb250aFNlbGVjdDogJ8OOwpXDj8KAw47CucOOwrvDjsK/w47Cs8OOwq4gw47CvMOOwq7DjsK9w47CsScsXG4gIHllYXJTZWxlY3Q6ICfDjsKVw4/CgMOOwrnDjsK7w47Cv8OOwrPDjsKuIMOOwq3Dj8KEw47Cv8OPwoXDj8KCJyxcbiAgZGVjYWRlU2VsZWN0OiAnw47ClcOPwoDDjsK5w47Cu8OOwr/DjsKzw47CriDDjsK0w47CtcOOwrrDjsKxw47CtcOPwoTDjsKvw47CscOPwoInLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdEL00vWVlZWScsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ0QvTS9ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnw47CoMOPwoHDjsK/w47Ct8OOwrPDjsK/w4/CjcOOwrzDjsK1w47CvcOOwr/Dj8KCIMOOwrzDjsKuw47CvcOOwrHDj8KCIChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnw47ClcOPwoDDj8KMw47CvMOOwrXDjsK9w47Cv8OPwoIgw47CvMOOwq7DjsK9w47CscOPwoIgKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ8OOwqDDj8KBw47Cv8OOwrfDjsKzw47Cv8OPwo3DjsK8w47CtcOOwr3DjsK/IMOOwq3Dj8KEw47Cv8OPwoIgKENvbnRyb2wgKyDDjsKxw4/CgcOOwrnDj8KDw4/ChMOOwrXDj8KBw47CrCknLFxuICBuZXh0WWVhcjogJ8OOwpXDj8KAw4/CjMOOwrzDjsK1w47CvcOOwr8gw47CrcOPwoTDjsK/w4/CgiAoQ29udHJvbCArIMOOwrTDjsK1w47CvsOOwrnDjsKsKScsXG4gIHByZXZpb3VzRGVjYWRlOiAnw47CoMOPwoHDjsK/w47Ct8OOwrPDjsK/w4/CjcOOwrzDjsK1w47CvcOOwrcgw47CtMOOwrXDjsK6w47CscOOwrXDj8KEw47Cr8OOwrEnLFxuICBuZXh0RGVjYWRlOiAnw47ClcOPwoDDj8KMw47CvMOOwrXDjsK9w47CtyDDjsK0w47CtcOOwrrDjsKxw47CtcOPwoTDjsKvw47CsScsXG4gIHByZXZpb3VzQ2VudHVyeTogJ8OOwqDDj8KBw47Cv8OOwrfDjsKzw47Cv8OPwo3DjsK8w47CtcOOwr3DjsK/w4/CgiDDjsKxw47CucOPwo7DjsK9w47CscOPwoInLFxuICBuZXh0Q2VudHVyeTogJ8OOwpXDj8KAw4/CjMOOwrzDjsK1w47CvcOOwr/Dj8KCIMOOwrHDjsK5w4/CjsOOwr3DjsKxw4/Cgidcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ8OOwpXDj8KAw47CucOOwrvDjsKtw47CvsOPwoTDjsK1IMOPwo7Dj8KBw47CsSdcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXJMb2NhbGUgZnJvbSAnLi4vY2FsZW5kYXIvZWxfR1InO1xuaW1wb3J0IFRpbWVQaWNrZXJMb2NhbGUgZnJvbSAnLi4vdGltZS1waWNrZXIvZWxfR1InO1xuXG4vLyBNZXJnZSBpbnRvIGEgbG9jYWxlIG9iamVjdFxuY29uc3QgbG9jYWxlID0ge1xuICBsYW5nOiB7XG4gICAgcGxhY2Vob2xkZXI6ICfDjsKVw4/CgMOOwrnDjsK7w47CrcOOwr7Dj8KEw47CtSDDjsK3w47CvMOOwrXDj8KBw47Cv8OOwrzDjsK3w47CvcOOwq/DjsKxJyxcbiAgICByYW5nZVBsYWNlaG9sZGVyOiBbJ8OOwpHDj8KBw4/Ch8OOwrnDjsK6w47CriDDjsK3w47CvMOOwrXDj8KBw47Cv8OOwrzDjsK3w47CvcOOwq/DjsKxJywgJ8OOwqTDjsK1w47Cu8OOwrnDjsK6w47CriDDjsK3w47CvMOOwrXDj8KBw47Cv8OOwrzDjsK3w47CvcOOwq/DjsKxJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvNDI0XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyDDj8KDw47CtcOOwrvDjsKvw47CtMOOwrEnLFxuICBqdW1wX3RvOiAnw47CnMOOwrXDj8KEw47CrMOOwrLDjsKxw4/Cg8OOwrcnLFxuICBqdW1wX3RvX2NvbmZpcm06ICfDjsK1w4/CgMOOwrnDjsKyw47CtcOOwrLDjsKxw47CucOPwo7DjsK9w4/CiScsXG4gIHBhZ2U6ICcnLFxuXG4gIC8vIFBhZ2luYXRpb24uanN4XG4gIHByZXZfcGFnZTogJ8OOwqDDj8KBw47Cv8OOwrfDjsKzw47Cv8OPwo3DjsK8w47CtcOOwr3DjsK3IMOOwqPDjsK1w47Cu8OOwq/DjsK0w47CsScsXG4gIG5leHRfcGFnZTogJ8OOwpXDj8KAw4/CjMOOwrzDjsK1w47CvcOOwrcgw47Co8OOwrXDjsK7w47Cr8OOwrTDjsKxJyxcbiAgcHJldl81OiAnw47CoMOPwoHDjsK/w47Ct8OOwrPDjsK/w4/CjcOOwrzDjsK1w47CvcOOwrXDj8KCIDUgw47Co8OOwrXDjsK7w47Cr8OOwrTDjsK1w4/CgicsXG4gIG5leHRfNTogJ8OOwpXDj8KAw4/CjMOOwrzDjsK1w47CvcOOwrXDj8KCIDUgw4/Cg8OOwrXDjsK7w47Cr8OOwrTDjsK1w4/CgicsXG4gIHByZXZfMzogJ8OOwqDDj8KBw47Cv8OOwrfDjsKzw47Cv8OPwo3DjsK8w47CtcOOwr3DjsK1w4/CgiAzIMOOwqPDjsK1w47Cu8OOwq/DjsK0w47CtcOPwoInLFxuICBuZXh0XzM6ICfDjsKVw4/CgMOPwozDjsK8w47CtcOOwr3DjsK1w4/CgiAzIMOOwqPDjsK1w47Cu8OOwq/DjsK0w47CtcOPwoInXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL2VsX0dSJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvZWxfR1InO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL2VsX0dSJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvZWxfR1InO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ2VsJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICfDjsKcw47CtcOOwr3DjsK/w4/CjSDDj8KGw47Cr8OOwrvDj8KEw4/CgcOPwonDjsK9JyxcbiAgICBmaWx0ZXJDb25maXJtOiAnw47Cn8OOwponLFxuICAgIGZpbHRlclJlc2V0OiAnw47ClcOPwoDDjsKxw47CvcOOwrHDj8KGw47Cv8OPwoHDjsKsJyxcbiAgICBzZWxlY3RBbGw6ICfDjsKVw4/CgMOOwrnDjsK7w47Cv8OOwrPDjsKuIMOPwoTDj8KBw47CrcOPwofDjsK/w4/ChcOPwoPDjsKxw4/CgiDDj8KDw47CtcOOwrvDjsKvw47CtMOOwrHDj8KCJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICfDjsKRw47CvcOPwoTDjsK5w4/Cg8OPwoTDj8KBw47Cv8OPwobDjsKuIMOPwoTDj8KBw47CrcOPwofDjsK/w4/ChcOPwoPDjsKxw4/CgiDDj8KDw47CtcOOwrvDjsKvw47CtMOOwrHDj8KCJ1xuICB9LFxuICBNb2RhbDoge1xuICAgIG9rVGV4dDogJ8OOwp/DjsKaJyxcbiAgICBjYW5jZWxUZXh0OiAnw47ChsOOwrrDj8KFw4/CgcOOwr8nLFxuICAgIGp1c3RPa1RleHQ6ICfDjsKfw47CmidcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ8OOwp/DjsKaJyxcbiAgICBjYW5jZWxUZXh0OiAnw47ChsOOwrrDj8KFw4/CgcOOwr8nXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICfDjsKRw47CvcOOwrHDjsK2w47CrsOPwoTDjsK3w4/Cg8OOwrcnLFxuICAgIGl0ZW1Vbml0OiAnw47CscOOwr3Dj8KEw47CucOOwrrDjsK1w47Cr8OOwrzDjsK1w47CvcOOwr8nLFxuICAgIGl0ZW1zVW5pdDogJ8OOwrHDjsK9w4/ChMOOwrnDjsK6w47CtcOOwq/DjsK8w47CtcOOwr3DjsKxJ1xuICB9LFxuICBVcGxvYWQ6IHtcbiAgICB1cGxvYWRpbmc6ICfDjsKcw47CtcOPwoTDjsKxw4/ChsOPwozDj8KBw4/ChMOPwonDj8KDw47Cty4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ8OOwpHDj8KGw47CscOOwq/Dj8KBw47CtcOPwoPDjsK3IMOOwrHDj8KBw4/Ch8OOwrXDjsKvw47Cv8OPwoUnLFxuICAgIHVwbG9hZEVycm9yOiAnw47Co8OPwobDjsKsw47Cu8OOwrzDjsKxIMOOwrzDjsK1w4/ChMOOwrHDj8KGw4/CjMOPwoHDj8KEw4/CicOPwoPDjsK3w4/CgicsXG4gICAgcHJldmlld0ZpbGU6ICfDjsKgw4/CgcOOwr/DjsK1w4/CgMOOwrnDj8KDw47CusOPwozDj8KAw47Ct8OPwoPDjsK3IMOOwrHDj8KBw4/Ch8OOwrXDjsKvw47Cv8OPwoUnXG4gIH0sXG4gIEVtcHR5OiB7XG4gICAgZGVzY3JpcHRpb246ICfDjsKUw47CtcOOwr0gw4/ChcOPwoDDjsKsw4/CgcOPwofDjsK/w4/ChcOOwr0gw47CtMOOwrXDjsK0w47Cv8OOwrzDjsKtw47CvcOOwrEnXG4gIH1cbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ1RvZGF5JyxcbiAgbm93OiAnTm93JyxcbiAgYmFja1RvVG9kYXk6ICdCYWNrIHRvIHRvZGF5JyxcbiAgb2s6ICdPaycsXG4gIGNsZWFyOiAnQ2xlYXInLFxuICBtb250aDogJ01vbnRoJyxcbiAgeWVhcjogJ1llYXInLFxuICB0aW1lU2VsZWN0OiAnU2VsZWN0IHRpbWUnLFxuICBkYXRlU2VsZWN0OiAnU2VsZWN0IGRhdGUnLFxuICBtb250aFNlbGVjdDogJ0Nob29zZSBhIG1vbnRoJyxcbiAgeWVhclNlbGVjdDogJ0Nob29zZSBhIHllYXInLFxuICBkZWNhZGVTZWxlY3Q6ICdDaG9vc2UgYSBkZWNhZGUnLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdEL00vWVlZWScsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ0QvTS9ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnUHJldmlvdXMgbW9udGggKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICdOZXh0IG1vbnRoIChQYWdlRG93biknLFxuICBwcmV2aW91c1llYXI6ICdMYXN0IHllYXIgKENvbnRyb2wgKyBsZWZ0KScsXG4gIG5leHRZZWFyOiAnTmV4dCB5ZWFyIChDb250cm9sICsgcmlnaHQpJyxcbiAgcHJldmlvdXNEZWNhZGU6ICdMYXN0IGRlY2FkZScsXG4gIG5leHREZWNhZGU6ICdOZXh0IGRlY2FkZScsXG4gIHByZXZpb3VzQ2VudHVyeTogJ0xhc3QgY2VudHVyeScsXG4gIG5leHRDZW50dXJ5OiAnTmV4dCBjZW50dXJ5J1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5jb25zdCBsb2NhbGUgPSB7XG4gIHBsYWNlaG9sZGVyOiAnU2VsZWN0IHRpbWUnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyTG9jYWxlIGZyb20gJy4uL2NhbGVuZGFyL2VuX0dCJztcbmltcG9ydCBUaW1lUGlja2VyTG9jYWxlIGZyb20gJy4uL3RpbWUtcGlja2VyL2VuX0dCJztcblxuLy8gTWVyZ2UgaW50byBhIGxvY2FsZSBvYmplY3RcbmNvbnN0IGxvY2FsZSA9IHtcbiAgbGFuZzoge1xuICAgIHBsYWNlaG9sZGVyOiAnU2VsZWN0IGRhdGUnLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnU3RhcnQgZGF0ZScsICdFbmQgZGF0ZSddLFxuICAgIC4uLkNhbGVuZGFyTG9jYWxlXG4gIH0sXG4gIHRpbWVQaWNrZXJMb2NhbGU6IHtcbiAgICAuLi5UaW1lUGlja2VyTG9jYWxlXG4gIH1cbn07XG5cbi8vIEFsbCBzZXR0aW5ncyBhdDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vYmxvYi9tYXN0ZXIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9sb2NhbGUvZXhhbXBsZS5qc29uXG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyBwYWdlJyxcbiAganVtcF90bzogJ0dvdG8nLFxuICBqdW1wX3RvX2NvbmZpcm06ICdjb25maXJtJyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnUHJldmlvdXMgUGFnZScsXG4gIG5leHRfcGFnZTogJ05leHQgUGFnZScsXG4gIHByZXZfNTogJ1ByZXZpb3VzIDUgUGFnZXMnLFxuICBuZXh0XzU6ICdOZXh0IDUgUGFnZXMnLFxuICBwcmV2XzM6ICdQcmV2aW91cyAzIFBhZ2VzJyxcbiAgbmV4dF8zOiAnTmV4dCAzIFBhZ2VzJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi9jYWxlbmRhci9lbl9HQic7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL2RhdGUtcGlja2VyL2VuX0dCJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4vcGFnaW5hdGlvbi9lbl9HQic7XG5pbXBvcnQgVGltZVBpY2tlciBmcm9tICcuL3RpbWUtcGlja2VyL2VuX0dCJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2NhbGU6ICdlbi1nYicsXG4gIFBhZ2luYXRpb24sXG4gIERhdGVQaWNrZXIsXG4gIFRpbWVQaWNrZXIsXG4gIENhbGVuZGFyLFxuICBUYWJsZToge1xuICAgIGZpbHRlclRpdGxlOiAnRmlsdGVyIG1lbnUnLFxuICAgIGZpbHRlckNvbmZpcm06ICdPSycsXG4gICAgZmlsdGVyUmVzZXQ6ICdSZXNldCcsXG4gICAgc2VsZWN0QWxsOiAnU2VsZWN0IGN1cnJlbnQgcGFnZScsXG4gICAgc2VsZWN0SW52ZXJ0OiAnSW52ZXJ0IGN1cnJlbnQgcGFnZSdcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAganVzdE9rVGV4dDogJ09LJ1xuICB9LFxuICBQb3Bjb25maXJtOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggaGVyZScsXG4gICAgaXRlbVVuaXQ6ICdpdGVtJyxcbiAgICBpdGVtc1VuaXQ6ICdpdGVtcydcbiAgfSxcbiAgVXBsb2FkOiB7XG4gICAgdXBsb2FkaW5nOiAnVXBsb2FkaW5nLi4uJyxcbiAgICByZW1vdmVGaWxlOiAnUmVtb3ZlIGZpbGUnLFxuICAgIHVwbG9hZEVycm9yOiAnVXBsb2FkIGVycm9yJyxcbiAgICBwcmV2aWV3RmlsZTogJ1ByZXZpZXcgZmlsZSdcbiAgfSxcbiAgRW1wdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJ05vIGRhdGEnXG4gIH1cbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ1RvZGF5JyxcbiAgbm93OiAnTm93JyxcbiAgYmFja1RvVG9kYXk6ICdCYWNrIHRvIHRvZGF5JyxcbiAgb2s6ICdPaycsXG4gIGNsZWFyOiAnQ2xlYXInLFxuICBtb250aDogJ01vbnRoJyxcbiAgeWVhcjogJ1llYXInLFxuICB0aW1lU2VsZWN0OiAnU2VsZWN0IHRpbWUnLFxuICBkYXRlU2VsZWN0OiAnU2VsZWN0IGRhdGUnLFxuICBtb250aFNlbGVjdDogJ0Nob29zZSBhIG1vbnRoJyxcbiAgeWVhclNlbGVjdDogJ0Nob29zZSBhIHllYXInLFxuICBkZWNhZGVTZWxlY3Q6ICdDaG9vc2UgYSBkZWNhZGUnLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdNL0QvWVlZWScsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ00vRC9ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnUHJldmlvdXMgbW9udGggKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICdOZXh0IG1vbnRoIChQYWdlRG93biknLFxuICBwcmV2aW91c1llYXI6ICdMYXN0IHllYXIgKENvbnRyb2wgKyBsZWZ0KScsXG4gIG5leHRZZWFyOiAnTmV4dCB5ZWFyIChDb250cm9sICsgcmlnaHQpJyxcbiAgcHJldmlvdXNEZWNhZGU6ICdMYXN0IGRlY2FkZScsXG4gIG5leHREZWNhZGU6ICdOZXh0IGRlY2FkZScsXG4gIHByZXZpb3VzQ2VudHVyeTogJ0xhc3QgY2VudHVyeScsXG4gIG5leHRDZW50dXJ5OiAnTmV4dCBjZW50dXJ5J1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5jb25zdCBsb2NhbGUgPSB7XG4gIHBsYWNlaG9sZGVyOiAnU2VsZWN0IHRpbWUnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyTG9jYWxlIGZyb20gJy4uL2NhbGVuZGFyL2VuX1VTJztcbmltcG9ydCBUaW1lUGlja2VyTG9jYWxlIGZyb20gJy4uL3RpbWUtcGlja2VyL2VuX1VTJztcblxuLy8gTWVyZ2UgaW50byBhIGxvY2FsZSBvYmplY3RcbmNvbnN0IGxvY2FsZSA9IHtcbiAgbGFuZzoge1xuICAgIHBsYWNlaG9sZGVyOiAnU2VsZWN0IGRhdGUnLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnU3RhcnQgZGF0ZScsICdFbmQgZGF0ZSddLFxuICAgIC4uLkNhbGVuZGFyTG9jYWxlXG4gIH0sXG4gIHRpbWVQaWNrZXJMb2NhbGU6IHtcbiAgICAuLi5UaW1lUGlja2VyTG9jYWxlXG4gIH1cbn07XG5cbi8vIEFsbCBzZXR0aW5ncyBhdDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vYmxvYi9tYXN0ZXIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9sb2NhbGUvZXhhbXBsZS5qc29uXG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyBwYWdlJyxcbiAganVtcF90bzogJ0dvdG8nLFxuICBqdW1wX3RvX2NvbmZpcm06ICdjb25maXJtJyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnUHJldmlvdXMgUGFnZScsXG4gIG5leHRfcGFnZTogJ05leHQgUGFnZScsXG4gIHByZXZfNTogJ1ByZXZpb3VzIDUgUGFnZXMnLFxuICBuZXh0XzU6ICdOZXh0IDUgUGFnZXMnLFxuICBwcmV2XzM6ICdQcmV2aW91cyAzIFBhZ2VzJyxcbiAgbmV4dF8zOiAnTmV4dCAzIFBhZ2VzJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi9jYWxlbmRhci9lbl9VUyc7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL2RhdGUtcGlja2VyL2VuX1VTJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4vcGFnaW5hdGlvbi9lbl9VUyc7XG5pbXBvcnQgVGltZVBpY2tlciBmcm9tICcuL3RpbWUtcGlja2VyL2VuX1VTJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2NhbGU6ICdlbicsXG4gIFBhZ2luYXRpb24sXG4gIERhdGVQaWNrZXIsXG4gIFRpbWVQaWNrZXIsXG4gIENhbGVuZGFyLFxuICBnbG9iYWw6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1BsZWFzZSBzZWxlY3QnXG4gIH0sXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0ZXIgbWVudScsXG4gICAgZmlsdGVyQ29uZmlybTogJ09LJyxcbiAgICBmaWx0ZXJSZXNldDogJ1Jlc2V0JyxcbiAgICBzZWxlY3RBbGw6ICdTZWxlY3QgY3VycmVudCBwYWdlJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICdJbnZlcnQgY3VycmVudCBwYWdlJyxcbiAgICBzb3J0VGl0bGU6ICdTb3J0J1xuICB9LFxuICBNb2RhbDoge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsJyxcbiAgICBqdXN0T2tUZXh0OiAnT0snXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ0NhbmNlbCdcbiAgfSxcbiAgVHJhbnNmZXI6IHtcbiAgICB0aXRsZXM6IFsnJywgJyddLFxuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIGhlcmUnLFxuICAgIGl0ZW1Vbml0OiAnaXRlbScsXG4gICAgaXRlbXNVbml0OiAnaXRlbXMnXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ1VwbG9hZGluZy4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ1JlbW92ZSBmaWxlJyxcbiAgICB1cGxvYWRFcnJvcjogJ1VwbG9hZCBlcnJvcicsXG4gICAgcHJldmlld0ZpbGU6ICdQcmV2aWV3IGZpbGUnXG4gIH0sXG4gIEVtcHR5OiB7XG4gICAgZGVzY3JpcHRpb246ICdObyBEYXRhJ1xuICB9XG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9kYXk6ICdIb3knLFxuICBub3c6ICdBaG9yYScsXG4gIGJhY2tUb1RvZGF5OiAnVm9sdmVyIGEgaG95JyxcbiAgb2s6ICdBY2VwdGFyJyxcbiAgY2xlYXI6ICdMaW1waWFyJyxcbiAgbW9udGg6ICdNZXMnLFxuICB5ZWFyOiAnQcODwrFvJyxcbiAgdGltZVNlbGVjdDogJ1NlbGVjY2lvbmFyIGhvcmEnLFxuICBkYXRlU2VsZWN0OiAnU2VsZWNjaW9uYXIgZmVjaGEnLFxuICBtb250aFNlbGVjdDogJ0VsZWdpciB1biBtZXMnLFxuICB5ZWFyU2VsZWN0OiAnRWxlZ2lyIHVuIGHDg8KxbycsXG4gIGRlY2FkZVNlbGVjdDogJ0VsZWdpciB1bmEgZMODwqljYWRhJyxcbiAgeWVhckZvcm1hdDogJ1lZWVknLFxuICBkYXRlRm9ybWF0OiAnRC9NL1lZWVknLFxuICBkYXlGb3JtYXQ6ICdEJyxcbiAgZGF0ZVRpbWVGb3JtYXQ6ICdEL00vWVlZWSBISDptbTpzcycsXG4gIG1vbnRoQmVmb3JlWWVhcjogdHJ1ZSxcbiAgcHJldmlvdXNNb250aDogJ01lcyBhbnRlcmlvciAoUGFnZVVwKScsXG4gIG5leHRNb250aDogJ01lcyBzaWd1aWVudGUgKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ0HDg8KxbyBhbnRlcmlvciAoQ29udHJvbCArIGxlZnQpJyxcbiAgbmV4dFllYXI6ICdBw4PCsW8gc2lndWllbnRlIChDb250cm9sICsgcmlnaHQpJyxcbiAgcHJldmlvdXNEZWNhZGU6ICdEw4PCqWNhZGEgYW50ZXJpb3InLFxuICBuZXh0RGVjYWRlOiAnRMODwqljYWRhIHNpZ3VpZW50ZScsXG4gIHByZXZpb3VzQ2VudHVyeTogJ1NpZ2xvIGFudGVyaW9yJyxcbiAgbmV4dENlbnR1cnk6ICdTaWdsbyBzaWd1aWVudGUnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICdTZWxlY2Npb25hciBob3JhJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9lc19FUyc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9lc19FUyc7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1NlbGVjY2lvbmFyIGZlY2hhJyxcbiAgICByYW5nZVBsYWNlaG9sZGVyOiBbJ0ZlY2hhIGluaWNpYWwnLCAnRmVjaGEgZmluYWwnXSxcbiAgICAuLi5DYWxlbmRhckxvY2FsZVxuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7XG4gICAgLi4uVGltZVBpY2tlckxvY2FsZVxuICB9XG59O1xuXG4vLyBBbGwgc2V0dGluZ3MgYXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2Jsb2IvbWFzdGVyL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvbG9jYWxlL2V4YW1wbGUuanNvblxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJy8gcMODwqFnaW5hJyxcbiAganVtcF90bzogJ0lyIGEnLFxuICBqdW1wX3RvX2NvbmZpcm06ICdjb25maXJtYXInLFxuICBwYWdlOiAnJyxcblxuICAvLyBQYWdpbmF0aW9uLmpzeFxuICBwcmV2X3BhZ2U6ICdQw4PCoWdpbmEgYW50ZXJpb3InLFxuICBuZXh0X3BhZ2U6ICdQw4PCoWdpbmEgc2lndWllbnRlJyxcbiAgcHJldl81OiAnNSBww4PCoWdpbmFzIHByZXZpYXMnLFxuICBuZXh0XzU6ICc1IHDDg8KhZ2luYXMgc2lndWllbnRlcycsXG4gIHByZXZfMzogJzMgcMODwqFnaW5hcyBwcmV2aWFzJyxcbiAgbmV4dF8zOiAnMyBww4PCoWdpbmFzIHNpZ3VpZW50ZXMnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL2VzX0VTJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvZXNfRVMnO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL2VzX0VTJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvZXNfRVMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ2VzJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0cmFyIG1lbsODwronLFxuICAgIGZpbHRlckNvbmZpcm06ICdBY2VwdGFyJyxcbiAgICBmaWx0ZXJSZXNldDogJ1JlaW5pY2lhcicsXG4gICAgc2VsZWN0QWxsOiAnU2VsZWNjaW9uYXIgdG9kbycsXG4gICAgc2VsZWN0SW52ZXJ0OiAnSW52ZXJ0aXIgc2VsZWNjacODwrNuJ1xuICB9LFxuICBNb2RhbDoge1xuICAgIG9rVGV4dDogJ0FjZXB0YXInLFxuICAgIGNhbmNlbFRleHQ6ICdDYW5jZWxhcicsXG4gICAganVzdE9rVGV4dDogJ0FjZXB0YXInXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICdBY2VwdGFyJyxcbiAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsYXInXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdCdXNjYXIgYXF1w4PCrScsXG4gICAgaXRlbVVuaXQ6ICdlbGVtZW50bycsXG4gICAgaXRlbXNVbml0OiAnZWxlbWVudG9zJ1xuICB9LFxuICBVcGxvYWQ6IHtcbiAgICB1cGxvYWRpbmc6ICdTdWJpZW5kby4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ0VsaW1pbmFyIGFyY2hpdm8nLFxuICAgIHVwbG9hZEVycm9yOiAnRXJyb3IgYWwgc3ViaXIgZWwgYXJjaGl2bycsXG4gICAgcHJldmlld0ZpbGU6ICdWaXN0YSBwcmV2aWEnXG4gIH0sXG4gIEVtcHR5OiB7XG4gICAgZGVzY3JpcHRpb246ICdObyBoYXkgZGF0b3MnXG4gIH1cbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ1TDg8KkbmEnLFxuICBub3c6ICdQcmFlZ3UnLFxuICBiYWNrVG9Ub2RheTogJ1RhZ2FzaSB0w4PCpG5hc2UganV1cmRlJyxcbiAgb2s6ICdPaycsXG4gIGNsZWFyOiAnVMODwrxoaXN0YScsXG4gIG1vbnRoOiAnS3V1JyxcbiAgeWVhcjogJ0Fhc3RhJyxcbiAgdGltZVNlbGVjdDogJ1ZhbGkgYWVnJyxcbiAgZGF0ZVNlbGVjdDogJ1ZhbGkga3V1cMODwqRldicsXG4gIG1vbnRoU2VsZWN0OiAnVmFsaSBrdXUnLFxuICB5ZWFyU2VsZWN0OiAnVmFsaSBhYXN0YScsXG4gIGRlY2FkZVNlbGVjdDogJ1ZhbGkgZGVrYWFkJyxcbiAgeWVhckZvcm1hdDogJ1lZWVknLFxuICBkYXRlRm9ybWF0OiAnRC5NLllZWVknLFxuICBkYXlGb3JtYXQ6ICdEJyxcbiAgZGF0ZVRpbWVGb3JtYXQ6ICdELk0uWVlZWSBISDptbTpzcycsXG4gIG1vbnRoQmVmb3JlWWVhcjogdHJ1ZSxcbiAgcHJldmlvdXNNb250aDogJ0VlbG1pbmUga3V1IChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnSsODwqRyZ21pbmUga3V1IChQYWdlRG93biknLFxuICBwcmV2aW91c1llYXI6ICdFZWxtaW5lIGFhc3RhIChDb250cm9sICsgbGVmdCknLFxuICBuZXh0WWVhcjogJ0rDg8KkcmdtaW5lIGFhc3RhIChDb250cm9sICsgcmlnaHQpJyxcbiAgcHJldmlvdXNEZWNhZGU6ICdFZWxtaW5lIGRla2FhZCcsXG4gIG5leHREZWNhZGU6ICdKw4PCpHJnbWluZSBkZWthYWQnLFxuICBwcmV2aW91c0NlbnR1cnk6ICdFZWxtaW5lIHNhamFuZCcsXG4gIG5leHRDZW50dXJ5OiAnSsODwqRyZ21pbmUgc2FqYW5kJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5jb25zdCBsb2NhbGUgPSB7XG4gIHBsYWNlaG9sZGVyOiAnVmFsaSBhZWcnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyTG9jYWxlIGZyb20gJy4uL2NhbGVuZGFyL2V0X0VFJztcbmltcG9ydCBUaW1lUGlja2VyTG9jYWxlIGZyb20gJy4uL3RpbWUtcGlja2VyL2V0X0VFJztcblxuLy8gw6fCu8Kfw6TCuMKAw6XCkMKIw6XCucK2w6TCuMK6w6XCrsKMw6bClcK0w6fCmsKEIExvY2FsZVxuY29uc3QgbG9jYWxlID0ge1xuICBsYW5nOiB7XG4gICAgcGxhY2Vob2xkZXI6ICdWYWxpIGt1dXDDg8KkZXYnLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnQWxndXMga3V1cMODwqRldicsICdMw4PCtXB1IGt1dXDDg8KkZXYnXSxcbiAgICAuLi5DYWxlbmRhckxvY2FsZVxuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7XG4gICAgLi4uVGltZVBpY2tlckxvY2FsZVxuICB9XG59O1xuXG4vLyBBbGwgc2V0dGluZ3MgYXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2Jsb2IvbWFzdGVyL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvbG9jYWxlL2V4YW1wbGUuanNvblxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJy8gbGVoZWvDg8K8bGplbCcsXG4gIGp1bXBfdG86ICdIw4PCvHBwYScsXG4gIGp1bXBfdG9fY29uZmlybTogJ0tpbm5pdGFnZScsXG4gIHBhZ2U6ICcnLFxuXG4gIC8vIFBhZ2luYXRpb24uanN4XG4gIHByZXZfcGFnZTogJ0VlbG1pbmUgbGVodCcsXG4gIG5leHRfcGFnZTogJ0rDg8KkcmdtaW5lIGxlaHQnLFxuICBwcmV2XzU6ICdFZWxtaXNlZCA1IGxlaGVrw4PCvGxnZScsXG4gIG5leHRfNTogJ0rDg8KkcmdtaXNlZCA1IGxlaGVrw4PCvGxnZScsXG4gIHByZXZfMzogJ0VlbG1pc2VkIDMgbGVoZWvDg8K8bGdlJyxcbiAgbmV4dF8zOiAnSsODwqRyZ21pc2VkIDMgbGVoZWvDg8K8bGdlJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi9jYWxlbmRhci9ldF9FRSc7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL2RhdGUtcGlja2VyL2V0X0VFJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4vcGFnaW5hdGlvbi9ldF9FRSc7XG5pbXBvcnQgVGltZVBpY2tlciBmcm9tICcuL3RpbWUtcGlja2VyL2V0X0VFJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2NhbGU6ICdldCcsXG4gIFBhZ2luYXRpb24sXG4gIERhdGVQaWNrZXIsXG4gIFRpbWVQaWNrZXIsXG4gIENhbGVuZGFyLFxuICBUYWJsZToge1xuICAgIGZpbHRlclRpdGxlOiAnRmlsdHJpIG1lbsODwrzDg8K8JyxcbiAgICBmaWx0ZXJDb25maXJtOiAnT0snLFxuICAgIGZpbHRlclJlc2V0OiAnTnVsbGknLFxuICAgIHNlbGVjdEFsbDogJ1ZhbGkga8ODwrVpaycsXG4gICAgc2VsZWN0SW52ZXJ0OiAnSW52ZXJ0ZWVyaSB2YWxpaydcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ1TDg8K8aGlzdGEnLFxuICAgIGp1c3RPa1RleHQ6ICdPSydcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnVMODwrxoaXN0YSdcbiAgfSxcbiAgVHJhbnNmZXI6IHtcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ090c2kgc2lpdCcsXG4gICAgaXRlbVVuaXQ6ICdrb2d1cycsXG4gICAgaXRlbXNVbml0OiAna29ndXMnXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ8ODwpxsZXNsYWFkaW1pbmUuLi4nLFxuICAgIHJlbW92ZUZpbGU6ICdFZW1hbGRhIGZhaWwnLFxuICAgIHVwbG9hZEVycm9yOiAnw4PCnGxlc2xhYWRpbWlzZSB0w4PCtXJnZScsXG4gICAgcHJldmlld0ZpbGU6ICdGYWlsaSBlZWx2YWFkZSdcbiAgfSxcbiAgRW1wdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJ0FuZG1lZCBwdXVkdXZhZCdcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnw5jCp8OZwoXDmMKxw5nCiMOYwrInLFxuICBub3c6ICfDmMKnw5rCqcOZwobDmcKIw5nChicsXG4gIGJhY2tUb1RvZGF5OiAnw5jCqMOYwqfDmMKyw5rCr8OYwrTDmMKqIMOYwqjDmcKHIMOYwrHDmcKIw5jCsicsXG4gIG9rOiAnw5jCqMOYwqfDmMK0w5nChycsXG4gIGNsZWFyOiAnw5nCvsOYwqfDmsKpIMOawqnDmMKxw5jCr8OZwoYnLFxuICBtb250aDogJ8OZwoXDmMKnw5nChycsXG4gIHllYXI6ICfDmMKzw5jCp8OZwoQnLFxuICB0aW1lU2VsZWN0OiAnw5jCp8OZwobDmMKqw5jCrsOYwqfDmMKoIMOYwrLDmcKFw5jCp8OZwoYnLFxuICBkYXRlU2VsZWN0OiAnw5jCp8OZwobDmMKqw5jCrsOYwqfDmMKoIMOYwqrDmMKnw5jCscObwozDmMKuJyxcbiAgbW9udGhTZWxlY3Q6ICfDm8KMw5rCqSDDmcKFw5jCp8OZwocgw5jCscOYwqcgw5jCp8OZwobDmMKqw5jCrsOYwqfDmMKoIMOawqnDmcKGw5vCjMOYwq8nLFxuICB5ZWFyU2VsZWN0OiAnw5vCjMOawqkgw5jCs8OYwqfDmcKEIMOYwrHDmMKnIMOYwqfDmcKGw5jCqsOYwq7DmMKnw5jCqCDDmsKpw5nChsObwozDmMKvJyxcbiAgZGVjYWRlU2VsZWN0OiAnw5vCjMOawqkgw5jCr8OZwofDmcKHIMOYwrHDmMKnIMOYwqfDmcKGw5jCqsOYwq7DmMKnw5jCqCDDmsKpw5nChsObwozDmMKvJyxcbiAgeWVhckZvcm1hdDogJ1lZWVknLFxuICBkYXRlRm9ybWF0OiAnTS9EL1lZWVknLFxuICBkYXlGb3JtYXQ6ICdEJyxcbiAgZGF0ZVRpbWVGb3JtYXQ6ICdNL0QvWVlZWSBISDptbTpzcycsXG4gIG1vbnRoQmVmb3JlWWVhcjogdHJ1ZSxcbiAgcHJldmlvdXNNb250aDogJ8OZwoXDmMKnw5nChyDDmcKCw5jCqMOZwoQgKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICfDmcKFw5jCp8OZwocgw5jCqMOYwrnDmMKvIChQYWdlRG93biknLFxuICBwcmV2aW91c1llYXI6ICfDmMKzw5jCp8OZwoQgw5nCgsOYwqjDmcKEIChDb250cm9sICsgbGVmdCknLFxuICBuZXh0WWVhcjogJ8OYwrPDmMKnw5nChCDDmMKow5jCucOYwq8gKENvbnRyb2wgKyByaWdodCknLFxuICBwcmV2aW91c0RlY2FkZTogJ8OYwq/DmcKHw5nChyDDmcKCw5jCqMOZwoQnLFxuICBuZXh0RGVjYWRlOiAnw5jCr8OZwofDmcKHIMOYwqjDmMK5w5jCrycsXG4gIHByZXZpb3VzQ2VudHVyeTogJ8OZwoLDmMKxw5nChiDDmcKCw5jCqMOZwoQnLFxuICBuZXh0Q2VudHVyeTogJ8OZwoLDmMKxw5nChiDDmMKow5jCucOYwq8nXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICfDmMKnw5nChsOYwqrDmMKuw5jCp8OYwqggw5jCssOZwoXDmMKnw5nChidcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXJMb2NhbGUgZnJvbSAnLi4vY2FsZW5kYXIvZmFfSVInO1xuaW1wb3J0IFRpbWVQaWNrZXJMb2NhbGUgZnJvbSAnLi4vdGltZS1waWNrZXIvZmFfSVInO1xuXG4vLyBNZXJnZSBpbnRvIGEgbG9jYWxlIG9iamVjdFxuY29uc3QgbG9jYWxlID0ge1xuICBsYW5nOiB7XG4gICAgcGxhY2Vob2xkZXI6ICfDmMKnw5nChsOYwqrDmMKuw5jCp8OYwqggw5jCqsOYwqfDmMKxw5vCjMOYwq4nLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnw5jCqsOYwqfDmMKxw5vCjMOYwq4gw5jCtMOYwrHDmcKIw5jCuScsICfDmMKqw5jCp8OYwrHDm8KMw5jCriDDmcK+w5jCp8ObwozDmMKnw5nChiddLFxuICAgIC4uLkNhbGVuZGFyTG9jYWxlXG4gIH0sXG4gIHRpbWVQaWNrZXJMb2NhbGU6IHtcbiAgICAuLi5UaW1lUGlja2VyTG9jYWxlXG4gIH1cbn07XG5cbi8vIEFsbCBzZXR0aW5ncyBhdDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vYmxvYi9tYXN0ZXIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9sb2NhbGUvZXhhbXBsZS5qc29uXG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyDDmMK1w5nCgcOYwq3DmcKHJyxcbiAganVtcF90bzogJ8OYwqjDmMKxw5nCiCDDmMKow5nChycsXG4gIGp1bXBfdG9fY29uZmlybTogJ8OYwqrDmMKnw5vCjMObwozDmMKvJyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnw5jCtcOZwoHDmMKtw5nChyDDmcKCw5jCqMOZwoTDm8KMJyxcbiAgbmV4dF9wYWdlOiAnw5jCtcOZwoHDmMKtw5nChyDDmMKow5jCucOYwq/Dm8KMJyxcbiAgcHJldl81OiAnw5vCtSDDmMK1w5nCgcOYwq3DmcKHIMOZwoLDmMKow5nChMObwownLFxuICBuZXh0XzU6ICfDm8K1IMOYwrXDmcKBw5jCrcOZwocgw5jCqMOYwrnDmMKvw5vCjCcsXG4gIHByZXZfMzogJ8ObwrMgw5jCtcOZwoHDmMKtw5nChyDDmcKCw5jCqMOZwoTDm8KMJyxcbiAgbmV4dF8zOiAnw5vCsyDDmMK1w5nCgcOYwq3DmcKHIMOYwqjDmMK5w5jCr8ObwownXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL2ZhX0lSJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvZmFfSVInO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL2ZhX0lSJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvZmFfSVInO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ2ZhJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICfDmcKFw5nChsOZwojDm8KMIMOZwoHDm8KMw5nChMOYwqrDmMKxJyxcbiAgICBmaWx0ZXJDb25maXJtOiAnw5jCqsOYwqfDm8KMw5vCjMOYwq8nLFxuICAgIGZpbHRlclJlc2V0OiAnw5nCvsOYwqfDmsKpIMOawqnDmMKxw5jCr8OZwoYnLFxuICAgIHNlbGVjdEFsbDogJ8OYwqfDmcKGw5jCqsOYwq7DmMKnw5jCqCDDmMK1w5nCgcOYwq3DmcKHw6LCgMKMw5vCjCDDmsKpw5nChsOZwojDmcKGw5vCjCcsXG4gICAgc2VsZWN0SW52ZXJ0OiAnw5nChcOYwrnDmsKpw5nCiMOYwrMgw5rCqcOYwrHDmMKvw5nChiDDmMKnw5nChsOYwqrDmMKuw5jCp8OYwqjDosKAwozDmcKHw5jCpyDDmMKvw5jCsSDDmMK1w5nCgcOYwq3DmcKHIMObwowgw5rCqcOZwobDmcKIw5nChsObwownXG4gIH0sXG4gIE1vZGFsOiB7XG4gICAgb2tUZXh0OiAnw5jCqsOYwqfDm8KMw5vCjMOYwq8nLFxuICAgIGNhbmNlbFRleHQ6ICfDmcKEw5jCusOZwognLFxuICAgIGp1c3RPa1RleHQ6ICfDmMKqw5jCp8ObwozDm8KMw5jCrydcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ8OYwqrDmMKnw5vCjMObwozDmMKvJyxcbiAgICBjYW5jZWxUZXh0OiAnw5nChMOYwrrDmcKIJ1xuICB9LFxuICBUcmFuc2Zlcjoge1xuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnw5jCrMOYwrPDmMKqw5jCrMOZwognLFxuICAgIGl0ZW1Vbml0OiAnJyxcbiAgICBpdGVtc1VuaXQ6ICcnXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ8OYwq/DmMKxIMOYwq3DmMKnw5nChCDDmMKiw5nCvsOZwoTDmcKIw5jCry4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ8OYwq3DmMKww5nCgSDDmcKBw5jCp8ObwozDmcKEJyxcbiAgICB1cGxvYWRFcnJvcjogJ8OYwq7DmMK3w5jCpyDDmMKvw5jCsSDDmMKiw5nCvsOZwoTDmcKIw5jCrycsXG4gICAgcHJldmlld0ZpbGU6ICfDmcKFw5jCtMOYwqfDmcKHw5jCr8OZwofDosKAwozDm8KMIMOZwoHDmMKnw5vCjMOZwoQnXG4gIH0sXG4gIEVtcHR5OiB7XG4gICAgZGVzY3JpcHRpb246ICfDmMKvw5jCp8OYwq/DmcKHw6LCgMKMw5jCp8Obwowgw5nChcOZwojDmMKsw5nCiMOYwq8gw5nChsObwozDmMKzw5jCqidcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnVMODwqRuw4PCpMODwqRuJyxcbiAgbm93OiAnTnl0JyxcbiAgYmFja1RvVG9kYXk6ICdUw4PCpG3Dg8KkIHDDg8KkaXbDg8KkJyxcbiAgb2s6ICdPaycsXG4gIGNsZWFyOiAnVHloamVubsODwqQnLFxuICBtb250aDogJ0t1dWthdXNpJyxcbiAgeWVhcjogJ1Z1b3NpJyxcbiAgdGltZVNlbGVjdDogJ1ZhbGlzZSBhaWthJyxcbiAgZGF0ZVNlbGVjdDogJ1ZhbGl0c2UgcMODwqRpdsODwqQnLFxuICBtb250aFNlbGVjdDogJ1ZhbGl0c2Uga3V1a2F1c2knLFxuICB5ZWFyU2VsZWN0OiAnVmFsaXRzZSB2dW9zaScsXG4gIGRlY2FkZVNlbGVjdDogJ1ZhbGl0c2UgdnVvc2lreW1tZW4nLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdELk0uWVlZWScsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ0QuTS5ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnRWRlbGxpbmVuIGt1dWthdXNpIChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnU2V1cmFhdmEga3V1a2F1c2kgKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ0VkZWxsaW5lbiB2dW9zaSAoQ29udHJvbCArIGxlZnQpJyxcbiAgbmV4dFllYXI6ICdTZXVyYWF2YSB2dW9zaSAoQ29udHJvbCArIHJpZ2h0KScsXG4gIHByZXZpb3VzRGVjYWRlOiAnRWRlbGxpbmVuIHZ1b3Npa3ltbWVuJyxcbiAgbmV4dERlY2FkZTogJ1NldXJhYXZhIHZ1b3Npa3ltbWVuJyxcbiAgcHJldmlvdXNDZW50dXJ5OiAnRWRlbGxpbmVuIHZ1b3Npc2F0YScsXG4gIG5leHRDZW50dXJ5OiAnU2V1cmFhdmEgdnVvc2lzYXRhJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5jb25zdCBsb2NhbGUgPSB7XG4gIHBsYWNlaG9sZGVyOiAnVmFsaXRzZSBhaWthJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9maV9GSSc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9maV9GSSc7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1ZhbGl0c2UgcMODwqRpdsODwqQnLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnQWxrdSBww4PCpGl2w4PCpCcsICdMb3BwdSBww4PCpGl2w4PCpCddLFxuICAgIC4uLkNhbGVuZGFyTG9jYWxlXG4gIH0sXG4gIHRpbWVQaWNrZXJMb2NhbGU6IHtcbiAgICAuLi5UaW1lUGlja2VyTG9jYWxlXG4gIH1cbn07XG5cbi8vIEFsbCBzZXR0aW5ncyBhdDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vYmxvYi9tYXN0ZXIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9sb2NhbGUvZXhhbXBsZS5qc29uXG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyBzaXZ1JyxcbiAganVtcF90bzogJ01lbmUnLFxuICBqdW1wX3RvX2NvbmZpcm06ICdQb3R2cmRpdGUnLFxuICBwYWdlOiAnJyxcblxuICAvLyBQYWdpbmF0aW9uLmpzeFxuICBwcmV2X3BhZ2U6ICdFZGVsbGluZW4gc2l2dScsXG4gIG5leHRfcGFnZTogJ1NldXJhYXZhIHNpdnUnLFxuICBwcmV2XzU6ICdFZGVsbGlzZXQgNSBzaXZ1YScsXG4gIG5leHRfNTogJ1NldXJhYXZhdCA1IHNpdnVhJyxcbiAgcHJldl8zOiAnRWRlbGxpc2V0IDMgc2l2dWEnLFxuICBuZXh0XzM6ICdTZXVyYWF2YXQgMyBzaXZ1YSdcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyIGZyb20gJy4vY2FsZW5kYXIvZmlfRkknO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi9kYXRlLXBpY2tlci9maV9GSSc7XG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tICcuL3BhZ2luYXRpb24vZmlfRkknO1xuaW1wb3J0IFRpbWVQaWNrZXIgZnJvbSAnLi90aW1lLXBpY2tlci9maV9GSSc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbG9jYWxlOiAnZmknLFxuICBQYWdpbmF0aW9uLFxuICBEYXRlUGlja2VyLFxuICBUaW1lUGlja2VyLFxuICBDYWxlbmRhcixcbiAgVGFibGU6IHtcbiAgICBmaWx0ZXJUaXRsZTogJ1N1b2RhdHVzIHZhbGlra28nLFxuICAgIGZpbHRlckNvbmZpcm06ICdPSycsXG4gICAgZmlsdGVyUmVzZXQ6ICdUeWhqZW5uw4PCpCcsXG4gICAgc2VsZWN0QWxsOiAnVmFsaXRzZSBrYWlra2knLFxuICAgIHNlbGVjdEludmVydDogJ1ZhbGl0c2UgcMODwqRpbnZhc3RvaW4nLFxuICAgIHNvcnRUaXRsZTogJ0xhaml0dGVsZSdcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ1BlcnV1dGEnLFxuICAgIGp1c3RPa1RleHQ6ICdPSydcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnUGVydXV0YSdcbiAgfSxcbiAgVHJhbnNmZXI6IHtcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ0V0c2kgdMODwqTDg8KkbHTDg8KkJyxcbiAgICBpdGVtVW5pdDogJ2tvaGRlJyxcbiAgICBpdGVtc1VuaXQ6ICdrb2hkZXR0YSdcbiAgfSxcbiAgVXBsb2FkOiB7XG4gICAgdXBsb2FkaW5nOiAnTMODwqRoZXRldMODwqTDg8Kkbi4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ1BvaXN0YSB0aWVkb3N0bycsXG4gICAgdXBsb2FkRXJyb3I6ICdWaXJoZSBsw4PCpGhldHlrc2Vzc8ODwqQnLFxuICAgIHByZXZpZXdGaWxlOiAnRXNpa2F0c2VsZSB0aWVkb3N0b2EnXG4gIH0sXG4gIEVtcHR5OiB7XG4gICAgZGVzY3JpcHRpb246ICdFaSBrb2h0ZWl0YSdcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnQXVqb3VyZFxcJ2h1aScsXG4gIG5vdzogJ01haW50ZW5hbnQnLFxuICBiYWNrVG9Ub2RheTogJ0F1am91cmRcXCdodWknLFxuICBvazogJ09rJyxcbiAgY2xlYXI6ICdSw4PCqXRhYmxpcicsXG4gIG1vbnRoOiAnTW9pcycsXG4gIHllYXI6ICdBbm7Dg8KpZScsXG4gIHRpbWVTZWxlY3Q6ICdTw4PCqWxlY3Rpb25uZXIgbFxcJ2hldXJlJyxcbiAgZGF0ZVNlbGVjdDogJ1PDg8KpbGVjdGlvbm5lciBsXFwnaGV1cmUnLFxuICBtb250aFNlbGVjdDogJ0Nob2lzaXNzZXogdW4gbW9pcycsXG4gIHllYXJTZWxlY3Q6ICdDaG9pc2lzc2V6IHVuZSBhbm7Dg8KpZScsXG4gIGRlY2FkZVNlbGVjdDogJ0Nob2lzaXNzZXogdW5lIGTDg8KpY2VubmllJyxcbiAgeWVhckZvcm1hdDogJ1lZWVknLFxuICBkYXRlRm9ybWF0OiAnRC9NL1lZWVknLFxuICBkYXlGb3JtYXQ6ICdEJyxcbiAgZGF0ZVRpbWVGb3JtYXQ6ICdEL00vWVlZWSBISDptbTpzcycsXG4gIG1vbnRoQmVmb3JlWWVhcjogdHJ1ZSxcbiAgcHJldmlvdXNNb250aDogJ01vaXMgcHLDg8KpY8ODwqlkZW50IChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnTW9pcyBzdWl2YW50IChQYWdlRG93biknLFxuICBwcmV2aW91c1llYXI6ICdBbm7Dg8KpZSBwcsODwqljw4PCqWRlbnRlIChDdHJsICsgZ2F1Y2hlKScsXG4gIG5leHRZZWFyOiAnQW5uw4PCqWUgcHJvY2hhaW5lIChDdHJsICsgZHJvaXRlKScsXG4gIHByZXZpb3VzRGVjYWRlOiAnRMODwqljZW5uaWUgcHLDg8KpY8ODwqlkZW50ZScsXG4gIG5leHREZWNhZGU6ICdEw4PCqWNlbm5pZSBzdWl2YW50ZScsXG4gIHByZXZpb3VzQ2VudHVyeTogJ1Npw4PCqGNsZSBwcsODwqljw4PCqWRlbnQnLFxuICBuZXh0Q2VudHVyeTogJ1Npw4PCqGNsZSBzdWl2YW50J1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5jb25zdCBsb2NhbGUgPSB7XG4gIHBsYWNlaG9sZGVyOiAnU8ODwqlsZWN0aW9ubmVyIGxcXCdoZXVyZSdcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXJMb2NhbGUgZnJvbSAnLi4vY2FsZW5kYXIvZnJfQkUnO1xuaW1wb3J0IFRpbWVQaWNrZXJMb2NhbGUgZnJvbSAnLi4vdGltZS1waWNrZXIvZnJfQkUnO1xuXG4vLyBNZXJnZSBpbnRvIGEgbG9jYWxlIG9iamVjdFxuY29uc3QgbG9jYWxlID0ge1xuICBsYW5nOiB7XG4gICAgcGxhY2Vob2xkZXI6ICdTw4PCqWxlY3Rpb25uZXIgdW5lIGRhdGUnLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnRGF0ZSBkZSBkw4PCqWJ1dCcsICdEYXRlIGRlIGZpbiddLFxuICAgIC4uLkNhbGVuZGFyTG9jYWxlXG4gIH0sXG4gIHRpbWVQaWNrZXJMb2NhbGU6IHtcbiAgICAuLi5UaW1lUGlja2VyTG9jYWxlXG4gIH1cbn07XG5cbi8vIEFsbCBzZXR0aW5ncyBhdDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzQyNFxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJy8gcGFnZScsXG4gIGp1bXBfdG86ICdBbGxlciDDg8KgJyxcbiAganVtcF90b19jb25maXJtOiAnY29uZmlybWVyJyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnUGFnZSBwcsODwqljw4PCqWRlbnRlJyxcbiAgbmV4dF9wYWdlOiAnUGFnZSBzdWl2YW50ZScsXG4gIHByZXZfNTogJzUgUGFnZXMgcHLDg8KpY8ODwqlkZW50ZXMnLFxuICBuZXh0XzU6ICc1IFBhZ2VzIHN1aXZhbnRlcycsXG4gIHByZXZfMzogJzMgUGFnZXMgcHLDg8KpY8ODwqlkZW50ZXMnLFxuICBuZXh0XzM6ICczIFBhZ2VzIHN1aXZhbnRlcydcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyIGZyb20gJy4vY2FsZW5kYXIvZnJfQkUnO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi9kYXRlLXBpY2tlci9mcl9CRSc7XG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tICcuL3BhZ2luYXRpb24vZnJfQkUnO1xuaW1wb3J0IFRpbWVQaWNrZXIgZnJvbSAnLi90aW1lLXBpY2tlci9mcl9CRSc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbG9jYWxlOiAnZnInLFxuICBQYWdpbmF0aW9uLFxuICBEYXRlUGlja2VyLFxuICBUaW1lUGlja2VyLFxuICBDYWxlbmRhcixcbiAgVGFibGU6IHtcbiAgICBmaWx0ZXJUaXRsZTogJ0ZpbHRyZXInLFxuICAgIGZpbHRlckNvbmZpcm06ICdPSycsXG4gICAgZmlsdGVyUmVzZXQ6ICdSw4PCqWluaXRpYWxpc2VyJ1xuICB9LFxuICBNb2RhbDoge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnQW5udWxlcicsXG4gICAganVzdE9rVGV4dDogJ09LJ1xuICB9LFxuICBQb3Bjb25maXJtOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdBbm51bGVyJ1xuICB9LFxuICBUcmFuc2Zlcjoge1xuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnUmVjaGVyY2hlJyxcbiAgICBpdGVtVW5pdDogJ8ODwqlsw4PCqW1lbnQnLFxuICAgIGl0ZW1zVW5pdDogJ8ODwqlsw4PCqW1lbnRzJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnQXVjdW5lIGRvbm7Dg8KpZSdcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnQXVqb3VyZFxcJ2h1aScsXG4gIG5vdzogJ01haW50ZW5hbnQnLFxuICBiYWNrVG9Ub2RheTogJ0F1am91cmRcXCdodWknLFxuICBvazogJ09rJyxcbiAgY2xlYXI6ICdSw4PCqXRhYmxpcicsXG4gIG1vbnRoOiAnTW9pcycsXG4gIHllYXI6ICdBbm7Dg8KpZScsXG4gIHRpbWVTZWxlY3Q6ICdTw4PCqWxlY3Rpb25uZXIgbFxcJ2hldXJlJyxcbiAgZGF0ZVNlbGVjdDogJ1PDg8KpbGVjdGlvbm5lciBsXFwnaGV1cmUnLFxuICBtb250aFNlbGVjdDogJ0Nob2lzaXNzZXogdW4gbW9pcycsXG4gIHllYXJTZWxlY3Q6ICdDaG9pc2lzc2V6IHVuZSBhbm7Dg8KpZScsXG4gIGRlY2FkZVNlbGVjdDogJ0Nob2lzaXNzZXogdW5lIGTDg8KpY2VubmllJyxcbiAgeWVhckZvcm1hdDogJ1lZWVknLFxuICBkYXRlRm9ybWF0OiAnREQvTU0vWVlZWScsXG4gIGRheUZvcm1hdDogJ0REJyxcbiAgZGF0ZVRpbWVGb3JtYXQ6ICdERC9NTS9ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnTW9pcyBwcsODwqljw4PCqWRlbnQgKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICdNb2lzIHN1aXZhbnQgKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ0FubsODwqllIHByw4PCqWPDg8KpZGVudGUgKEN0cmwgKyBnYXVjaGUpJyxcbiAgbmV4dFllYXI6ICdBbm7Dg8KpZSBwcm9jaGFpbmUgKEN0cmwgKyBkcm9pdGUpJyxcbiAgcHJldmlvdXNEZWNhZGU6ICdEw4PCqWNlbm5pZSBwcsODwqljw4PCqWRlbnRlJyxcbiAgbmV4dERlY2FkZTogJ0TDg8KpY2VubmllIHN1aXZhbnRlJyxcbiAgcHJldmlvdXNDZW50dXJ5OiAnU2nDg8KoY2xlIHByw4PCqWPDg8KpZGVudCcsXG4gIG5leHRDZW50dXJ5OiAnU2nDg8KoY2xlIHN1aXZhbnQnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICdTw4PCqWxlY3Rpb25uZXIgbFxcJ2hldXJlJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9mcl9GUic7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9mcl9GUic7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1PDg8KpbGVjdGlvbm5lciB1bmUgZGF0ZScsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWydEYXRlIGRlIGTDg8KpYnV0JywgJ0RhdGUgZGUgZmluJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvNDI0XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyBwYWdlJyxcbiAganVtcF90bzogJ0FsbGVyIMODwqAnLFxuICBqdW1wX3RvX2NvbmZpcm06ICdjb25maXJtZXInLFxuICBwYWdlOiAnJyxcblxuICAvLyBQYWdpbmF0aW9uLmpzeFxuICBwcmV2X3BhZ2U6ICdQYWdlIHByw4PCqWPDg8KpZGVudGUnLFxuICBuZXh0X3BhZ2U6ICdQYWdlIHN1aXZhbnRlJyxcbiAgcHJldl81OiAnNSBQYWdlcyBwcsODwqljw4PCqWRlbnRlcycsXG4gIG5leHRfNTogJzUgUGFnZXMgc3VpdmFudGVzJyxcbiAgcHJldl8zOiAnMyBQYWdlcyBwcsODwqljw4PCqWRlbnRlcycsXG4gIG5leHRfMzogJzMgUGFnZXMgc3VpdmFudGVzJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi9jYWxlbmRhci9mcl9GUic7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL2RhdGUtcGlja2VyL2ZyX0ZSJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4vcGFnaW5hdGlvbi9mcl9GUic7XG5pbXBvcnQgVGltZVBpY2tlciBmcm9tICcuL3RpbWUtcGlja2VyL2ZyX0ZSJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2NhbGU6ICdmcicsXG4gIFBhZ2luYXRpb24sXG4gIERhdGVQaWNrZXIsXG4gIFRpbWVQaWNrZXIsXG4gIENhbGVuZGFyLFxuICBUYWJsZToge1xuICAgIGZpbHRlclRpdGxlOiAnRmlsdHJlcicsXG4gICAgZmlsdGVyQ29uZmlybTogJ09LJyxcbiAgICBmaWx0ZXJSZXNldDogJ1LDg8KpaW5pdGlhbGlzZXInLFxuICAgIHNlbGVjdEFsbDogJ1RvdXQgc8ODwqlsZWN0aW9ubmVyJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICdJbnZlcnNlciBsYSBzw4PCqWxlY3Rpb24nXG4gIH0sXG4gIE1vZGFsOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdBbm51bGVyJyxcbiAgICBqdXN0T2tUZXh0OiAnT0snXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ0FubnVsZXInXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdSZWNoZXJjaGUnLFxuICAgIGl0ZW1Vbml0OiAnw4PCqWzDg8KpbWVudCcsXG4gICAgaXRlbXNVbml0OiAnw4PCqWzDg8KpbWVudHMnXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ1TDg8KpbMODwql2ZXJzZW1lbnQgZW4gY291cnMuLi4nLFxuICAgIHJlbW92ZUZpbGU6ICdTdXBwcmltZXInLFxuICAgIHVwbG9hZEVycm9yOiAnRXJyZXVyIGRlIHTDg8KpbMODwql2ZXJzZW1lbnQnLFxuICAgIHByZXZpZXdGaWxlOiAnQWZmaWNoZXIgbFxcJ2FwZXLDg8KndSBkdSBmaWNoaWVyJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnQXVjdW5lIGRvbm7Dg8KpZSdcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnw4PCjSBkYWcnLFxuICBub3c6ICdOw4PCum5hJyxcbiAgYmFja1RvVG9kYXk6ICdUaWwgYmFrYSB0aWwgZGFnc2lucyDDg8KtIGRhZycsXG4gIG9rOiAnw4PCjSBsYWdpJyxcbiAgY2xlYXI6ICdIcmVpbnNhJyxcbiAgbW9udGg6ICdNw4PCoW51w4PCsHVyJyxcbiAgeWVhcjogJ8ODwoFyJyxcbiAgdGltZVNlbGVjdDogJ1ZlbGphIHTDg8KtbWEnLFxuICBkYXRlU2VsZWN0OiAnVmVsamEgZGFnJyxcbiAgbW9udGhTZWxlY3Q6ICdWZWxqYSBtw4PCoW51w4PCsCcsXG4gIHllYXJTZWxlY3Q6ICdWZWxqYSDDg8KhcicsXG4gIGRlY2FkZVNlbGVjdDogJ1ZlbGphIMODwqFyYXR1ZycsXG4gIHllYXJGb3JtYXQ6ICdZWVlZJyxcbiAgZGF0ZUZvcm1hdDogJ0QvTS9ZWVlZJyxcbiAgZGF5Rm9ybWF0OiAnRCcsXG4gIGRhdGVUaW1lRm9ybWF0OiAnRC9NL1lZWVkgSEg6bW06c3MnLFxuICBtb250aEJlZm9yZVllYXI6IHRydWUsXG4gIHByZXZpb3VzTW9udGg6ICdGeXJyaSBtw4PCoW51w4PCsHVyIChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnTsODwqZzdGkgbcODwqFudcODwrB1ciAoUGFnZURvd24pJyxcbiAgcHJldmlvdXNZZWFyOiAnRnlycmEgw4PCoXIgKENvbnRyb2wgKyBsZWZ0KScsXG4gIG5leHRZZWFyOiAnTsODwqZzdGEgw4PCoXIgKENvbnRyb2wgKyByaWdodCknLFxuICBwcmV2aW91c0RlY2FkZTogJ0Z5cnJpIMODwqFyYXR1Z3VyJyxcbiAgbmV4dERlY2FkZTogJ07Dg8Kmc3RpIMODwqFyYXR1Z3VyJyxcbiAgcHJldmlvdXNDZW50dXJ5OiAnRnlycmkgw4PCtmxkJyxcbiAgbmV4dENlbnR1cnk6ICdOw4PCpnN0YSDDg8K2bGQnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICdWZWxqYSB0w4PCrW1hJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9pc19JUyc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9pc19JUyc7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1ZlbGR1IGRhZycsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWydVcHBoYWZzZGFndXInLCAnTG9rYWRhZ3VyJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICcvIHPDg8Ktw4PCsHUnLFxuICBqdW1wX3RvOiAnU8ODwq3Dg8KwYScsXG4gIGp1bXBfdG9fY29uZmlybTogJ3N0YcODwrBmZXN0JyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnRnlycmkgc8ODwq3Dg8KwYScsXG4gIG5leHRfcGFnZTogJ07Dg8Kmc3RhIHPDg8Ktw4PCsGEnLFxuICBwcmV2XzU6ICdUaWwgYmFrYSA1IHPDg8Ktw4PCsHVyJyxcbiAgbmV4dF81OiAnw4PCgWZyYW0gNSBzw4PCrcODwrB1cicsXG4gIHByZXZfMzogJ1RpbCBiYWthIDMgc8ODwq3Dg8KwdXInLFxuICBuZXh0XzM6ICfDg8KBZnJhbSAzIHPDg8Ktw4PCsHVyJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi9jYWxlbmRhci9pc19JUyc7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL2RhdGUtcGlja2VyL2lzX0lTJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4vcGFnaW5hdGlvbi9pc19JUyc7XG5pbXBvcnQgVGltZVBpY2tlciBmcm9tICcuL3RpbWUtcGlja2VyL2lzX0lTJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2NhbGU6ICdpcycsXG4gIFBhZ2luYXRpb24sXG4gIERhdGVQaWNrZXIsXG4gIFRpbWVQaWNrZXIsXG4gIENhbGVuZGFyLFxuICBUYWJsZToge1xuICAgIGZpbHRlclRpdGxlOiAnQWZtYXJrYW5pcicsXG4gICAgZmlsdGVyQ29uZmlybTogJ1N0YcODwrBmZXN0YScsXG4gICAgZmlsdGVyUmVzZXQ6ICdOw4PCumxsc3RpbGxhJyxcbiAgICBzZWxlY3RBbGw6ICdWZWxqYSBhbGx0JyxcbiAgICBzZWxlY3RJbnZlcnQ6ICdWacODwrBzbsODwrphIHZhbGknXG4gIH0sXG4gIE1vZGFsOiB7XG4gICAgb2tUZXh0OiAnw4PCgWZyYW0nLFxuICAgIGNhbmNlbFRleHQ6ICdIw4PCpnR0YSB2acODwrAnLFxuICAgIGp1c3RPa1RleHQ6ICfDg8KNIGxhZ2knXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICfDg8KBZnJhbScsXG4gICAgY2FuY2VsVGV4dDogJ0jDg8KmdHRhIHZpw4PCsCdcbiAgfSxcbiAgVHJhbnNmZXI6IHtcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ0xlaXRhIGjDg8KpcicsXG4gICAgaXRlbVVuaXQ6ICdmw4PCpnJzbGEnLFxuICAgIGl0ZW1zVW5pdDogJ2bDg8KmcnNsdXInXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ0hsZcODwrAgdXBwLi4uJyxcbiAgICByZW1vdmVGaWxlOiAnRmphcmzDg8KmZ2phIHNrcsODwqEnLFxuICAgIHVwbG9hZEVycm9yOiAnVmlsbGEgdmnDg8KwIGHDg8KwIGhsYcODwrBhIHVwcCcsXG4gICAgcHJldmlld0ZpbGU6ICdGb3Jza2/Dg8KwYSBza3LDg8KhJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnRW5naW4gZ8ODwrZnbidcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnT2dnaScsXG4gIG5vdzogJ2FkZXNzbycsXG4gIGJhY2tUb1RvZGF5OiAnVG9ybmEgYWQgb2dnaScsXG4gIG9rOiAnT2snLFxuICBjbGVhcjogJ0NoaWFybycsXG4gIG1vbnRoOiAnTWVzZScsXG4gIHllYXI6ICdBbm5vJyxcbiAgdGltZVNlbGVjdDogJ1NlbGV6aW9uYSBpbCB0ZW1wbycsXG4gIGRhdGVTZWxlY3Q6ICdTZWxlY3QgZGF0ZScsXG4gIG1vbnRoU2VsZWN0OiAnU2VsZXppb25hIGxhIGRhdGEnLFxuICB5ZWFyU2VsZWN0OiAnU2NlZ2xpIHVuIGFubm8nLFxuICBkZWNhZGVTZWxlY3Q6ICdTY2VnbGkgdW4gZGVjZW5uaW8nLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdEL00vWVlZWScsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ0QvTS9ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnSWwgbWVzZSBzY29yc28gKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICdJbCBwcm9zc2ltbyBtZXNlIChQYWdlRG93biknLFxuICBwcmV2aW91c1llYXI6ICdMXFwnYW5ubyBzY29yc28gKENvbnRyb2wgKyBzaW5pc3RyYSknLFxuICBuZXh0WWVhcjogJ0xcXCdhbm5vIHByb3NzaW1vIChDb250cm9sICsgZGVzdHJhKScsXG4gIHByZXZpb3VzRGVjYWRlOiAnVWx0aW1vIGRlY2VubmlvJyxcbiAgbmV4dERlY2FkZTogJ1Byb3NzaW1vIGRlY2VubmlvJyxcbiAgcHJldmlvdXNDZW50dXJ5OiAnU2Vjb2xvIHByZWNlZGVudGUnLFxuICBuZXh0Q2VudHVyeTogJ1Byb3NzaW1vIHNlY29sbydcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ1NlbGV6aW9uYXJlIGlsIHRlbXBvJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9pdF9JVCc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9pdF9JVCc7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1NlbGV6aW9uYXJlIGxhIGRhdGEnLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnRGF0YSBkXFwnaW5pemlvJywgJ0RhdGEgZGkgZmluZSddLFxuICAgIC4uLkNhbGVuZGFyTG9jYWxlXG4gIH0sXG4gIHRpbWVQaWNrZXJMb2NhbGU6IHtcbiAgICAuLi5UaW1lUGlja2VyTG9jYWxlXG4gIH1cbn07XG5cbi8vIEFsbCBzZXR0aW5ncyBhdDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vaXNzdWVzLzQyNFxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJy8gcGFnaW5hJyxcbiAganVtcF90bzogJ3ZhaSBhJyxcbiAganVtcF90b19jb25maXJtOiAnQ29uZmVybWEnLFxuICBwYWdlOiAnJyxcblxuICAvLyBQYWdpbmF0aW9uLmpzeFxuICBwcmV2X3BhZ2U6ICdQYWdpbmEgcHJlY2VkZW50ZScsXG4gIG5leHRfcGFnZTogJ1BhZ2luYSBzdWNjZXNzaXZhJyxcbiAgcHJldl81OiAnUHJlY2VkZW50ZSA1IHBhZ2luZScsXG4gIG5leHRfNTogJ1Byb3NzaW1lIDUgcGFnaW5lJyxcbiAgcHJldl8zOiAnUHJlY2VkZW50ZSAzIHBhZ2luZScsXG4gIG5leHRfMzogJ1Byb3NzaW1lIDMgcGFnaW5lJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi9jYWxlbmRhci9pdF9JVCc7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL2RhdGUtcGlja2VyL2l0X0lUJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4vcGFnaW5hdGlvbi9pdF9JVCc7XG5pbXBvcnQgVGltZVBpY2tlciBmcm9tICcuL3RpbWUtcGlja2VyL2l0X0lUJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2NhbGU6ICdpdCcsXG4gIFBhZ2luYXRpb24sXG4gIERhdGVQaWNrZXIsXG4gIFRpbWVQaWNrZXIsXG4gIENhbGVuZGFyLFxuICBUYWJsZToge1xuICAgIGZpbHRlclRpdGxlOiAnTWVuw4PCuSBGaWx0cm8nLFxuICAgIGZpbHRlckNvbmZpcm06ICdPSycsXG4gICAgZmlsdGVyUmVzZXQ6ICdSZXNldCcsXG4gICAgc2VsZWN0QWxsOiAnU2VsZXppb25hIHBhZ2luYSBjb3JyZW50ZScsXG4gICAgc2VsZWN0SW52ZXJ0OiAnSW52ZXJ0aSBzZWxlemlvbmUgbmVsbGEgcGFnaW5hIGNvcnJlbnRlJyxcbiAgICBzb3J0VGl0bGU6ICdPcmRpbmEnXG4gIH0sXG4gIE1vZGFsOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdBbm51bGxhJyxcbiAgICBqdXN0T2tUZXh0OiAnT0snXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ0FubnVsbGEnXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdDZXJjYSBxdWknLFxuICAgIGl0ZW1Vbml0OiAnYXJ0aWNvbG8nLFxuICAgIGl0ZW1zVW5pdDogJ2VsZW1lbnRpJ1xuICB9LFxuICBVcGxvYWQ6IHtcbiAgICB1cGxvYWRpbmc6ICdDYXJpY2FtZW50by4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ1JpbXVvdmkgaWwgZmlsZScsXG4gICAgdXBsb2FkRXJyb3I6ICdFcnJvcmUgZGkgY2FyaWNhbWVudG8nLFxuICAgIHByZXZpZXdGaWxlOiAnQW50ZXByaW1hIGZpbGUnXG4gIH0sXG4gIEVtcHR5OiB7XG4gICAgZGVzY3JpcHRpb246ICdOZXNzdW4gZGF0bydcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnw6TCu8KKw6bCl8KlJyxcbiAgbm93OiAnw6fCj8K+w6XCnMKow6bCmcKCw6XCiMK7JyxcbiAgYmFja1RvVG9kYXk6ICfDpMK7worDpsKXwqXDo8KBwqvDpsKIwrvDo8KCwosnLFxuICBvazogJ8OmwrHCusOlwq7CmicsXG4gIHRpbWVTZWxlY3Q6ICfDpsKZwoLDqcKWwpPDo8KCwpLDqcKBwrjDpsKKwp4nLFxuICBkYXRlU2VsZWN0OiAnw6bCl8Klw6bCmcKCw6PCgsKSw6nCgcK4w6bCisKeJyxcbiAgY2xlYXI6ICfDo8KCwq/Do8KDwqrDo8KCwqInLFxuICBtb250aDogJ8OmwpzCiCcsXG4gIHllYXI6ICfDpcK5wrQnLFxuICBwcmV2aW91c01vbnRoOiAnw6XCicKNw6bCnMKIICjDo8KDwprDo8KDwrzDo8KCwrjDo8KCwqLDo8KDwoPDo8KDwpfDo8KCwq3Do8KDwrwpJyxcbiAgbmV4dE1vbnRoOiAnw6fCv8KMw6bCnMKIICjDo8KDwprDo8KDwrzDo8KCwrjDo8KDwoDDo8KCwqbDo8KDwrPDo8KCwq3Do8KDwrwpJyxcbiAgbW9udGhTZWxlY3Q6ICfDpsKcwojDo8KCwpLDqcKBwrjDpsKKwp4nLFxuICB5ZWFyU2VsZWN0OiAnw6XCucK0w6PCgsKSw6nCgcK4w6bCisKeJyxcbiAgZGVjYWRlU2VsZWN0OiAnw6XCucK0w6TCu8Kjw6PCgsKSw6nCgcK4w6bCisKeJyxcbiAgeWVhckZvcm1hdDogJ1lZWVnDpcK5wrQnLFxuICBkYXlGb3JtYXQ6ICdEw6bCl8KlJyxcbiAgZGF0ZUZvcm1hdDogJ1lZWVnDpcK5wrRNw6bCnMKIRMOmwpfCpScsXG4gIGRhdGVUaW1lRm9ybWF0OiAnWVlZWcOlwrnCtE3DpsKcwohEw6bCl8KlIEhIw6bCmcKCbW3DpcKIwoZzc8OnwqfCkicsXG4gIHByZXZpb3VzWWVhcjogJ8OlwonCjcOlwrnCtCAoQ29udHJvbMOjwoLCksOmworCvMOjwoHCl8OjwoHCqsOjwoHCjMOjwoLCicOlwrfCpsOjwoLCrcOjwoPCvCknLFxuICBuZXh0WWVhcjogJ8Onwr/CjMOlwrnCtCAoQ29udHJvbMOjwoLCksOmworCvMOjwoHCl8OjwoHCqsOjwoHCjMOjwoLCicOlwo/Cs8OjwoLCrcOjwoPCvCknLFxuICBwcmV2aW91c0RlY2FkZTogJ8OlwonCjcOjwoHCrsOlwrnCtMOkwrvCoycsXG4gIG5leHREZWNhZGU6ICfDpsKswqHDo8KBwq7DpcK5wrTDpMK7wqMnLFxuICBwcmV2aW91c0NlbnR1cnk6ICfDpcKJwo3Do8KBwq7DpMK4wpbDp8K0woAnLFxuICBuZXh0Q2VudHVyeTogJ8OmwqzCocOjwoHCrsOkwrjClsOnwrTCgCdcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ8OmwpnCgsOlwojCu8OjwoLCksOpwoHCuMOmworCnidcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXJMb2NhbGUgZnJvbSAnLi4vY2FsZW5kYXIvamFfSlAnO1xuaW1wb3J0IFRpbWVQaWNrZXJMb2NhbGUgZnJvbSAnLi4vdGltZS1waWNrZXIvamFfSlAnO1xuXG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ8OmwpfCpcOkwrvCmMOjwoLCksOpwoHCuMOmworCnicsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWyfDqcKWwovDpcKnwovDpsKXwqXDpMK7wpgnLCAnw6fCtcKCw6TCusKGw6bCl8Klw6TCu8KYJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICcvIMOjwoPCmsOjwoPCvMOjwoLCuCcsXG4gIGp1bXBfdG86ICfDp8KnwrvDpcKLwpUnLFxuICBqdW1wX3RvX2NvbmZpcm06ICfDp8KiwrrDqMKqwo3Do8KBwpnDo8KCwosnLFxuICBwYWdlOiAnw6PCg8Kaw6PCg8K8w6PCgsK4JyxcblxuICAvLyBQYWdpbmF0aW9uLmpzeFxuICBwcmV2X3BhZ2U6ICfDpcKJwo3Do8KBwq7Do8KDwprDo8KDwrzDo8KCwrgnLFxuICBuZXh0X3BhZ2U6ICfDpsKswqHDo8KBwq7Do8KDwprDo8KDwrzDo8KCwrgnLFxuICBwcmV2XzU6ICfDpcKJwo0gNcOjwoPCmsOjwoPCvMOjwoLCuCcsXG4gIG5leHRfNTogJ8OmwqzCoSA1w6PCg8Kaw6PCg8K8w6PCgsK4JyxcbiAgcHJldl8zOiAnw6XCicKNIDPDo8KDwprDo8KDwrzDo8KCwrgnLFxuICBuZXh0XzM6ICfDpsKswqEgM8OjwoPCmsOjwoPCvMOjwoLCuCdcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyIGZyb20gJy4vY2FsZW5kYXIvamFfSlAnO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi9kYXRlLXBpY2tlci9qYV9KUCc7XG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tICcuL3BhZ2luYXRpb24vamFfSlAnO1xuaW1wb3J0IFRpbWVQaWNrZXIgZnJvbSAnLi90aW1lLXBpY2tlci9qYV9KUCc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbG9jYWxlOiAnamEnLFxuICBQYWdpbmF0aW9uLFxuICBEYXRlUGlja2VyLFxuICBUaW1lUGlja2VyLFxuICBDYWxlbmRhcixcbiAgVGFibGU6IHtcbiAgICBmaWx0ZXJUaXRsZTogJ8OjwoPCocOjwoPCi8OjwoPCpcOjwoPCvMOjwoLCksOjwoPClcOjwoLCo8OjwoPCq8OjwoLCv8OjwoPCvCcsXG4gICAgZmlsdGVyQ29uZmlybTogJ09LJyxcbiAgICBmaWx0ZXJSZXNldDogJ8OjwoPCqsOjwoLCu8OjwoPCg8OjwoPCiCcsXG4gICAgc2VsZWN0QWxsOiAnw6PCgcKZw6PCgcK5w6PCgcKmw6PCgsKSw6nCgcK4w6bCisKeJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICfDqcKBwrjDpsKKwp7Do8KCwpLDpcKPwo3DqMK7wqInXG4gIH0sXG4gIE1vZGFsOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICfDo8KCwq3Do8KDwqPDo8KDwrPDo8KCwrvDo8KDwqsnLFxuICAgIGp1c3RPa1RleHQ6ICdPSydcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnw6PCgsKtw6PCg8Kjw6PCg8Kzw6PCgsK7w6PCg8KrJ1xuICB9LFxuICBUcmFuc2Zlcjoge1xuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnw6PCgcKTw6PCgcKTw6PCgsKSw6bCpMKcw6fCtMKiJyxcbiAgICBpdGVtVW5pdDogJ8OjwoLCosOjwoLCpMOjwoPChsOjwoPCoCcsXG4gICAgaXRlbXNVbml0OiAnw6PCgsKiw6PCgsKkw6PCg8KGw6PCg8KgJ1xuICB9LFxuICBVcGxvYWQ6IHtcbiAgICB1cGxvYWRpbmc6ICfDo8KCwqLDo8KDwoPDo8KDwpfDo8KDwq3Do8KDwrzDo8KDwonDpMK4wq0uLi4nLFxuICAgIHJlbW92ZUZpbGU6ICfDo8KDwpXDo8KCwqHDo8KCwqTDo8KDwqvDo8KCwpLDpcKJworDqcKZwqQnLFxuICAgIHVwbG9hZEVycm9yOiAnw6PCgsKiw6PCg8KDw6PCg8KXw6PCg8Ktw6PCg8K8w6PCg8KJw6PCgsKow6PCg8Kpw6PCg8K8JyxcbiAgICBwcmV2aWV3RmlsZTogJ8OjwoPClcOjwoLCocOjwoLCpMOjwoPCq8OjwoLCksOjwoPCl8OjwoPCrMOjwoPCk8OjwoPCpcOjwoPCvCdcbiAgfSxcbiAgRW1wdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJ8OjwoPCh8OjwoPCvMOjwoLCv8OjwoHCjMOjwoHCgsOjwoLCisOjwoHCvsOjwoHCm8OjwoLCkydcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnw6zCmMKkw6vCisKYJyxcbiAgbm93OiAnw63CmMKEw6zCnsKsIMOswovCnMOqwrDCgScsXG4gIGJhY2tUb1RvZGF5OiAnw6zCmMKkw6vCisKYw6vCocKcIMOrwo/CjMOswpXChMOqwrDCgMOqwrjCsCcsXG4gIG9rOiAnw63CmcKVw6zCncK4JyxcbiAgY2xlYXI6ICfDrMKnwoDDrMKawrDDqsK4wrAnLFxuICBtb250aDogJ8OswpvClCcsXG4gIHllYXI6ICfDq8KFwoQnLFxuICB0aW1lU2VsZWN0OiAnw6zCi8Kcw6rCsMKEIMOswoTCoMOtwoPCnScsXG4gIGRhdGVTZWxlY3Q6ICfDq8KCwqDDrMKnwpwgw6zChMKgw63Cg8KdJyxcbiAgbW9udGhTZWxlY3Q6ICfDq8KLwqwgw6zChMKgw63Cg8KdJyxcbiAgeWVhclNlbGVjdDogJ8OswpfCsCDDrMKEwqDDrcKDwp0nLFxuICBkZWNhZGVTZWxlY3Q6ICfDrMKXwrDDq8KMwoAgw6zChMKgw63Cg8KdJyxcbiAgeWVhckZvcm1hdDogJ1lZWVnDq8KFwoQnLFxuICBkYXRlRm9ybWF0OiAnWVlZWS1NTS1ERCcsXG4gIGRheUZvcm1hdDogJ0RvJyxcbiAgZGF0ZVRpbWVGb3JtYXQ6ICdZWVlZLU1NLUREIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiBmYWxzZSxcbiAgcHJldmlvdXNNb250aDogJ8Oswp3CtMOswqDChCDDq8KLwqwgKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICfDq8KLwqTDrMKdwowgw6vCi8KsIChQYWdlRG93biknLFxuICBwcmV2aW91c1llYXI6ICfDrMKdwrTDrMKgwoQgw63ClcK0IChDb250cm9sICsgbGVmdCknLFxuICBuZXh0WWVhcjogJ8OrwovCpMOswp3CjCDDrcKVwrQgKENvbnRyb2wgKyByaWdodCknLFxuICBwcmV2aW91c0RlY2FkZTogJ8Oswp3CtMOswqDChCDDrMKXwrDDq8KMwoAnLFxuICBuZXh0RGVjYWRlOiAnw6vCi8Kkw6zCncKMIMOswpfCsMOrwozCgCcsXG4gIHByZXZpb3VzQ2VudHVyeTogJ8Oswp3CtMOswqDChCDDrMKEwrjDqsK4wrAnLFxuICBuZXh0Q2VudHVyeTogJ8OrwovCpMOswp3CjCDDrMKEwrjDqsK4wrAnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICfDq8KCwqDDrMKnwpwgw6zChMKgw63Cg8KdJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9rb19LUic7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9rb19LUic7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ8OrwoLCoMOswqfCnCDDrMKEwqDDrcKDwp0nLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnw6zCi8Kcw6zCnsKRw6zCncK8JywgJ8OswqLChcOrwqPCjMOswp3CvCddLFxuICAgIC4uLkNhbGVuZGFyTG9jYWxlXG4gIH0sXG4gIHRpbWVQaWNrZXJMb2NhbGU6IHtcbiAgICAuLi5UaW1lUGlja2VyTG9jYWxlXG4gIH1cbn07XG5cbi8vIEFsbCBzZXR0aW5ncyBhdDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vYmxvYi9tYXN0ZXIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9sb2NhbGUvZXhhbXBsZS5qc29uXG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyDDrMKqwr0nLFxuICBqdW1wX3RvOiAnw6zCncK0w6vCj8KZw63ClcKYw6rCuMKwJyxcbiAganVtcF90b19jb25maXJtOiAnw63CmcKVw6zCncK4w63ClcKYw6vCi8KkJyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnw6zCncK0w6zCoMKEIMOtwo7CmMOswp3CtMOswqfCgCcsXG4gIG5leHRfcGFnZTogJ8OrwovCpMOswp3CjCDDrcKOwpjDrMKdwrTDrMKnwoAnLFxuICBwcmV2XzU6ICfDrMKdwrTDrMKgwoQgNSDDrcKOwpjDrMKdwrTDrMKnwoAnLFxuICBuZXh0XzU6ICfDq8KLwqTDrMKdwowgNSDDrcKOwpjDrMKdwrTDrMKnwoAnLFxuICBwcmV2XzM6ICfDrMKdwrTDrMKgwoQgMyDDrcKOwpjDrMKdwrTDrMKnwoAnLFxuICBuZXh0XzM6ICfDq8KLwqTDrMKdwowgMyDDrcKOwpjDrMKdwrTDrMKnwoAnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL2tvX0tSJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIva29fS1InO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL2tvX0tSJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIva29fS1InO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ2tvJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICfDrcKVwoTDrcKEwrAgw6vCqcKUw6vCicK0JyxcbiAgICBmaWx0ZXJDb25maXJtOiAnw63CmcKVw6zCncK4JyxcbiAgICBmaWx0ZXJSZXNldDogJ8OswrTCiMOqwrjCsMOtwpnClCcsXG4gICAgc2VsZWN0QWxsOiAnw6vCqsKow6vCkcKQIMOswoTCoMOtwoPCnScsXG4gICAgc2VsZWN0SW52ZXJ0OiAnw6zChMKgw63Cg8KdIMOrwrDCmMOswqDChCdcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICfDrcKZwpXDrMKdwrgnLFxuICAgIGNhbmNlbFRleHQ6ICfDrMK3wqjDrMKGwownLFxuICAgIGp1c3RPa1RleHQ6ICfDrcKZwpXDrMKdwrgnXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICfDrcKZwpXDrMKdwrgnLFxuICAgIGNhbmNlbFRleHQ6ICfDrMK3wqjDrMKGwownXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICfDrMKXwqzDqsK4wrDDrMKXwpAgw6rCssKAw6zCg8KJw63ClcKYw6zChMK4w6zCmsKUJyxcbiAgICBpdGVtVW5pdDogJ8OqwrDCnCcsXG4gICAgaXRlbXNVbml0OiAnw6rCsMKcJ1xuICB9LFxuICBVcGxvYWQ6IHtcbiAgICB1cGxvYWRpbmc6ICfDrMKXwoXDq8KhwpzDq8KTwpwgw6zCpMKRLi4uJyxcbiAgICByZW1vdmVGaWxlOiAnw63CjMKMw6zCncK8IMOswoLCrcOswqDCnCcsXG4gICAgdXBsb2FkRXJyb3I6ICfDrMKXwoXDq8KhwpzDq8KTwpwgw6zCi8Kkw63CjMKoJyxcbiAgICBwcmV2aWV3RmlsZTogJ8OtwozCjMOswp3CvCDDq8KvwrjDq8KmwqzDq8KzwrTDqsK4wrAnXG4gIH0sXG4gIEVtcHR5OiB7XG4gICAgZGVzY3JpcHRpb246ICfDq8KNwrDDrMKdwrTDrcKEwrAgw6zCl8KGw6zCncKMJ1xuICB9XG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9kYXk6ICdJIGRhZycsXG4gIG5vdzogJ07Dg8KlJyxcbiAgYmFja1RvVG9kYXk6ICdHw4PCpSB0aWwgaSBkYWcnLFxuICBvazogJ09rJyxcbiAgY2xlYXI6ICdBbm51bGxlcicsXG4gIG1vbnRoOiAnTcODwqVuZWQnLFxuICB5ZWFyOiAnw4PChXInLFxuICB0aW1lU2VsZWN0OiAnVmVsZyB0aWRzcHVua3QnLFxuICBkYXRlU2VsZWN0OiAnVmVsZyBkYXRvJyxcbiAgbW9udGhTZWxlY3Q6ICdWZWxnIG3Dg8KlbmVkJyxcbiAgeWVhclNlbGVjdDogJ1ZlbGcgw4PCpXInLFxuICBkZWNhZGVTZWxlY3Q6ICdWZWxnIMODwqVydGknLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdERC5NTS5ZWVlZJyxcbiAgZGF5Rm9ybWF0OiAnREQnLFxuICBkYXRlVGltZUZvcm1hdDogJ0RELk1NLllZWVkgSEg6bW06c3MnLFxuICBtb250aEJlZm9yZVllYXI6IHRydWUsXG4gIHByZXZpb3VzTW9udGg6ICdGb3JyaWdlIG3Dg8KlbmVkKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICdOZXN0ZSBtw4PCpW5lZCAoUGFnZURvd24pJyxcbiAgcHJldmlvdXNZZWFyOiAnRm9ycmlnZSDDg8KlciAoQ29udHJvbCArIGxlZnQpJyxcbiAgbmV4dFllYXI6ICdOZXN0ZSDDg8KlciAoQ29udHJvbCArIHJpZ2h0KScsXG4gIHByZXZpb3VzRGVjYWRlOiAnRm9ycmlnZSB0acODwqVyJyxcbiAgbmV4dERlY2FkZTogJ05lc3RlIHRpw4PCpXInLFxuICBwcmV2aW91c0NlbnR1cnk6ICdGb3JyaWdlIMODwqVyaHVuZHJlJyxcbiAgbmV4dENlbnR1cnk6ICdOZXN0ZSDDg8Klcmh1bmRyZSdcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ1ZlbGcgdGlkJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9uYl9OTyc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9uYl9OTyc7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1ZlbGcgZGF0bycsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWydTdGFydGRhdG8nLCAnU2x1dHRkYXRvJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICcvIHNpZGUnLFxuICBqdW1wX3RvOiAnR8ODwqUgdGlsIHNpZGUnLFxuICBwYWdlOiAnJyxcblxuICAvLyBQYWdpbmF0aW9uLmpzeFxuICBwcmV2X3BhZ2U6ICdGb3JyaWdlIHNpZGUnLFxuICBuZXh0X3BhZ2U6ICdOZXN0ZSBzaWRlJyxcbiAgcHJldl81OiAnNSBmb3JyaWdlJyxcbiAgbmV4dF81OiAnNSBuZXN0ZScsXG4gIHByZXZfMzogJzMgZm9ycmlnZScsXG4gIG5leHRfMzogJzMgbmVzdGUnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL25iX05PJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvbmJfTk8nO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL25iX05PJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvbmJfTk8nO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ25iJyxcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFBhZ2luYXRpb24sXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0ZXJtZW55JyxcbiAgICBmaWx0ZXJDb25maXJtOiAnT0snLFxuICAgIGZpbHRlclJlc2V0OiAnTnVsbHN0aWxsJyxcbiAgICBzZWxlY3RBbGw6ICdWZWxnIGFsbGUnLFxuICAgIHNlbGVjdEludmVydDogJ0ludmVydGVyIHZhbGcnXG4gIH0sXG4gIE1vZGFsOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdBdmJyeXQnLFxuICAgIGp1c3RPa1RleHQ6ICdPSydcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnQXZicnl0J1xuICB9LFxuICBUcmFuc2Zlcjoge1xuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU8ODwrhrIGhlcicsXG4gICAgaXRlbVVuaXQ6ICdlbGVtZW50JyxcbiAgICBpdGVtc1VuaXQ6ICdlbGVtZW50ZXInXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ0xhc3RlciBvcHAuLi4nLFxuICAgIHJlbW92ZUZpbGU6ICdGamVybiBmaWwnLFxuICAgIHVwbG9hZEVycm9yOiAnRmVpbCB2ZWQgb3BwbGFzdG5pbmcnLFxuICAgIHByZXZpZXdGaWxlOiAnRm9yaMODwqVuZHN2aXNuaW5nJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnSW5nZW4gZGF0YSdcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnVmFuZGFhZycsXG4gIG5vdzogJ051JyxcbiAgYmFja1RvVG9kYXk6ICdUZXJ1ZyBuYWFyIHZhbmRhYWcnLFxuICBvazogJ09rJyxcbiAgY2xlYXI6ICdSZXNldCcsXG4gIG1vbnRoOiAnTWFhbmQnLFxuICB5ZWFyOiAnSmFhcicsXG4gIHRpbWVTZWxlY3Q6ICdTZWxlY3RlZXIgdGlqZCcsXG4gIGRhdGVTZWxlY3Q6ICdTZWxlY3RlZXIgZGF0dW0nLFxuICBtb250aFNlbGVjdDogJ0tpZXMgZWVuIG1hYW5kJyxcbiAgeWVhclNlbGVjdDogJ0tpZXMgZWVuIGphYXInLFxuICBkZWNhZGVTZWxlY3Q6ICdLaWVzIGVlbiBkZWNlbm5pdW0nLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdELU0tWVlZWScsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ0QtTS1ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnVm9yaWdlIG1hYW5kIChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnVm9sZ2VuZGUgbWFhbmQgKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ1ZvcmlnIGphYXIgKENvbnRyb2wgKyBsZWZ0KScsXG4gIG5leHRZZWFyOiAnVm9sZ2VuZCBqYWFyIChDb250cm9sICsgcmlnaHQpJyxcbiAgcHJldmlvdXNEZWNhZGU6ICdWb3JpZyBkZWNlbm5pdW0nLFxuICBuZXh0RGVjYWRlOiAnVm9sZ2VuZCBkZWNlbm5pdW0nLFxuICBwcmV2aW91c0NlbnR1cnk6ICdWb3JpZ2UgZWV1dycsXG4gIG5leHRDZW50dXJ5OiAnVm9sZ2VuZGUgZWV1dydcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ1NlbGVjdGVlciB0aWpkJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9ubF9CRSc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9ubF9CRSc7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ1NlbGVjdGVlciBkYXR1bScsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWydCZWdpbiBkYXR1bScsICdFaW5kIGRhdHVtJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9pc3N1ZXMvNDI0XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyBwYWdpbmEnLFxuICBqdW1wX3RvOiAnR2EgbmFhcicsXG4gIGp1bXBfdG9fY29uZmlybTogJ2JldmVzdGlnZW4nLFxuICBwYWdlOiAnJyxcblxuICAvLyBQYWdpbmF0aW9uLmpzeFxuICBwcmV2X3BhZ2U6ICdWb3JpZ2UgcGFnaW5hJyxcbiAgbmV4dF9wYWdlOiAnVm9sZ2VuZGUgcGFnaW5hJyxcbiAgcHJldl81OiAnVm9yaWdlIDUgcGFnaW5hXFwncycsXG4gIG5leHRfNTogJ1ZvbGdlbmRlIDUgcGFnaW5hXFwncycsXG4gIHByZXZfMzogJ1ZvcmlnZSAzIHBhZ2luYVxcJ3MnLFxuICBuZXh0XzM6ICdWb2xnZW5kZSAzIHBhZ2luYVxcJ3MnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL25sX0JFJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvbmxfQkUnO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL25sX0JFJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvbmxfQkUnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ25sLWJlJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0ZXJNZW51JyxcbiAgICBmaWx0ZXJDb25maXJtOiAnT0snLFxuICAgIGZpbHRlclJlc2V0OiAnUmVzZXQnLFxuICAgIHNlbGVjdEFsbDogJ1NlbGVjdGVlciBodWlkaWdlIHBhZ2luYScsXG4gICAgc2VsZWN0SW52ZXJ0OiAnU2VsZWN0ZWVyIGh1aWRpZ2UgcGFnaW5hJ1xuICB9LFxuICBNb2RhbDoge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnQW5udWxlZXInLFxuICAgIGp1c3RPa1RleHQ6ICdPSydcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnQW5udWxlZXInXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdab2VrIGhpZXInLFxuICAgIGl0ZW1Vbml0OiAnaXRlbScsXG4gICAgaXRlbXNVbml0OiAnaXRlbXMnXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ1VwbG9hZGVuLi4uJyxcbiAgICByZW1vdmVGaWxlOiAnQmVzdGFuZCB2ZXJ3aWpkZXJlbicsXG4gICAgdXBsb2FkRXJyb3I6ICdVcGxvYWQgZm91dCcsXG4gICAgcHJldmlld0ZpbGU6ICdQcmV2aWV3IGJlc3RhbmQnXG4gIH0sXG4gIEVtcHR5OiB7XG4gICAgZGVzY3JpcHRpb246ICdHZWVuIGdlZ2V2ZW5zJ1xuICB9XG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9kYXk6ICdWYW5kYWFnJyxcbiAgbm93OiAnTnUnLFxuICBiYWNrVG9Ub2RheTogJ1RlcnVnIG5hYXIgdmFuZGFhZycsXG4gIG9rOiAnT2snLFxuICBjbGVhcjogJ1Jlc2V0JyxcbiAgbW9udGg6ICdNYWFuZCcsXG4gIHllYXI6ICdKYWFyJyxcbiAgdGltZVNlbGVjdDogJ1NlbGVjdGVlciB0aWpkJyxcbiAgZGF0ZVNlbGVjdDogJ1NlbGVjdGVlciBkYXR1bScsXG4gIG1vbnRoU2VsZWN0OiAnS2llcyBlZW4gbWFhbmQnLFxuICB5ZWFyU2VsZWN0OiAnS2llcyBlZW4gamFhcicsXG4gIGRlY2FkZVNlbGVjdDogJ0tpZXMgZWVuIGRlY2Vubml1bScsXG4gIHllYXJGb3JtYXQ6ICdZWVlZJyxcbiAgZGF0ZUZvcm1hdDogJ0QtTS1ZWVlZJyxcbiAgZGF5Rm9ybWF0OiAnRCcsXG4gIGRhdGVUaW1lRm9ybWF0OiAnRC1NLVlZWVkgSEg6bW06c3MnLFxuICBtb250aEJlZm9yZVllYXI6IHRydWUsXG4gIHByZXZpb3VzTW9udGg6ICdWb3JpZ2UgbWFhbmQgKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICdWb2xnZW5kZSBtYWFuZCAoUGFnZURvd24pJyxcbiAgcHJldmlvdXNZZWFyOiAnVm9yaWcgamFhciAoQ29udHJvbCArIGxlZnQpJyxcbiAgbmV4dFllYXI6ICdWb2xnZW5kIGphYXIgKENvbnRyb2wgKyByaWdodCknLFxuICBwcmV2aW91c0RlY2FkZTogJ1ZvcmlnIGRlY2Vubml1bScsXG4gIG5leHREZWNhZGU6ICdWb2xnZW5kIGRlY2Vubml1bScsXG4gIHByZXZpb3VzQ2VudHVyeTogJ1ZvcmlnZSBlZXV3JyxcbiAgbmV4dENlbnR1cnk6ICdWb2xnZW5kZSBlZXV3J1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5jb25zdCBsb2NhbGUgPSB7XG4gIHBsYWNlaG9sZGVyOiAnU2VsZWN0ZWVyIHRpamQnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyTG9jYWxlIGZyb20gJy4uL2NhbGVuZGFyL25sX05MJztcbmltcG9ydCBUaW1lUGlja2VyTG9jYWxlIGZyb20gJy4uL3RpbWUtcGlja2VyL25sX05MJztcblxuLy8gTWVyZ2UgaW50byBhIGxvY2FsZSBvYmplY3RcbmNvbnN0IGxvY2FsZSA9IHtcbiAgbGFuZzoge1xuICAgIHBsYWNlaG9sZGVyOiAnU2VsZWN0ZWVyIGRhdHVtJyxcbiAgICByYW5nZVBsYWNlaG9sZGVyOiBbJ0JlZ2luIGRhdHVtJywgJ0VpbmQgZGF0dW0nXSxcbiAgICAuLi5DYWxlbmRhckxvY2FsZVxuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7XG4gICAgLi4uVGltZVBpY2tlckxvY2FsZVxuICB9XG59O1xuXG4vLyBBbGwgc2V0dGluZ3MgYXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2lzc3Vlcy80MjRcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICcvIHBhZ2luYScsXG4gIGp1bXBfdG86ICdHYSBuYWFyJyxcbiAganVtcF90b19jb25maXJtOiAnYmV2ZXN0aWdlbicsXG4gIHBhZ2U6ICcnLFxuXG4gIC8vIFBhZ2luYXRpb24uanN4XG4gIHByZXZfcGFnZTogJ1ZvcmlnZSBwYWdpbmEnLFxuICBuZXh0X3BhZ2U6ICdWb2xnZW5kZSBwYWdpbmEnLFxuICBwcmV2XzU6ICdWb3JpZ2UgNSBwYWdpbmFcXCdzJyxcbiAgbmV4dF81OiAnVm9sZ2VuZGUgNSBwYWdpbmFcXCdzJyxcbiAgcHJldl8zOiAnVm9yaWdlIDMgcGFnaW5hXFwncycsXG4gIG5leHRfMzogJ1ZvbGdlbmRlIDMgcGFnaW5hXFwncydcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyIGZyb20gJy4vY2FsZW5kYXIvbmxfTkwnO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi9kYXRlLXBpY2tlci9ubF9OTCc7XG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tICcuL3BhZ2luYXRpb24vbmxfTkwnO1xuaW1wb3J0IFRpbWVQaWNrZXIgZnJvbSAnLi90aW1lLXBpY2tlci9ubF9OTCc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbG9jYWxlOiAnbmwnLFxuICBQYWdpbmF0aW9uLFxuICBEYXRlUGlja2VyLFxuICBUaW1lUGlja2VyLFxuICBDYWxlbmRhcixcbiAgVGFibGU6IHtcbiAgICBmaWx0ZXJUaXRsZTogJ0ZpbHRlcmVuJyxcbiAgICBmaWx0ZXJDb25maXJtOiAnT0snLFxuICAgIGZpbHRlclJlc2V0OiAnUmVzZXQnLFxuICAgIHNlbGVjdEFsbDogJ1NlbGVjdGVlciBodWlkaWdlIHBhZ2luYScsXG4gICAgc2VsZWN0SW52ZXJ0OiAnRGVzZWxlY3RlZXIgaHVpZGlnZSBwYWdpbmEnXG4gIH0sXG4gIE1vZGFsOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdBbm51bGVyZW4nLFxuICAgIGp1c3RPa1RleHQ6ICdPSydcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnQW5udWxlcmVuJ1xuICB9LFxuICBUcmFuc2Zlcjoge1xuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnWm9la2VuJyxcbiAgICBpdGVtVW5pdDogJ2l0ZW0nLFxuICAgIGl0ZW1zVW5pdDogJ2l0ZW1zJ1xuICB9LFxuICBVcGxvYWQ6IHtcbiAgICB1cGxvYWRpbmc6ICdVcGxvYWRlbi4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ1ZlcndpamRlciBiZXN0YW5kJyxcbiAgICB1cGxvYWRFcnJvcjogJ0ZvdXQgdGlqZGVucyB1cGxvYWRlbicsXG4gICAgcHJldmlld0ZpbGU6ICdCZWtpamsgYmVzdGFuZCdcbiAgfSxcbiAgRW1wdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJ0dlZW4gZ2VnZXZlbnMnXG4gIH1cbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ0R6aXNpYWonLFxuICBub3c6ICdUZXJheicsXG4gIGJhY2tUb1RvZGF5OiAnVXN0YXcgZHppc2lhaicsXG4gIG9rOiAnT2snLFxuICBjbGVhcjogJ1d5Y3p5w4XCm8OEwocnLFxuICBtb250aDogJ01pZXNpw4TChWMnLFxuICB5ZWFyOiAnUm9rJyxcbiAgdGltZVNlbGVjdDogJ1VzdGF3IGN6YXMnLFxuICBkYXRlU2VsZWN0OiAnVXN0YXcgZGF0w4TCmScsXG4gIG1vbnRoU2VsZWN0OiAnV3liaWVyeiBtaWVzacOEwoVjJyxcbiAgeWVhclNlbGVjdDogJ1d5Ymllcnogcm9rJyxcbiAgZGVjYWRlU2VsZWN0OiAnV3liaWVyeiBkZWthZMOEwpknLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdEL00vWVlZWScsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ0QvTS9ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnUG9wcnplZG5pIG1pZXNpw4TChWMgKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICdOYXN0w4TCmXBueSBtaWVzacOEwoVjIChQYWdlRG93biknLFxuICBwcmV2aW91c1llYXI6ICdPc3RhdG5pIHJvayAoQ3RybCArIGxlZnQpJyxcbiAgbmV4dFllYXI6ICdOYXN0w4TCmXBueSByb2sgKEN0cmwgKyByaWdodCknLFxuICBwcmV2aW91c0RlY2FkZTogJ09zdGF0bmlhIGRla2FkYScsXG4gIG5leHREZWNhZGU6ICdOYXN0w4TCmXBuYSBkZWthZGEnLFxuICBwcmV2aW91c0NlbnR1cnk6ICdPc3RhdG5pIHdpZWsnLFxuICBuZXh0Q2VudHVyeTogJ05hc3TDhMKZcG55IHdpZWsnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICdXeWJpZXJ6IGdvZHppbsOEwpknXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyTG9jYWxlIGZyb20gJy4uL2NhbGVuZGFyL3BsX1BMJztcbmltcG9ydCBUaW1lUGlja2VyTG9jYWxlIGZyb20gJy4uL3RpbWUtcGlja2VyL3BsX1BMJztcblxuLy8gTWVyZ2UgaW50byBhIGxvY2FsZSBvYmplY3RcbmNvbnN0IGxvY2FsZSA9IHtcbiAgbGFuZzoge1xuICAgIHBsYWNlaG9sZGVyOiAnV3liaWVyeiBkYXTDhMKZJyxcbiAgICByYW5nZVBsYWNlaG9sZGVyOiBbJ0RhdGEgcG9jesOEwoV0a293YScsICdEYXRhIGtvw4XChGNvd2EnXSxcbiAgICAuLi5DYWxlbmRhckxvY2FsZVxuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7XG4gICAgLi4uVGltZVBpY2tlckxvY2FsZVxuICB9XG59O1xuXG4vLyBBbGwgc2V0dGluZ3MgYXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2Jsb2IvbWFzdGVyL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvbG9jYWxlL2V4YW1wbGUuanNvblxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJy8gc3Ryb27DhMKZJyxcbiAganVtcF90bzogJ0lkw4XCuiBkbycsXG4gIGp1bXBfdG9fY29uZmlybTogJ3BvdHdpZXJkemHDhMKHJyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnUG9wcnplZG5pYSBzdHJvbmEnLFxuICBuZXh0X3BhZ2U6ICdOYXN0w4TCmXBuYSBzdHJvbmEnLFxuICBwcmV2XzU6ICdQb3ByemVkbmllIDUgc3Ryb24nLFxuICBuZXh0XzU6ICdOYXN0w4TCmXBuZSA1IHN0cm9uJyxcbiAgcHJldl8zOiAnUG9wcnplZG5pZSAzIHN0cm9ueScsXG4gIG5leHRfMzogJ05hc3TDhMKZcG5lIDMgc3Ryb255J1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi9jYWxlbmRhci9wbF9QTCc7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL2RhdGUtcGlja2VyL3BsX1BMJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4vcGFnaW5hdGlvbi9wbF9QTCc7XG5pbXBvcnQgVGltZVBpY2tlciBmcm9tICcuL3RpbWUtcGlja2VyL3BsX1BMJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2NhbGU6ICdwbCcsXG4gIFBhZ2luYXRpb24sXG4gIERhdGVQaWNrZXIsXG4gIFRpbWVQaWNrZXIsXG4gIENhbGVuZGFyLFxuICBUYWJsZToge1xuICAgIGZpbHRlclRpdGxlOiAnTWVudSBmaWx0cmEnLFxuICAgIGZpbHRlckNvbmZpcm06ICdPSycsXG4gICAgZmlsdGVyUmVzZXQ6ICdXeWN6ecOFwpvDhMKHJyxcbiAgICBzZWxlY3RBbGw6ICdaYXpuYWN6IGJpZcOFwrzDhMKFY8OEwoUgc3Ryb27DhMKZJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICdPZHdyw4PCs8OEwocgemF6bmFjemVuaWUnXG4gIH0sXG4gIE1vZGFsOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdBbnVsdWonLFxuICAgIGp1c3RPa1RleHQ6ICdPSydcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnQW51bHVqJ1xuICB9LFxuICBUcmFuc2Zlcjoge1xuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU3p1a2FqJyxcbiAgICBpdGVtVW5pdDogJ29iaWVrdCcsXG4gICAgaXRlbXNVbml0OiAnb2JpZWt0eSdcbiAgfSxcbiAgVXBsb2FkOiB7XG4gICAgdXBsb2FkaW5nOiAnV3lzecOFwoJhbmllLi4uJyxcbiAgICByZW1vdmVGaWxlOiAnVXN1w4XChCBwbGlrJyxcbiAgICB1cGxvYWRFcnJvcjogJ0LDhcKCw4TChWQgd3lzecOFwoJhbmlhJyxcbiAgICBwcmV2aWV3RmlsZTogJ1BvZGVqcnp5aiBwbGlrJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnQnJhayBkYW55Y2gnXG4gIH1cbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ0hvamUnLFxuICBub3c6ICdBZ29yYScsXG4gIGJhY2tUb1RvZGF5OiAnVm9sdGFyIHBhcmEgaG9qZScsXG4gIG9rOiAnT2snLFxuICBjbGVhcjogJ0xpbXBhcicsXG4gIG1vbnRoOiAnTcODwqpzJyxcbiAgeWVhcjogJ0FubycsXG4gIHRpbWVTZWxlY3Q6ICdTZWxlY2lvbmFyIHRlbXBvJyxcbiAgZGF0ZVNlbGVjdDogJ1NlbGVjaW9uYXIgZGF0YScsXG4gIG1vbnRoU2VsZWN0OiAnRXNjb2xoZXIgbcODwqpzJyxcbiAgeWVhclNlbGVjdDogJ0VzY29saGVyIGFubycsXG4gIGRlY2FkZVNlbGVjdDogJ0VzY29saGVyIGTDg8KpY2FkYScsXG4gIHllYXJGb3JtYXQ6ICdZWVlZJyxcbiAgZGF0ZUZvcm1hdDogJ0QvTS9ZWVlZJyxcbiAgZGF5Rm9ybWF0OiAnRCcsXG4gIGRhdGVUaW1lRm9ybWF0OiAnRC9NL1lZWVkgSEg6bW06c3MnLFxuICBtb250aEJlZm9yZVllYXI6IGZhbHNlLFxuICBwcmV2aW91c01vbnRoOiAnTcODwqpzIGFudGVyaW9yIChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnUHLDg8KzeGltbyBtw4PCqnMgKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ0FubyBhbnRlcmlvciAoQ29udHJvbCArIGVzcXVlcmRhKScsXG4gIG5leHRZZWFyOiAnUHLDg8KzeGltbyBhbm8gKENvbnRyb2wgKyBkaXJlaXRhKScsXG4gIHByZXZpb3VzRGVjYWRlOiAnRMODwqljYWRhIGFudGVyaW9yJyxcbiAgbmV4dERlY2FkZTogJ1Byw4PCs3hpbWEgZMODwqljYWRhJyxcbiAgcHJldmlvdXNDZW50dXJ5OiAnU8ODwqljdWxvIGFudGVyaW9yJyxcbiAgbmV4dENlbnR1cnk6ICdQcsODwrN4aW1vIHPDg8KpY3Vsbydcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ0hvcmEnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyTG9jYWxlIGZyb20gJy4uL2NhbGVuZGFyL3B0X0JSJztcbmltcG9ydCBUaW1lUGlja2VyTG9jYWxlIGZyb20gJy4uL3RpbWUtcGlja2VyL3B0X0JSJztcblxuLy8gTWVyZ2UgaW50byBhIGxvY2FsZSBvYmplY3RcbmNvbnN0IGxvY2FsZSA9IHtcbiAgbGFuZzoge1xuICAgIHBsYWNlaG9sZGVyOiAnU2VsZWNpb25hciBkYXRhJyxcbiAgICByYW5nZVBsYWNlaG9sZGVyOiBbJ0RhdGEgZGUgaW7Dg8KtY2lvJywgJ0RhdGEgZGUgZmltJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICcvIHDDg8KhZ2luYXMnLFxuICBqdW1wX3RvOiAnVsODwqEgYXTDg8KpJyxcbiAganVtcF90b19jb25maXJtOiAnY29uZmlybWUnLFxuICBwYWdlOiAnJyxcblxuICAvLyBQYWdpbmF0aW9uLmpzeFxuICBwcmV2X3BhZ2U6ICdQw4PCoWdpbmEgYW50ZXJpb3InLFxuICBuZXh0X3BhZ2U6ICdQcsODwrN4aW1hIHDDg8KhZ2luYScsXG4gIHByZXZfNTogJzUgcMODwqFnaW5hcyBhbnRlcmlvcmVzJyxcbiAgbmV4dF81OiAnNSBwcsODwrN4aW1hcyBww4PCoWdpbmFzJyxcbiAgcHJldl8zOiAnMyBww4PCoWdpbmFzIGFudGVyaW9yZXMnLFxuICBuZXh0XzM6ICczIHByw4PCs3hpbWFzIHDDg8KhZ2luYXMnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL3B0X0JSJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvcHRfQlInO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL3B0X0JSJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvcHRfQlInO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ3B0LWJyJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0cm8nLFxuICAgIGZpbHRlckNvbmZpcm06ICdPSycsXG4gICAgZmlsdGVyUmVzZXQ6ICdSZXNldGFyJyxcbiAgICBzZWxlY3RBbGw6ICdTZWxlY2lvbmFyIHDDg8KhZ2luYSBhdHVhbCcsXG4gICAgc2VsZWN0SW52ZXJ0OiAnSW52ZXJ0ZXIgc2VsZcODwqfDg8KjbydcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ0NhbmNlbGFyJyxcbiAgICBqdXN0T2tUZXh0OiAnT0snXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ0NhbmNlbGFyJ1xuICB9LFxuICBUcmFuc2Zlcjoge1xuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnUHJvY3VyYXInLFxuICAgIGl0ZW1Vbml0OiAnaXRlbScsXG4gICAgaXRlbXNVbml0OiAnaXRlbXMnXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ0VudmlhbmRvLi4uJyxcbiAgICByZW1vdmVGaWxlOiAnUmVtb3ZlciBhcnF1aXZvJyxcbiAgICB1cGxvYWRFcnJvcjogJ0Vycm8gbm8gZW52aW8nLFxuICAgIHByZXZpZXdGaWxlOiAnVmlzdWFsaXphciBhcnF1aXZvJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnTsODwqNvIGjDg8KhIGRhZG9zJ1xuICB9XG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9kYXk6ICdIb2plJyxcbiAgbm93OiAnQWdvcmEnLFxuICBiYWNrVG9Ub2RheTogJ0hvamUnLFxuICBvazogJ09rJyxcbiAgY2xlYXI6ICdMaW1wYXInLFxuICBtb250aDogJ03Dg8KqcycsXG4gIHllYXI6ICdBbm8nLFxuICB0aW1lU2VsZWN0OiAnU2VsZWNpb25hciBob3JhJyxcbiAgZGF0ZVNlbGVjdDogJ1NlbGVjaW9uYXIgZGF0YScsXG4gIG1vbnRoU2VsZWN0OiAnU2VsZWNpb25hciBtw4PCqnMnLFxuICB5ZWFyU2VsZWN0OiAnU2VsZWNpb25hciBhbm8nLFxuICBkZWNhZGVTZWxlY3Q6ICdTZWxlY2lvbmFyIGTDg8KpY2FkYScsXG4gIHllYXJGb3JtYXQ6ICdZWVlZJyxcbiAgZGF0ZUZvcm1hdDogJ0QvTS9ZWVlZJyxcbiAgZGF5Rm9ybWF0OiAnRCcsXG4gIGRhdGVUaW1lRm9ybWF0OiAnRC9NL1lZWVkgSEg6bW06c3MnLFxuICBtb250aEJlZm9yZVllYXI6IHRydWUsXG4gIHByZXZpb3VzTW9udGg6ICdNw4PCqnMgYW50ZXJpb3IgKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICdNw4PCqnMgc2VndWludGUgKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ0FubyBhbnRlcmlvciAoQ29udHJvbCArIGxlZnQpJyxcbiAgbmV4dFllYXI6ICdBbm8gc2VndWludGUgKENvbnRyb2wgKyByaWdodCknLFxuICBwcmV2aW91c0RlY2FkZTogJ0TDg8KpY2FkYSBhbnRlcmlvcicsXG4gIG5leHREZWNhZGU6ICdEw4PCqWNhZGEgc2VndWludGUnLFxuICBwcmV2aW91c0NlbnR1cnk6ICdTw4PCqWN1bG8gYW50ZXJpb3InLFxuICBuZXh0Q2VudHVyeTogJ1PDg8KpY3VsbyBzZWd1aW50ZSdcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ0hvcmEnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyTG9jYWxlIGZyb20gJy4uL2NhbGVuZGFyL3B0X1BUJztcbmltcG9ydCBUaW1lUGlja2VyTG9jYWxlIGZyb20gJy4uL3RpbWUtcGlja2VyL3B0X1BUJztcblxuLy8gTWVyZ2UgaW50byBhIGxvY2FsZSBvYmplY3RcbmNvbnN0IGxvY2FsZSA9IHtcbiAgbGFuZzoge1xuICAgIC4uLkNhbGVuZGFyTG9jYWxlLFxuICAgIHBsYWNlaG9sZGVyOiAnRGF0YScsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWydEYXRhIGluaWNpYWwnLCAnRGF0YSBmaW5hbCddLFxuICAgIHRvZGF5OiAnSG9qZScsXG4gICAgbm93OiAnQWdvcmEnLFxuICAgIGJhY2tUb1RvZGF5OiAnSG9qZScsXG4gICAgb2s6ICdPaycsXG4gICAgY2xlYXI6ICdMaW1wYXInLFxuICAgIG1vbnRoOiAnTcODwqpzJyxcbiAgICB5ZWFyOiAnQW5vJyxcbiAgICB0aW1lU2VsZWN0OiAnSG9yYScsXG4gICAgZGF0ZVNlbGVjdDogJ1NlbGVjaW9uYXIgZGF0YScsXG4gICAgbW9udGhTZWxlY3Q6ICdTZWxlY2lvbmFyIG3Dg8KqcycsXG4gICAgeWVhclNlbGVjdDogJ1NlbGVjaW9uYXIgYW5vJyxcbiAgICBkZWNhZGVTZWxlY3Q6ICdTZWxlY2lvbmFyIGTDg8KpY2FkYScsXG4gICAgeWVhckZvcm1hdDogJ1lZWVknLFxuICAgIGRhdGVGb3JtYXQ6ICdEL00vWVlZWScsXG4gICAgZGF5Rm9ybWF0OiAnRCcsXG4gICAgZGF0ZVRpbWVGb3JtYXQ6ICdEL00vWVlZWSBISDptbTpzcycsXG4gICAgbW9udGhGb3JtYXQ6ICdNTU1NJyxcbiAgICBtb250aEJlZm9yZVllYXI6IGZhbHNlLFxuICAgIHByZXZpb3VzTW9udGg6ICdNw4PCqnMgYW50ZXJpb3IgKFBhZ2VVcCknLFxuICAgIG5leHRNb250aDogJ03Dg8KqcyBzZWd1aW50ZSAoUGFnZURvd24pJyxcbiAgICBwcmV2aW91c1llYXI6ICdBbm8gYW50ZXJpb3IgKENvbnRyb2wgKyBsZWZ0KScsXG4gICAgbmV4dFllYXI6ICdBbm8gc2VndWludGUgKENvbnRyb2wgKyByaWdodCknLFxuICAgIHByZXZpb3VzRGVjYWRlOiAnw4PCmmx0aW1hIGTDg8KpY2FkYScsXG4gICAgbmV4dERlY2FkZTogJ1Byw4PCs3hpbWEgZMODwqljYWRhJyxcbiAgICBwcmV2aW91c0NlbnR1cnk6ICfDg8KabHRpbW8gc8ODwqljdWxvJyxcbiAgICBuZXh0Q2VudHVyeTogJ1Byw4PCs3hpbW8gc8ODwqljdWxvJ1xuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7XG4gICAgLi4uVGltZVBpY2tlckxvY2FsZSxcbiAgICBwbGFjZWhvbGRlcjogJ0hvcmEnXG4gIH1cbn07XG5cbi8vIEFsbCBzZXR0aW5ncyBhdDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vYmxvYi9tYXN0ZXIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9sb2NhbGUvZXhhbXBsZS5qc29uXG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyBww4PCoWdpbmEnLFxuICBqdW1wX3RvOiAnU2FsdGFyJyxcbiAganVtcF90b19jb25maXJtOiAnY29uZmlybWFyJyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnUMODwqFnaW5hIEFudGVyaW9yJyxcbiAgbmV4dF9wYWdlOiAnUMODwqFnaW5hIFNlZ3VpbnRlJyxcbiAgcHJldl81OiAnUmVjdWFyIDUgUMODwqFnaW5hcycsXG4gIG5leHRfNTogJ0F2YW7Dg8KnYXIgNSBQw4PCoWdpbmFzJyxcbiAgcHJldl8zOiAnUmVjdWFyIDMgUMODwqFnaW5hcycsXG4gIG5leHRfMzogJ0F2YW7Dg8KnYXIgMyBQw4PCoWdpbmFzJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi9jYWxlbmRhci9wdF9QVCc7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL2RhdGUtcGlja2VyL3B0X1BUJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4vcGFnaW5hdGlvbi9wdF9QVCc7XG5pbXBvcnQgVGltZVBpY2tlciBmcm9tICcuL3RpbWUtcGlja2VyL3B0X1BUJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2NhbGU6ICdwdCcsXG4gIFBhZ2luYXRpb24sXG4gIERhdGVQaWNrZXIsXG4gIFRpbWVQaWNrZXIsXG4gIENhbGVuZGFyLFxuICBUYWJsZToge1xuICAgIGZpbHRlclRpdGxlOiAnRmlsdHJvJyxcbiAgICBmaWx0ZXJDb25maXJtOiAnQXBsaWNhcicsXG4gICAgZmlsdGVyUmVzZXQ6ICdSZWluaWNpYXInLFxuICAgIHNlbGVjdEFsbDogJ1NlbGVjaW9uYXIgcMODwqFnaW5hIGF0dWFsJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICdJbnZlcnRlciBzZWxlw4PCp8ODwqNvJ1xuICB9LFxuICBNb2RhbDoge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsYXInLFxuICAgIGp1c3RPa1RleHQ6ICdPSydcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsYXInXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdQcm9jdXJhci4uLicsXG4gICAgaXRlbVVuaXQ6ICdpdGVtJyxcbiAgICBpdGVtc1VuaXQ6ICdpdGVucydcbiAgfSxcbiAgVXBsb2FkOiB7XG4gICAgdXBsb2FkaW5nOiAnQSBjYXJyZWdhci4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ1JlbW92ZXInLFxuICAgIHVwbG9hZEVycm9yOiAnRXJybyBhbyBjYXJyZWdhcicsXG4gICAgcHJldmlld0ZpbGU6ICdQcsODwqktdmlzdWFsaXphcidcbiAgfSxcbiAgRW1wdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJ1NlbSByZXN1bHRhZG9zJ1xuICB9XG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9kYXk6ICfDkMKhw5DCtcOQwrPDkMK+w5DCtMOQwr3DkcKPJyxcbiAgbm93OiAnw5DCocOQwrXDkMK5w5HCh8OQwrDDkcKBJyxcbiAgYmFja1RvVG9kYXk6ICfDkMKiw5DCtcOQwrrDkcKDw5HCicOQwrDDkcKPIMOQwrTDkMKww5HCgsOQwrAnLFxuICBvazogJ09rJyxcbiAgY2xlYXI6ICfDkMKew5HCh8OQwrjDkcKBw5HCgsOQwrjDkcKCw5HCjCcsXG4gIG1vbnRoOiAnw5DCnMOQwrXDkcKBw5HCj8ORwoYnLFxuICB5ZWFyOiAnw5DCk8OQwr7DkMK0JyxcbiAgdGltZVNlbGVjdDogJ8OQwpLDkcKLw5DCscORwoDDkMKww5HCgsORwowgw5DCssORwoDDkMK1w5DCvMORwo8nLFxuICBkYXRlU2VsZWN0OiAnw5DCksORwovDkMKxw5HCgMOQwrDDkcKCw5HCjCDDkMK0w5DCsMORwoLDkcKDJyxcbiAgbW9udGhTZWxlY3Q6ICfDkMKSw5HCi8OQwrHDkcKAw5DCsMORwoLDkcKMIMOQwrzDkMK1w5HCgcORwo/DkcKGJyxcbiAgeWVhclNlbGVjdDogJ8OQwpLDkcKLw5DCscORwoDDkMKww5HCgsORwowgw5DCs8OQwr7DkMK0JyxcbiAgZGVjYWRlU2VsZWN0OiAnw5DCksORwovDkMKxw5HCgMOQwrDDkcKCw5HCjCDDkMK0w5DCtcORwoHDkcKPw5HCgsOQwrjDkMK7w5DCtcORwoLDkMK4w5DCtScsXG4gIHllYXJGb3JtYXQ6ICdZWVlZJyxcbiAgZGF0ZUZvcm1hdDogJ0QtTS1ZWVlZJyxcbiAgZGF5Rm9ybWF0OiAnRCcsXG4gIGRhdGVUaW1lRm9ybWF0OiAnRC1NLVlZWVkgSEg6bW06c3MnLFxuICBtb250aEJlZm9yZVllYXI6IHRydWUsXG4gIHByZXZpb3VzTW9udGg6ICfDkMKfw5HCgMOQwrXDkMK0w5HCi8OQwrTDkcKDw5HCicOQwrjDkMK5IMOQwrzDkMK1w5HCgcORwo/DkcKGIChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnw5DCocOQwrvDkMK1w5DCtMORwoPDkcKOw5HCicOQwrjDkMK5IMOQwrzDkMK1w5HCgcORwo/DkcKGIChQYWdlRG93biknLFxuICBwcmV2aW91c1llYXI6ICfDkMKfw5HCgMOQwrXDkMK0w5HCi8OQwrTDkcKDw5HCicOQwrjDkMK5IMOQwrPDkMK+w5DCtCAoQ29udHJvbCArIGxlZnQpJyxcbiAgbmV4dFllYXI6ICfDkMKhw5DCu8OQwrXDkMK0w5HCg8ORwo7DkcKJw5DCuMOQwrkgw5DCs8OQwr7DkMK0IChDb250cm9sICsgcmlnaHQpJyxcbiAgcHJldmlvdXNEZWNhZGU6ICfDkMKfw5HCgMOQwrXDkMK0w5HCi8OQwrTDkcKDw5HCicOQwrXDkMK1IMOQwrTDkMK1w5HCgcORwo/DkcKCw5DCuMOQwrvDkMK1w5HCgsOQwrjDkMK1JyxcbiAgbmV4dERlY2FkZTogJ8OQwqHDkMK7w5DCtcOQwrTDkcKDw5HCicOQwrXDkMK1IMOQwrTDkMK1w5HCgcORwo/DkcKCw5DCuMOQwrvDkMK1w5HCgsOQwrjDkMK1JyxcbiAgcHJldmlvdXNDZW50dXJ5OiAnw5DCn8ORwoDDkMK1w5DCtMORwovDkMK0w5HCg8ORwonDkMK4w5DCuSDDkMKyw5DCtcOQwronLFxuICBuZXh0Q2VudHVyeTogJ8OQwqHDkMK7w5DCtcOQwrTDkcKDw5HCjsORwonDkMK4w5DCuSDDkMKyw5DCtcOQwronXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbi8qKlxuICogQ3JlYXRlZCBieSBBbmRyZXkgR2F5dm9yb25za3kgb24gMTMvMDQvMTYuXG4gKi9cbmNvbnN0IGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICfDkMKSw5HCi8OQwrHDkMK1w5HCgMOQwrjDkcKCw5DCtSDDkMKyw5HCgMOQwrXDkMK8w5HCjydcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG4vKipcbiAqIENyZWF0ZWQgYnkgQW5kcmV5IEdheXZvcm9uc2t5IG9uIDEzLzA0LzE2LlxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9ydV9SVSc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9ydV9SVSc7XG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgbGFuZzoge1xuICAgIHBsYWNlaG9sZGVyOiAnw5DCksORwovDkMKxw5DCtcORwoDDkMK4w5HCgsOQwrUgw5DCtMOQwrDDkcKCw5HCgycsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWyfDkMKdw5DCsMORwofDkMKww5DCu8ORwozDkMK9w5DCsMORwo8gw5DCtMOQwrDDkcKCw5DCsCcsICfDkMKaw5DCvsOQwr3DkMK1w5HCh8OQwr3DkMKww5HCjyDDkMK0w5DCsMORwoLDkMKwJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICcvw5HCgcORwoLDkcKAw5DCsMOQwr3DkMK4w5HChsOQwrUnLFxuICBqdW1wX3RvOiAnw5DCn8OQwrXDkcKAw5DCtcOQwrnDkcKCw5DCuCcsXG4gIGp1bXBfdG9fY29uZmlybTogJ8OQwr/DkMK+w5DCtMORwoLDkMKyw5DCtcORwoDDkMK0w5DCuMORwoLDkcKMJyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnw5DCncOQwrDDkMK3w5DCsMOQwrQnLFxuICBuZXh0X3BhZ2U6ICfDkMKSw5DCv8OQwrXDkcKAw5DCtcOQwrQnLFxuICBwcmV2XzU6ICfDkMKfw5HCgMOQwrXDkMK0w5HCi8OQwrTDkcKDw5HCicOQwrjDkMK1IDUnLFxuICBuZXh0XzU6ICfDkMKhw5DCu8OQwrXDkMK0w5HCg8ORwo7DkcKJw5DCuMOQwrUgNScsXG4gIHByZXZfMzogJ8OQwp/DkcKAw5DCtcOQwrTDkcKLw5DCtMORwoPDkcKJw5DCuMOQwrUgMycsXG4gIG5leHRfMzogJ8OQwqHDkMK7w5DCtcOQwrTDkcKDw5HCjsORwonDkMK4w5DCtSAzJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi9jYWxlbmRhci9ydV9SVSc7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL2RhdGUtcGlja2VyL3J1X1JVJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4vcGFnaW5hdGlvbi9ydV9SVSc7XG5pbXBvcnQgVGltZVBpY2tlciBmcm9tICcuL3RpbWUtcGlja2VyL3J1X1JVJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2NhbGU6ICdydScsXG4gIFBhZ2luYXRpb24sXG4gIERhdGVQaWNrZXIsXG4gIFRpbWVQaWNrZXIsXG4gIENhbGVuZGFyLFxuICBUYWJsZToge1xuICAgIGZpbHRlclRpdGxlOiAnw5DCpMOQwrjDkMK7w5HCjMORwoLDkcKAJyxcbiAgICBmaWx0ZXJDb25maXJtOiAnT0snLFxuICAgIGZpbHRlclJlc2V0OiAnw5DCocOQwrHDkcKAw5DCvsORwoHDkMK4w5HCgsORwownLFxuICAgIHNlbGVjdEFsbDogJ8OQwpLDkcKLw5DCscORwoDDkMKww5HCgsORwowgw5DCssORwoHDkcKRJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICfDkMKYw5DCvcOQwrLDkMK1w5HCgMORwoLDkMK4w5HCgMOQwr7DkMKyw5DCsMORwoLDkcKMIMOQwrLDkcKLw5DCscOQwr7DkcKAJ1xuICB9LFxuICBNb2RhbDoge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnw5DCnsORwoLDkMK8w5DCtcOQwr3DkMKwJyxcbiAgICBqdXN0T2tUZXh0OiAnT0snXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ8OQwp7DkcKCw5DCvMOQwrXDkMK9w5DCsCdcbiAgfSxcbiAgVHJhbnNmZXI6IHtcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ8OQwp/DkMK+w5DCuMORwoHDkMK6JyxcbiAgICBpdGVtVW5pdDogJ8ORwo3DkMK7w5DCtcOQwrwuJyxcbiAgICBpdGVtc1VuaXQ6ICfDkcKNw5DCu8OQwrXDkMK8LidcbiAgfSxcbiAgVXBsb2FkOiB7XG4gICAgdXBsb2FkaW5nOiAnw5DCl8OQwrDDkMKzw5HCgMORwoPDkMK3w5DCusOQwrAuLi4nLFxuICAgIHJlbW92ZUZpbGU6ICfDkMKjw5DCtMOQwrDDkMK7w5DCuMORwoLDkcKMIMORwoTDkMKww5DCucOQwrsnLFxuICAgIHVwbG9hZEVycm9yOiAnw5DCn8ORwoDDkMK4IMOQwrfDkMKww5DCs8ORwoDDkcKDw5DCt8OQwrrDkMK1IMOQwr/DkcKAw5DCvsOQwrjDkMK3w5DCvsORwojDkMK7w5DCsCDDkMK+w5HCiMOQwrjDkMKxw5DCusOQwrAnLFxuICAgIHByZXZpZXdGaWxlOiAnw5DCn8ORwoDDkMK1w5DCtMOQwr/DkcKAw5DCvsORwoHDkMK8w5DCvsORwoLDkcKAIMORwoTDkMKww5DCucOQwrvDkMKwJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnw5DCncOQwrXDkcKCIMOQwrTDkMKww5DCvcOQwr3DkcKLw5HChSdcbiAgfVxufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHRvZGF5OiAnRG5lcycsXG4gIG5vdzogJ1RlcmF6JyxcbiAgYmFja1RvVG9kYXk6ICdTcMODwqTDhcKlIG5hIGRuZXMnLFxuICBvazogJ09rJyxcbiAgY2xlYXI6ICdWeW1hemHDhcKlJyxcbiAgbW9udGg6ICdNZXNpYWMnLFxuICB5ZWFyOiAnUm9rJyxcbiAgdGltZVNlbGVjdDogJ1Z5YnJhw4XCpSDDhMKNYXMnLFxuICBkYXRlU2VsZWN0OiAnVnlicmHDhcKlIGTDg8KhdHVtJyxcbiAgbW9udGhTZWxlY3Q6ICdWeWJyYcOFwqUgbWVzaWFjJyxcbiAgeWVhclNlbGVjdDogJ1Z5YnJhw4XCpSByb2snLFxuICBkZWNhZGVTZWxlY3Q6ICdWeWJyYcOFwqUgZGVrw4PCoWR1JyxcbiAgeWVhckZvcm1hdDogJ1lZWVknLFxuICBkYXRlRm9ybWF0OiAnRC5NLllZWVknLFxuICBkYXlGb3JtYXQ6ICdEJyxcbiAgZGF0ZVRpbWVGb3JtYXQ6ICdELk0uWVlZWSBISDptbTpzcycsXG4gIG1vbnRoQmVmb3JlWWVhcjogdHJ1ZSxcbiAgcHJldmlvdXNNb250aDogJ1ByZWRjaMODwqFkemFqw4PCumNpIG1lc2lhYyAoUGFnZVVwKScsXG4gIG5leHRNb250aDogJ05hc2xlZHVqw4PCumNpIG1lc2lhYyAoUGFnZURvd24pJyxcbiAgcHJldmlvdXNZZWFyOiAnUHJlZGNow4PCoWR6YWrDg8K6Y2kgcm9rIChDb250cm9sICsgbGVmdCknLFxuICBuZXh0WWVhcjogJ05hc2xlZHVqw4PCumNpIHJvayAoQ29udHJvbCArIHJpZ2h0KScsXG4gIHByZXZpb3VzRGVjYWRlOiAnUHJlZGNow4PCoWR6YWrDg8K6Y2EgZGVrw4PCoWRhJyxcbiAgbmV4dERlY2FkZTogJ05hc2xlZHVqw4PCumNhIGRla8ODwqFkYScsXG4gIHByZXZpb3VzQ2VudHVyeTogJ1ByZWRjaMODwqFkemFqw4PCumNlIHN0b3Jvw4TCjWllJyxcbiAgbmV4dENlbnR1cnk6ICdOYXNsZWR1asODwrpjZSBzdG9yb8OEwo1pZSdcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ1Z5YnJhw4XCpSDDhMKNYXMnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyTG9jYWxlIGZyb20gJy4uL2NhbGVuZGFyL3NrX1NLJztcbmltcG9ydCBUaW1lUGlja2VyTG9jYWxlIGZyb20gJy4uL3RpbWUtcGlja2VyL3NrX1NLJztcblxuLy8gw6fCu8Kfw6TCuMKAw6XCkMKIw6XCucK2w6TCuMK6w6XCrsKMw6bClcK0w6fCmsKEIExvY2FsZVxuY29uc3QgbG9jYWxlID0ge1xuICBsYW5nOiB7XG4gICAgcGxhY2Vob2xkZXI6ICdWeWJyYcOFwqUgZMODwqF0dW0nLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnT2QnLCAnRG8nXSxcbiAgICAuLi5DYWxlbmRhckxvY2FsZVxuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7XG4gICAgLi4uVGltZVBpY2tlckxvY2FsZVxuICB9XG59O1xuXG4vLyBBbGwgc2V0dGluZ3MgYXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2Jsb2IvbWFzdGVyL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvbG9jYWxlL2V4YW1wbGUuanNvblxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJy8gc3RyYW5hJyxcbiAganVtcF90bzogJ0Nob8OEwo8gbmEnLFxuICBqdW1wX3RvX2NvbmZpcm06ICdwb3R2cmRpdCcsXG4gIHBhZ2U6ICcnLFxuXG4gIC8vIFBhZ2luYXRpb24uanN4XG4gIHByZXZfcGFnZTogJ1ByZWRjaMODwqFkemFqw4PCumNhIHN0cmFuYScsXG4gIG5leHRfcGFnZTogJ05hc2xlZHVqw4PCumNhIHN0cmFuYScsXG4gIHByZXZfNTogJ1ByZWRjaMODwqFkemFqw4PCumNpY2ggNSBzdHLDg8KhbicsXG4gIG5leHRfNTogJ05hc2xlZHVqw4PCumNpY2ggNSBzdHLDg8KhbicsXG4gIHByZXZfMzogJ1ByZWRjaMODwqFkemFqw4PCumNlIDMgc3RyYW55JyxcbiAgbmV4dF8zOiAnTmFzbGVkdWrDg8K6Y2UgMyBzdHJhbnknXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL3NrX1NLJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvc2tfU0snO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL3NrX1NLJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvc2tfU0snO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ3NrJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0ZXInLFxuICAgIGZpbHRlckNvbmZpcm06ICdPSycsXG4gICAgZmlsdGVyUmVzZXQ6ICdPYm5vdmnDhcKlJyxcbiAgICBzZWxlY3RBbGw6ICdWeWJyYcOFwqUgdsOFwqFldGtvJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICdWeWJyYcOFwqUgb3Bhw4TCjW7Dg8KpJ1xuICB9LFxuICBNb2RhbDoge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnWnJ1w4XCoWnDhcKlJyxcbiAgICBqdXN0T2tUZXh0OiAnT0snXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ1pydcOFwqFpw4XCpSdcbiAgfSxcbiAgVHJhbnNmZXI6IHtcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1Z5aMOEwr5hZMODwqF2YW5pZScsXG4gICAgaXRlbVVuaXQ6ICdwb2xvw4XCvmthJyxcbiAgICBpdGVtc1VuaXQ6ICdwb2xvw4XCvmllaydcbiAgfSxcbiAgVXBsb2FkOiB7XG4gICAgdXBsb2FkaW5nOiAnTmFocsODwqF2YW5pZS4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ09kc3Ryw4PCoW5pw4XCpSBzw4PCumJvcicsXG4gICAgdXBsb2FkRXJyb3I6ICdDaHliYSBwcmkgbmFocsODwqF2YW7Dg8KtJyxcbiAgICBwcmV2aWV3RmlsZTogJ1pvYnJhemnDhcKlIHPDg8K6Ym9yJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnw4XCvWlhZG5lIGTDg8KhdGEnXG4gIH1cbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ0RhbmVzJyxcbiAgbm93OiAnWmRhaicsXG4gIGJhY2tUb1RvZGF5OiAnTmF6YWogbmEgZGFuZXMnLFxuICBvazogJ1YgcmVkdScsXG4gIGNsZWFyOiAnUG/DhMKNaXN0aScsXG4gIG1vbnRoOiAnTWVzZWMnLFxuICB5ZWFyOiAnTGV0bycsXG4gIHRpbWVTZWxlY3Q6ICdJemJlcmkgw4TCjWFzJyxcbiAgZGF0ZVNlbGVjdDogJ0l6YmVyaSBkYXR1bScsXG4gIG1vbnRoU2VsZWN0OiAnSXpiZXJpIG1lc2VjJyxcbiAgeWVhclNlbGVjdDogJ0l6YmVyaSBsZXRvJyxcbiAgZGVjYWRlU2VsZWN0OiAnSXpiZXJpIGRlc2V0bGV0amUnLFxuICB5ZWFyRm9ybWF0OiAnWVlZWScsXG4gIGRhdGVGb3JtYXQ6ICdERC5NTS5ZWVlZJyxcbiAgZGF5Rm9ybWF0OiAnRCcsXG4gIGRhdGVUaW1lRm9ybWF0OiAnREQuTU0uWVlZWSBISDptbTpzcycsXG4gIG1vbnRoQmVmb3JlWWVhcjogdHJ1ZSxcbiAgcHJldmlvdXNNb250aDogJ1ByZWRob2RuamkgbWVzZWMgKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICdOYXNsZWRuamkgbWVzZWMgKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ1ByZWrDhcKhbmplIGxldG8gKENvbnRyb2wgKyBsZWZ0KScsXG4gIG5leHRZZWFyOiAnTmFzbGVkbmplIGxldG8gKENvbnRyb2wgKyByaWdodCknLFxuICBwcmV2aW91c0RlY2FkZTogJ1ByZWrDhcKhbmplIGRlc2V0bGV0amUnLFxuICBuZXh0RGVjYWRlOiAnTmFzbGVkbmplIGRlc2V0bGV0amUnLFxuICBwcmV2aW91c0NlbnR1cnk6ICdQcmVqw4XCoW5qZSBzdG9sZXRqZScsXG4gIG5leHRDZW50dXJ5OiAnTmFzbGVkbmplIHN0b2xldGplJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5jb25zdCBsb2NhbGUgPSB7XG4gIHBsYWNlaG9sZGVyOiAnSXpiZXJpdGUgw4TCjWFzJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9zbF9TSSc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9zbF9TSSc7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ0l6YmVyaXRlIGRhdHVtJyxcbiAgICByYW5nZVBsYWNlaG9sZGVyOiBbJ1phw4TCjWV0bmkgZGF0dW0nLCAnS29uw4TCjW5pIGRhdHVtJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICcvIHN0cmFuJyxcbiAganVtcF90bzogJ1BvamRpIG5hJyxcbiAganVtcF90b19jb25maXJtOiAncG90cmRpJyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnUHJlasOFwqFuamEgc3RyYW4nLFxuICBuZXh0X3BhZ2U6ICdOYXNsZWRuamEgc3RyYW4nLFxuICBwcmV2XzU6ICdQcmVqw4XCoW5qaWggNSBTdHJhbmknLFxuICBuZXh0XzU6ICdOYXNsZWRuamloIDUgU3RyYW5pJyxcbiAgcHJldl8zOiAnUHJlasOFwqFuamUgMyBTdHJhbmknLFxuICBuZXh0XzM6ICdOYXNsZWRuamUgMyBTdHJhbmknXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL3NsX1NJJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvc2xfU0knO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL3NsX1NJJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvc2xfU0knO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ3NsJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0ZXInLFxuICAgIGZpbHRlckNvbmZpcm06ICdGaWx0cmlyYWonLFxuICAgIGZpbHRlclJlc2V0OiAnUG9icmnDhcKhaSBmaWx0ZXInLFxuICAgIHNlbGVjdEFsbDogJ0l6YmVyaSB2c2UgbmEgdHJlbnV0bmkgc3RyYW5pJyxcbiAgICBzZWxlY3RJbnZlcnQ6ICdPYnJuaSBpemJvciBuYSB0cmVudXRuaSBzdHJhbmknXG4gIH0sXG4gIE1vZGFsOiB7XG4gICAgb2tUZXh0OiAnViByZWR1JyxcbiAgICBjYW5jZWxUZXh0OiAnUHJla2xpw4TCjWknLFxuICAgIGp1c3RPa1RleHQ6ICdWIHJlZHUnXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICd2IHJlZHUnLFxuICAgIGNhbmNlbFRleHQ6ICdQcmVrbGnDhMKNaSdcbiAgfSxcbiAgVHJhbnNmZXI6IHtcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ0nDhcKhw4TCjWkgdHVrYWonLFxuICAgIGl0ZW1Vbml0OiAnT2JqZWt0JyxcbiAgICBpdGVtc1VuaXQ6ICdPYmpla3RvdidcbiAgfSxcbiAgVXBsb2FkOiB7XG4gICAgdXBsb2FkaW5nOiAnTmFsYWdhbmplLi4uJyxcbiAgICByZW1vdmVGaWxlOiAnT2RzdHJhbmkgZGF0b3Rla28nLFxuICAgIHVwbG9hZEVycm9yOiAnTmFwYWthIHByaSBuYWxhZ2FuanUnLFxuICAgIHByZXZpZXdGaWxlOiAnUHJlZG9nbGVkIGRhdG90ZWtlJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnTmkgcG9kYXRrb3YnXG4gIH1cbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ0RhbmFzJyxcbiAgbm93OiAnU2FkYScsXG4gIGJhY2tUb1RvZGF5OiAnVnJhdGkgc2UgbmEgZGFuYXMnLFxuICBvazogJ1UgcmVkdScsXG4gIGNsZWFyOiAnT2JyacOFwqFpJyxcbiAgbW9udGg6ICdNZXNlYycsXG4gIHllYXI6ICdHb2RpbmEnLFxuICB0aW1lU2VsZWN0OiAnSXphYmVyaSB2cmVtZScsXG4gIGRhdGVTZWxlY3Q6ICdJemFiZXJpIGRhdHVtJyxcbiAgbW9udGhTZWxlY3Q6ICdJemFiZXJpIG1lc2VjJyxcbiAgeWVhclNlbGVjdDogJ0l6YWJlcmkgZ29kaW51JyxcbiAgZGVjYWRlU2VsZWN0OiAnSXphYmVyaSBkZWNlbmlqdScsXG4gIHllYXJGb3JtYXQ6ICdZWVlZJyxcbiAgZGF0ZUZvcm1hdDogJ0RELk1NLllZWVknLFxuICBkYXlGb3JtYXQ6ICdEJyxcbiAgZGF0ZVRpbWVGb3JtYXQ6ICdERC5NTS5ZWVlZIEhIOm1tOnNzJyxcbiAgbW9udGhCZWZvcmVZZWFyOiB0cnVlLFxuICBwcmV2aW91c01vbnRoOiAnUHJldGhvZG5pIG1lc2VjIChQYWdlVXApJyxcbiAgbmV4dE1vbnRoOiAnU2xlZGXDhMKHaSBtZXNlYyAoUGFnZURvd24pJyxcbiAgcHJldmlvdXNZZWFyOiAnUHJldGhvZG5hIGdvZGluYSAoQ29udHJvbCArIGxlZnQpJyxcbiAgbmV4dFllYXI6ICdTbGVkZcOEwodhIGdvZGluYSAoQ29udHJvbCArIHJpZ2h0KScsXG4gIHByZXZpb3VzRGVjYWRlOiAnUHJldGhvZG5hIGRlY2VuaWphJyxcbiAgbmV4dERlY2FkZTogJ1NsZWRlw4TCh2EgZGVjZW5pamEnLFxuICBwcmV2aW91c0NlbnR1cnk6ICdQcmV0aG9kbmkgdmVrJyxcbiAgbmV4dENlbnR1cnk6ICdTbGVkZcOEwodpIHZlaydcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ0l6YWJlcml0ZSB2cmVtZSdcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXJMb2NhbGUgZnJvbSAnLi4vY2FsZW5kYXIvc3JfUlMnO1xuaW1wb3J0IFRpbWVQaWNrZXJMb2NhbGUgZnJvbSAnLi4vdGltZS1waWNrZXIvc3JfUlMnO1xuXG4vLyBNZXJnZSBpbnRvIGEgbG9jYWxlIG9iamVjdFxuY29uc3QgbG9jYWxlID0ge1xuICBsYW5nOiB7XG4gICAgcGxhY2Vob2xkZXI6ICdJemFiZXJpdGUgZGF0dW0nLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnUG/DhMKNZXRuaSBkYXR1bScsICdLcmFqbmppIGRhdHVtJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICcvIHN0cmFuaScsXG4gIGp1bXBfdG86ICdJZGkgbmEnLFxuICBwYWdlOiAnJyxcblxuICAvLyBQYWdpbmF0aW9uLmpzeFxuICBwcmV2X3BhZ2U6ICdQcmV0aG9kbmEgc3RyYW5hJyxcbiAgbmV4dF9wYWdlOiAnU2xlZGXDhMKHYSBzdHJhbmEnLFxuICBwcmV2XzU6ICdQcmV0aG9kbmloIDUgU3RyYW5hJyxcbiAgbmV4dF81OiAnU2xlZGXDhMKHaWggNSBTdHJhbmEnLFxuICBwcmV2XzM6ICdQcmV0aG9kbmloIDMgU3RyYW5lJyxcbiAgbmV4dF8zOiAnU2xlZGXDhMKHaWggMyBTdHJhbmUnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL3NyX1JTJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvc3JfUlMnO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL3NyX1JTJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvc3JfUlMnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ3NyJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdGaWx0ZXInLFxuICAgIGZpbHRlckNvbmZpcm06ICdQcmltZW5pIGZpbHRlcicsXG4gICAgZmlsdGVyUmVzZXQ6ICdSZXNldHVqIGZpbHRlcicsXG4gICAgc2VsZWN0QWxsOiAnT2JlbGXDhcK+aSBzdmUgbmEgdHJlbnV0bm9qIHN0cmFuaScsXG4gICAgc2VsZWN0SW52ZXJ0OiAnT2Jybmkgc2VsZWtjaWp1IG5hIHRyZW51dG5vaiBzdHJhbmljaSdcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICdVIHJlZHUnLFxuICAgIGNhbmNlbFRleHQ6ICdPdGthw4XCvmknLFxuICAgIGp1c3RPa1RleHQ6ICdVIHJlZHUnXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICdVIHJlZHUnLFxuICAgIGNhbmNlbFRleHQ6ICdPdGthw4XCvmknXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdQcmV0cmHDhcK+aXRlIG92ZGUnLFxuICAgIGl0ZW1Vbml0OiAnc3RhdmthJyxcbiAgICBpdGVtc1VuaXQ6ICdzdGF2a2knXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ1NsYW5qZS4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ1VrbG9uaSBmYWpsJyxcbiAgICB1cGxvYWRFcnJvcjogJ0dyZcOFwqFrYSBwcmlsaWtvbSBzbGFuamEnLFxuICAgIHByZXZpZXdGaWxlOiAnUG9nbGVkYWogZmFqbCdcbiAgfSxcbiAgRW1wdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJ05lbWEgcG9kYXRha2EnXG4gIH1cbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ0kgZGFnJyxcbiAgbm93OiAnTnUnLFxuICBiYWNrVG9Ub2RheTogJ1RpbGwgaWRhZycsXG4gIG9rOiAnT2snLFxuICBjbGVhcjogJ0F2YnJ5dCcsXG4gIG1vbnRoOiAnTcODwqVuYWQnLFxuICB5ZWFyOiAnw4PChXInLFxuICB0aW1lU2VsZWN0OiAnVsODwqRsaiB0aWRwdW5rdCcsXG4gIGRhdGVTZWxlY3Q6ICdWw4PCpGxqIGRhdHVtJyxcbiAgbW9udGhTZWxlY3Q6ICdWw4PCpGxqIG3Dg8KlbmFkJyxcbiAgeWVhclNlbGVjdDogJ1bDg8KkbGogw4PCpXInLFxuICBkZWNhZGVTZWxlY3Q6ICdWw4PCpGxqIMODwqVydGlvbmRlJyxcbiAgeWVhckZvcm1hdDogJ1lZWVknLFxuICBkYXRlRm9ybWF0OiAnWVlZWS1NTS1ERCcsXG4gIGRheUZvcm1hdDogJ0QnLFxuICBkYXRlVGltZUZvcm1hdDogJ1lZWVktTU0tREQgSDptbTpzcycsXG4gIG1vbnRoQmVmb3JlWWVhcjogdHJ1ZSxcbiAgcHJldmlvdXNNb250aDogJ0bDg8K2cnJhIG3Dg8KlbmFkZW4gKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICdOw4PCpHN0YSBtw4PCpW5hZCAoUGFnZURvd24pJyxcbiAgcHJldmlvdXNZZWFyOiAnRsODwrZyZWcgw4PCpXIgKENvbnRyb2wgKyBsZWZ0KScsXG4gIG5leHRZZWFyOiAnTsODwqRzdGEgw4PCpXIgKENvbnRyb2wgKyByaWdodCknLFxuICBwcmV2aW91c0RlY2FkZTogJ0bDg8K2cmVnIMODwqVydGlvbmRlJyxcbiAgbmV4dERlY2FkZTogJ07Dg8Kkc3RhIMODwqVydGlvbmRlJyxcbiAgcHJldmlvdXNDZW50dXJ5OiAnRsODwrZyZWcgw4PCpXJodW5kcmFkZScsXG4gIG5leHRDZW50dXJ5OiAnTsODwqRzdGEgw4PCpXJodW5kcmFkZSdcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ1bDg8KkbGogdGlkJ1xufTtcblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9zdl9TRSc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9zdl9TRSc7XG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgbGFuZzoge1xuICAgIHBsYWNlaG9sZGVyOiAnVsODwqRsaiBkYXR1bScsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWydTdGFydGRhdHVtJywgJ1NsdXRkYXR1bSddLFxuICAgIC4uLkNhbGVuZGFyTG9jYWxlXG4gIH0sXG4gIHRpbWVQaWNrZXJMb2NhbGU6IHtcbiAgICAuLi5UaW1lUGlja2VyTG9jYWxlXG4gIH1cbn07XG5cbi8vIEFsbCBzZXR0aW5ncyBhdDpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbnQtZGVzaWduL2FudC1kZXNpZ24vYmxvYi9tYXN0ZXIvY29tcG9uZW50cy9kYXRlLXBpY2tlci9sb2NhbGUvZXhhbXBsZS5qc29uXG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIC8vIE9wdGlvbnMuanN4XG4gIGl0ZW1zX3Blcl9wYWdlOiAnLyBzaWRhJyxcbiAganVtcF90bzogJ0fDg8KlIHRpbGwnLFxuICBqdW1wX3RvX2NvbmZpcm06ICdiZWtyw4PCpGZ0YScsXG4gIHBhZ2U6ICcnLFxuXG4gIC8vIFBhZ2luYXRpb24uanN4XG4gIHByZXZfcGFnZTogJ0bDg8K2cmVnIHNpZGEnLFxuICBuZXh0X3BhZ2U6ICdOw4PCpHN0YSBzaWRhJyxcbiAgcHJldl81OiAnRsODwrZyZWcgNSBzaWRvcicsXG4gIG5leHRfNTogJ07Dg8Kkc3RhIDUgc2lkb3InLFxuICBwcmV2XzM6ICdGw4PCtnJlZyAzIHNpZG9yJyxcbiAgbmV4dF8zOiAnTsODwqRzdGEgMyBzaWRvcidcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyIGZyb20gJy4vY2FsZW5kYXIvc3ZfU0UnO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi9kYXRlLXBpY2tlci9zdl9TRSc7XG5pbXBvcnQgUGFnaW5hdGlvbiBmcm9tICcuL3BhZ2luYXRpb24vc3ZfU0UnO1xuaW1wb3J0IFRpbWVQaWNrZXIgZnJvbSAnLi90aW1lLXBpY2tlci9zdl9TRSc7XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgbG9jYWxlOiAnc3YnLFxuICBQYWdpbmF0aW9uLFxuICBEYXRlUGlja2VyLFxuICBUaW1lUGlja2VyLFxuICBDYWxlbmRhcixcbiAgVGFibGU6IHtcbiAgICBmaWx0ZXJUaXRsZTogJ0ZpbHRlcm1lbnknLFxuICAgIGZpbHRlckNvbmZpcm06ICdPSycsXG4gICAgZmlsdGVyUmVzZXQ6ICdSZW5zYSdcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICdPSycsXG4gICAgY2FuY2VsVGV4dDogJ0F2YnJ5dCcsXG4gICAganVzdE9rVGV4dDogJ09LJ1xuICB9LFxuICBQb3Bjb25maXJtOiB7XG4gICAgb2tUZXh0OiAnT0snLFxuICAgIGNhbmNlbFRleHQ6ICdBdmJyeXQnXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTw4PCtmsnLFxuICAgIGl0ZW1Vbml0OiAnZWxlbWVudCcsXG4gICAgaXRlbXNVbml0OiAnZWxlbWVudCdcbiAgfSxcbiAgRW1wdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJ0luZ2VuIGluZm9ybWF0aW9uJ1xuICB9XG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdG9kYXk6ICfDoMK4wqfDoMK4wrHDoMK4wpnDoMK4wpnDoMK4wrXDoMK5woknLFxuICBub3c6ICfDoMK4wpXDoMK4wq3DoMK4wpnDoMK4wpnDoMK4wrXDoMK5woknLFxuICBiYWNrVG9Ub2RheTogJ8OgwrjCgcOgwrjCpcOgwrjCscOgwrjCmsOgwrnChMOgwrjCm8OgwrjCosOgwrjCscOgwrjCh8OgwrjCp8OgwrjCscOgwrjCmcOgwrjCmcOgwrjCtcOgwrnCiScsXG4gIG9rOiAnw6DCuMKVw6DCuMKBw6DCuMKlw6DCuMKHJyxcbiAgY2xlYXI6ICfDoMK4wqXDoMK4wprDoMK4wqXDoMK5wonDoMK4wrLDoMK4wocnLFxuICBtb250aDogJ8OgwrnCgMOgwrjClMOgwrjCt8OgwrjCrcOgwrjCmScsXG4gIHllYXI6ICfDoMK4wpvDoMK4wrUnLFxuICB0aW1lU2VsZWN0OiAnw6DCucKAw6DCuMKlw6DCuMK3w6DCuMKtw6DCuMKBw6DCucKAw6DCuMKnw6DCuMKlw6DCuMKyJyxcbiAgZGF0ZVNlbGVjdDogJ8OgwrnCgMOgwrjCpcOgwrjCt8OgwrjCrcOgwrjCgcOgwrjCp8OgwrjCscOgwrjCmScsXG4gIG1vbnRoU2VsZWN0OiAnw6DCucKAw6DCuMKlw6DCuMK3w6DCuMKtw6DCuMKBw6DCucKAw6DCuMKUw6DCuMK3w6DCuMKtw6DCuMKZJyxcbiAgeWVhclNlbGVjdDogJ8OgwrnCgMOgwrjCpcOgwrjCt8OgwrjCrcOgwrjCgcOgwrjCm8OgwrjCtScsXG4gIGRlY2FkZVNlbGVjdDogJ8OgwrnCgMOgwrjCpcOgwrjCt8OgwrjCrcOgwrjCgcOgwrjCl8OgwrjCqMOgwrjCp8OgwrjCo8OgwrjCo8OgwrjCqScsXG4gIHllYXJGb3JtYXQ6ICdZWVlZJyxcbiAgZGF0ZUZvcm1hdDogJ0QvTS9ZWVlZJyxcbiAgZGF5Rm9ybWF0OiAnRCcsXG4gIGRhdGVUaW1lRm9ybWF0OiAnRC9NL1lZWVkgSEg6bW06c3MnLFxuICBtb250aEJlZm9yZVllYXI6IHRydWUsXG4gIHByZXZpb3VzTW9udGg6ICfDoMK5woDDoMK4wpTDoMK4wrfDoMK4wq3DoMK4wpnDoMK4woHDoMK5wojDoMK4wq3DoMK4wpnDoMK4wqvDoMK4wpnDoMK5wonDoMK4wrIgKFBhZ2VVcCknLFxuICBuZXh0TW9udGg6ICfDoMK5woDDoMK4wpTDoMK4wrfDoMK4wq3DoMK4wpnDoMK4wpbDoMK4wrHDoMK4wpTDoMK5woTDoMK4wpsgKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ8OgwrjCm8OgwrjCtcOgwrjCgcOgwrnCiMOgwrjCrcOgwrjCmcOgwrjCq8OgwrjCmcOgwrnCicOgwrjCsiAoQ29udHJvbCArIGxlZnQpJyxcbiAgbmV4dFllYXI6ICfDoMK4wpvDoMK4wrXDoMK4wpbDoMK4wrHDoMK4wpTDoMK5woTDoMK4wpsgKENvbnRyb2wgKyByaWdodCknLFxuICBwcmV2aW91c0RlY2FkZTogJ8OgwrjCl8OgwrjCqMOgwrjCp8OgwrjCo8OgwrjCo8OgwrjCqcOgwrjCgcOgwrnCiMOgwrjCrcOgwrjCmcOgwrjCq8OgwrjCmcOgwrnCicOgwrjCsicsXG4gIG5leHREZWNhZGU6ICfDoMK4wpfDoMK4wqjDoMK4wqfDoMK4wqPDoMK4wqPDoMK4wqnDoMK4wpbDoMK4wrHDoMK4wpTDoMK5woTDoMK4wpsnLFxuICBwcmV2aW91c0NlbnR1cnk6ICfDoMK4wqjDoMK4wpXDoMK4wqfDoMK4wqPDoMK4wqPDoMK4wqnDoMK4woHDoMK5wojDoMK4wq3DoMK4wpnDoMK4wqvDoMK4wpnDoMK5wonDoMK4wrInLFxuICBuZXh0Q2VudHVyeTogJ8OgwrjCqMOgwrjClcOgwrjCp8OgwrjCo8OgwrjCo8OgwrjCqcOgwrjClsOgwrjCscOgwrjClMOgwrnChMOgwrjCmydcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ8OgwrnCgMOgwrjCpcOgwrjCt8OgwrjCrcOgwrjCgcOgwrnCgMOgwrjCp8OgwrjCpcOgwrjCsidcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXJMb2NhbGUgZnJvbSAnLi4vY2FsZW5kYXIvdGhfVEgnO1xuaW1wb3J0IFRpbWVQaWNrZXJMb2NhbGUgZnJvbSAnLi4vdGltZS1waWNrZXIvdGhfVEgnO1xuXG4vLyBNZXJnZSBpbnRvIGEgbG9jYWxlIG9iamVjdFxuY29uc3QgbG9jYWxlID0ge1xuICBsYW5nICAgICAgICAgICAgOiB7XG4gICAgcGxhY2Vob2xkZXIgICAgIDogJ8OgwrnCgMOgwrjCpcOgwrjCt8OgwrjCrcOgwrjCgcOgwrjCp8OgwrjCscOgwrjCmcOgwrjCl8OgwrjCtcOgwrnCiCcsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWyAnw6DCuMKnw6DCuMKxw6DCuMKZw6DCucKAw6DCuMKjw6DCuMK0w6DCucKIw6DCuMKhw6DCuMKVw6DCucKJw6DCuMKZJywgJ8OgwrjCp8OgwrjCscOgwrjCmcOgwrjCqsOgwrjCtMOgwrnCicOgwrjCmcOgwrjCqsOgwrjCuMOgwrjClCcgXSxcbiAgICAuLi5DYWxlbmRhckxvY2FsZVxuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7IC4uLlRpbWVQaWNrZXJMb2NhbGUgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICcvIMOgwrjCq8OgwrjCmcOgwrnCicOgwrjCsicsXG4gIGp1bXBfdG86ICfDoMK5woTDoMK4wpvDoMK4wqLDoMK4wrHDoMK4wocnLFxuICBqdW1wX3RvX2NvbmZpcm06ICfDoMK4wqLDoMK4wrfDoMK4wpnDoMK4wqLDoMK4wrHDoMK4wpknLFxuICBwYWdlOiAnJyxcblxuICAvLyBQYWdpbmF0aW9uLmpzeFxuICBwcmV2X3BhZ2U6ICfDoMK4wqvDoMK4wpnDoMK5wonDoMK4wrLDoMK4woHDoMK5wojDoMK4wq3DoMK4wpnDoMK4wqvDoMK4wpnDoMK5wonDoMK4wrInLFxuICBuZXh0X3BhZ2U6ICfDoMK4wqvDoMK4wpnDoMK5wonDoMK4wrLDoMK4wpbDoMK4wrHDoMK4wpTDoMK5woTDoMK4wpsnLFxuICBwcmV2XzU6ICfDoMK4wqLDoMK5wonDoMK4wq3DoMK4wpnDoMK4woHDoMK4wqXDoMK4wrHDoMK4wpogNSDDoMK4wqvDoMK4wpnDoMK5wonDoMK4wrInLFxuICBuZXh0XzU6ICfDoMK4wpbDoMK4wrHDoMK4wpTDoMK5woTDoMK4wpsgNSDDoMK4wqvDoMK4wpnDoMK5wonDoMK4wrInLFxuICBwcmV2XzM6ICfDoMK4wqLDoMK5wonDoMK4wq3DoMK4wpnDoMK4woHDoMK4wqXDoMK4wrHDoMK4wpogMyDDoMK4wqvDoMK4wpnDoMK5wonDoMK4wrInLFxuICBuZXh0XzM6ICfDoMK4wpbDoMK4wrHDoMK4wpTDoMK5woTDoMK4wpsgMyDDoMK4wqvDoMK4wpnDoMK5wonDoMK4wrInXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL3RoX1RIJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvdGhfVEgnO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL3RoX1RIJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvdGhfVEgnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ3RoJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICfDoMK4wpXDoMK4wrHDoMK4wqfDoMK4woHDoMK4wqPDoMK4wq3DoMK4wocnLFxuICAgIGZpbHRlckNvbmZpcm06ICfDoMK4wqLDoMK4wrfDoMK4wpnDoMK4wqLDoMK4wrHDoMK4wpknLFxuICAgIGZpbHRlclJlc2V0OiAnw6DCuMKjw6DCuMK1w6DCucKAw6DCuMKLw6DCucKHw6DCuMKVJyxcbiAgICBzZWxlY3RBbGw6ICfDoMK5woDDoMK4wqXDoMK4wrfDoMK4wq3DoMK4woHDoMK4wpfDoMK4wrHDoMK5wonDoMK4wofDoMK4wqvDoMK4wqHDoMK4wpTDoMK5woPDoMK4wpnDoMK4wqvDoMK4wpnDoMK5wonDoMK4wrLDoMK4wpnDoMK4wrXDoMK5woknLFxuICAgIHNlbGVjdEludmVydDogJ8OgwrnCgMOgwrjCpcOgwrjCt8OgwrjCrcOgwrjCgcOgwrjCqsOgwrjClsOgwrjCssOgwrjCmcOgwrjCsMOgwrjClcOgwrjCo8OgwrjCh8OgwrjCgcOgwrjCscOgwrjCmcOgwrjCgsOgwrnCicOgwrjCssOgwrjCoSdcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICfDoMK4wpXDoMK4woHDoMK4wqXDoMK4wocnLFxuICAgIGNhbmNlbFRleHQ6ICfDoMK4wqLDoMK4woHDoMK5woDDoMK4wqXDoMK4wrTDoMK4woEnLFxuICAgIGp1c3RPa1RleHQ6ICfDoMK4wpXDoMK4woHDoMK4wqXDoMK4wocnXG4gIH0sXG4gIFBvcGNvbmZpcm06IHtcbiAgICBva1RleHQ6ICfDoMK4wpXDoMK4woHDoMK4wqXDoMK4wocnLFxuICAgIGNhbmNlbFRleHQ6ICfDoMK4wqLDoMK4woHDoMK5woDDoMK4wqXDoMK4wrTDoMK4woEnXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICfDoMK4woTDoMK5wonDoMK4wpnDoMK4wqvDoMK4wrInLFxuICAgIGl0ZW1Vbml0OiAnw6DCuMKKw6DCuMK0w6DCucKJw6DCuMKZJyxcbiAgICBpdGVtc1VuaXQ6ICfDoMK4worDoMK4wrTDoMK5wonDoMK4wpknXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ8OgwrjCgcOgwrjCs8OgwrjCpcOgwrjCscOgwrjCh8OgwrjCrcOgwrjCscOgwrjCm8OgwrnCgsOgwrjCq8OgwrjCpcOgwrjClC4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ8OgwrjCpcOgwrjCmsOgwrnChMOgwrjCn8OgwrjCpcOgwrnCjCcsXG4gICAgdXBsb2FkRXJyb3I6ICfDoMK5woDDoMK4woHDoMK4wrTDoMK4wpTDoMK4woLDoMK5wonDoMK4wq3DoMK4wpzDoMK4wrTDoMK4wpTDoMK4wp7DoMK4wqXDoMK4wrLDoMK4wpTDoMK5woPDoMK4wpnDoMK4woHDoMK4wrLDoMK4wqPDoMK4wq3DoMK4wrHDoMK4wpvDoMK5woLDoMK4wqvDoMK4wqXDoMK4wpQnLFxuICAgIHByZXZpZXdGaWxlOiAnw6DCuMKUw6DCuMK5w6DCuMKVw6DCuMKxw6DCuMKnw6DCuMKtw6DCuMKiw6DCucKIw6DCuMKyw6DCuMKHw6DCucKEw6DCuMKfw6DCuMKlw6DCucKMJ1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnw6DCucKEw6DCuMKhw6DCucKIw6DCuMKhw6DCuMK1w6DCuMKCw6DCucKJw6DCuMKtw6DCuMKhw6DCuMK5w6DCuMKlJ1xuICB9XG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICdaYW1hbiBTZcODwqcnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyTG9jYWxlIGZyb20gJy4uL2NhbGVuZGFyL2VuX1VTJztcbmltcG9ydCBUaW1lUGlja2VyTG9jYWxlIGZyb20gJy4uL3RpbWUtcGlja2VyL3RyX1RSJztcblxuLy8gTWVyZ2UgaW50byBhIGxvY2FsZSBvYmplY3RcbmNvbnN0IGxvY2FsZSA9IHtcbiAgbGFuZzoge1xuICAgIHBsYWNlaG9sZGVyOiAnVGFyaWggU2XDg8KnJyxcbiAgICByYW5nZVBsYWNlaG9sZGVyOiBbJ0Jhw4XCn2xhbmfDhMKxw4PCpyBUYXJpaGknLCAnQml0acOFwp8gVGFyaWhpJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL2VuX1VTJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvdHJfVFInO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL2VuX1VTJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvdHJfVFInO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ3RyJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICdNZW7Dg8K8IEZpbHRyZWxlJyxcbiAgICBmaWx0ZXJDb25maXJtOiAnVGFtYW0nLFxuICAgIGZpbHRlclJlc2V0OiAnU8OEwrFmw4TCsXJsYScsXG4gICAgc2VsZWN0QWxsOiAnSGVwc2luaSBTZcODwqcnLFxuICAgIHNlbGVjdEludmVydDogJ1RlcnNpbmkgU2XDg8KnJ1xuICB9LFxuICBNb2RhbDoge1xuICAgIG9rVGV4dDogJ1RhbWFtJyxcbiAgICBjYW5jZWxUZXh0OiAnw4TCsHB0YWwnLFxuICAgIGp1c3RPa1RleHQ6ICdUYW1hbSdcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ1RhbWFtJyxcbiAgICBjYW5jZWxUZXh0OiAnw4TCsHB0YWwnXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdBcmFtYScsXG4gICAgaXRlbVVuaXQ6ICfDg8KWw4TCn2UnLFxuICAgIGl0ZW1zVW5pdDogJ8ODwpbDhMKfZWxlcidcbiAgfSxcbiAgVXBsb2FkOiB7XG4gICAgdXBsb2FkaW5nOiAnWcODwrxrbGVuaXlvci4uLicsXG4gICAgcmVtb3ZlRmlsZTogYERvc3lhecOEwrEga2FsZMOEwrFyYCxcbiAgICB1cGxvYWRFcnJvcjogJ1nDg8K8a2xlbWUgSGF0YXPDhMKxJyxcbiAgICBwcmV2aWV3RmlsZTogYERvc3lhecOEwrEgw4PClm5pemxlYFxuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnVmVyaSBZb2snXG4gIH1cbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ8OQwqHDkcKMw5DCvsOQwrPDkMK+w5DCtMOQwr3DkcKWJyxcbiAgbm93OiAnw5DCl8OQwrDDkcKAw5DCsMOQwrcnLFxuICBiYWNrVG9Ub2RheTogJ8OQwp/DkMK+w5HCgsOQwr7DkcKHw5DCvcOQwrAgw5DCtMOQwrDDkcKCw5DCsCcsXG4gIG9rOiAnT2snLFxuICBjbGVhcjogJ8OQwp7DkcKHw5DCuMORwoHDkcKCw5DCuMORwoLDkMK4JyxcbiAgbW9udGg6ICfDkMKcw5HClsORwoHDkcKPw5HChsORwownLFxuICB5ZWFyOiAnw5DCoMORwpbDkMK6JyxcbiAgdGltZVNlbGVjdDogJ8OQwp7DkMKxw5HCgMOQwrDDkcKCw5DCuCDDkcKHw5DCsMORwoEnLFxuICBkYXRlU2VsZWN0OiAnw5DCnsOQwrHDkcKAw5DCsMORwoLDkMK4IMOQwrTDkMKww5HCgsORwoMnLFxuICBtb250aFNlbGVjdDogJ8OQwp7DkMKxw5HCgMOQwrDDkcKCw5DCuCDDkMK8w5HClsORwoHDkcKPw5HChsORwownLFxuICB5ZWFyU2VsZWN0OiAnw5DCnsOQwrHDkcKAw5DCsMORwoLDkMK4IMORwoDDkcKWw5DCuicsXG4gIGRlY2FkZVNlbGVjdDogJ8OQwp7DkMKxw5HCgMOQwrDDkcKCw5DCuCDDkMK0w5DCtcORwoHDkcKPw5HCgsOQwrjDkcKAw5HClsORwofDkcKHw5HCjycsXG4gIHllYXJGb3JtYXQ6ICdZWVlZJyxcbiAgZGF0ZUZvcm1hdDogJ0QtTS1ZWVlZJyxcbiAgZGF5Rm9ybWF0OiAnRCcsXG4gIGRhdGVUaW1lRm9ybWF0OiAnRC1NLVlZWVkgSEg6bW06c3MnLFxuICBtb250aEJlZm9yZVllYXI6IHRydWUsXG4gIHByZXZpb3VzTW9udGg6ICfDkMKfw5DCvsOQwr/DkMK1w5HCgMOQwrXDkMK0w5DCvcORwpbDkMK5IMOQwrzDkcKWw5HCgcORwo/DkcKGw5HCjCAoUGFnZVVwKScsXG4gIG5leHRNb250aDogJ8OQwp3DkMKww5HCgcORwoLDkcKDw5DCv8OQwr3DkMK4w5DCuSDDkMK8w5HClsORwoHDkcKPw5HChsORwowgKFBhZ2VEb3duKScsXG4gIHByZXZpb3VzWWVhcjogJ8OQwp/DkMK+w5DCv8OQwrXDkcKAw5DCtcOQwrTDkMK9w5HClsOQwrkgw5HCgMORwpbDkMK6IChDb250cm9sICsgbGVmdCknLFxuICBuZXh0WWVhcjogJ8OQwp3DkMKww5HCgcORwoLDkcKDw5DCv8OQwr3DkMK4w5DCuSDDkcKAw5HClsOQwrogKENvbnRyb2wgKyByaWdodCknLFxuICBwcmV2aW91c0RlY2FkZTogJ8OQwp/DkMK+w5DCv8OQwrXDkcKAw5DCtcOQwrTDkMK9w5HClCDDkMK0w5DCtcORwoHDkcKPw5HCgsOQwrjDkcKAw5HClsORwofDkcKHw5HCjycsXG4gIG5leHREZWNhZGU6ICfDkMKdw5DCsMORwoHDkcKCw5HCg8OQwr/DkMK9w5DCtSDDkMK0w5DCtcORwoHDkcKPw5HCgsOQwrjDkcKAw5HClsORwofDkcKHw5HCjycsXG4gIHByZXZpb3VzQ2VudHVyeTogJ8OQwp/DkMK+w5DCv8OQwrXDkcKAw5DCtcOQwrTDkMK9w5HClCDDkcKBw5HCgsOQwr7DkMK7w5HClsORwoLDkcKCw5HCjycsXG4gIG5leHRDZW50dXJ5OiAnw5DCncOQwrDDkcKBw5HCgsORwoPDkMK/w5DCvcOQwrUgw5HCgcORwoLDkMK+w5DCu8ORwpbDkcKCw5HCgsORwo8nXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICfDkMKew5DCscOQwrXDkcKAw5HClsORwoLDkcKMIMORwofDkMKww5HCgSdcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXJMb2NhbGUgZnJvbSAnLi4vY2FsZW5kYXIvdWtfVUEnO1xuaW1wb3J0IFRpbWVQaWNrZXJMb2NhbGUgZnJvbSAnLi4vdGltZS1waWNrZXIvdWtfVUEnO1xuXG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ8OQwp7DkMKxw5DCtcORwoDDkcKWw5HCgsORwowgw5DCtMOQwrDDkcKCw5HCgycsXG4gICAgcmFuZ2VQbGFjZWhvbGRlcjogWyfDkMKfw5DCvsORwofDkMKww5HCgsOQwrrDkMK+w5DCssOQwrAgw5DCtMOQwrDDkcKCw5DCsCcsICfDkMKaw5HClsOQwr3DkcKGw5DCtcOQwrLDkMKwIMOQwrTDkMKww5HCgsOQwrAnXSxcbiAgICAuLi5DYWxlbmRhckxvY2FsZVxuICB9LFxuICB0aW1lUGlja2VyTG9jYWxlOiB7XG4gICAgLi4uVGltZVBpY2tlckxvY2FsZVxuICB9XG59O1xuXG4vLyBBbGwgc2V0dGluZ3MgYXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2Jsb2IvbWFzdGVyL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvbG9jYWxlL2V4YW1wbGUuanNvblxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJy8gw5HCgcORwoLDkMK+w5HCgMORwpbDkMK9w5HChsORwpYnLFxuICBqdW1wX3RvOiAnw5DCn8OQwrXDkcKAw5DCtcOQwrnDkcKCw5DCuCcsXG4gIGp1bXBfdG9fY29uZmlybTogJ8OQwr/DkcKWw5DCtMORwoLDkMKyw5DCtcORwoDDkMK0w5DCuMORwoLDkMK4JyxcbiAgcGFnZTogJycsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnw5DCn8OQwr7DkMK/w5DCtcORwoDDkMK1w5DCtMOQwr3DkcKPIMORwoHDkcKCw5DCvsORwoDDkcKWw5DCvcOQwrrDkMKwJyxcbiAgbmV4dF9wYWdlOiAnw5DCncOQwrDDkcKBw5HCgsORwoPDkMK/w5DCvcOQwrAgw5HCgcORwoLDkMK+w5HCgMORwpbDkMK9w5DCusOQwrAnLFxuICBwcmV2XzU6ICfDkMKfw5DCvsOQwr/DkMK1w5HCgMOQwrXDkMK0w5DCvcORwpYgNSDDkcKBw5HCgsOQwr7DkcKAw5HClsOQwr3DkMK+w5DCuicsXG4gIG5leHRfNTogJ8OQwp3DkMKww5HCgcORwoLDkcKDw5DCv8OQwr3DkcKWIDUgw5HCgcORwoLDkMK+w5HCgMORwpbDkMK9w5DCvsOQwronLFxuICBwcmV2XzM6ICfDkMKfw5DCvsOQwr/DkMK1w5HCgMOQwrXDkMK0w5DCvcORwpYgMyDDkcKBw5HCgsOQwr7DkcKAw5HClsOQwr3DkMK6w5DCuCcsXG4gIG5leHRfMzogJ8OQwp3DkMKww5HCgcORwoLDkcKDw5DCv8OQwr3DkcKWIDMgw5HCgcORwoLDkMK+w5HCgMORwpbDkMK9w5DCusOQwrgnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhciBmcm9tICcuL2NhbGVuZGFyL3VrX1VBJztcbmltcG9ydCBEYXRlUGlja2VyIGZyb20gJy4vZGF0ZS1waWNrZXIvdWtfVUEnO1xuaW1wb3J0IFBhZ2luYXRpb24gZnJvbSAnLi9wYWdpbmF0aW9uL3VrX1VBJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vdGltZS1waWNrZXIvdWtfVUEnO1xuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvY2FsZTogJ3VrJyxcbiAgUGFnaW5hdGlvbixcbiAgRGF0ZVBpY2tlcixcbiAgVGltZVBpY2tlcixcbiAgQ2FsZW5kYXIsXG4gIFRhYmxlOiB7XG4gICAgZmlsdGVyVGl0bGU6ICfDkMKkw5HClsOQwrvDkcKMw5HCgsORwoDDkcKDw5DCssOQwrDDkcKCw5DCuCcsXG4gICAgZmlsdGVyQ29uZmlybTogJ09LJyxcbiAgICBmaWx0ZXJSZXNldDogJ8OQwqHDkMK6w5DCuMOQwr3DkcKDw5HCgsOQwrgnLFxuICAgIHNlbGVjdEFsbDogJ8OQwp7DkMKxw5HCgMOQwrDDkcKCw5DCuCDDkMKyw5HCgcORwpYnLFxuICAgIHNlbGVjdEludmVydDogJ8OQwobDkMK9w5DCssOQwrXDkcKAw5HCgsORwoPDkMKyw5DCsMORwoLDkMK4IMOQwrLDkMK4w5DCscORwpbDkcKAJ1xuICB9LFxuICBNb2RhbDoge1xuICAgIG9rVGV4dDogJ8OQwpPDkMKww5HCgMOQwrDDkMK3w5DCtCcsXG4gICAgY2FuY2VsVGV4dDogJ8OQwqHDkMK6w5DCsMORwoHDkcKDw5DCssOQwrDDkcKCw5DCuCcsXG4gICAganVzdE9rVGV4dDogJ8OQwpPDkMKww5HCgMOQwrDDkMK3w5DCtCdcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ8OQwpPDkMKww5HCgMOQwrDDkMK3w5DCtCcsXG4gICAgY2FuY2VsVGV4dDogJ8OQwqHDkMK6w5DCsMORwoHDkcKDw5DCssOQwrDDkcKCw5DCuCdcbiAgfSxcbiAgVHJhbnNmZXI6IHtcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ8OQwpLDkMKyw5DCtcOQwrTDkcKWw5HCgsORwowgw5HCgsOQwrXDkMK6w5HCgcORwoIgw5DCtMOQwrvDkcKPIMOQwr/DkMK+w5HCiMORwoPDkMK6w5HCgycsXG4gICAgaXRlbVVuaXQ6ICdpdGVtJyxcbiAgICBpdGVtc1VuaXQ6ICdpdGVtcydcbiAgfSxcbiAgVXBsb2FkOiB7XG4gICAgdXBsb2FkaW5nOiAnw5DCl8OQwrDDkMKyw5DCsMOQwr3DkcKCw5DCsMOQwrbDkMK1w5DCvcOQwr3DkcKPIC4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ8OQwpLDkMK4w5DCtMOQwrDDkMK7w5DCuMORwoLDkMK4IMORwoTDkMKww5DCucOQwrsnLFxuICAgIHVwbG9hZEVycm9yOiAnw5DCn8OQwr7DkMK8w5DCuMOQwrvDkMK6w5DCsCDDkMK3w5DCsMOQwrLDkMKww5DCvcORwoLDkMKww5DCtsOQwrXDkMK9w5DCvcORwo8nLFxuICAgIHByZXZpZXdGaWxlOiAnw5DCn8OQwr7DkMK/w5DCtcORwoDDkMK1w5DCtMOQwr3DkcKWw5DCuSDDkMK/w5DCtcORwoDDkMK1w5DCs8OQwrvDkcKPw5DCtCDDkcKEw5DCsMOQwrnDkMK7w5HCgydcbiAgfSxcbiAgRW1wdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJ8OQwpTDkMKww5DCvcOQwrjDkcKFIMOQwr3DkMK1w5DCvMOQwrDDkcKUJ1xuICB9XG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCBDYWxlbmRhckxvY2FsZSBmcm9tICcuLi9jYWxlbmRhci9lbl9VUyc7XG5pbXBvcnQgVGltZVBpY2tlckxvY2FsZSBmcm9tICcuLi90aW1lLXBpY2tlci9lbl9VUyc7XG5cbi8vIE1lcmdlIGludG8gYSBsb2NhbGUgb2JqZWN0XG5jb25zdCBsb2NhbGUgPSB7XG4gIGxhbmc6IHtcbiAgICBwbGFjZWhvbGRlcjogJ0Now6HCu8KNbiB0aMOhwrvCnWkgw4TCkWnDocK7woNtJyxcbiAgICByYW5nZVBsYWNlaG9sZGVyOiBbJ05nw4PCoHkgYsOhwrrCr3Qgw4TCkcOhwrrCp3UnLCAnTmfDg8KgeSBrw6HCusK/dCB0aMODwrpjJ10sXG4gICAgLi4uQ2FsZW5kYXJMb2NhbGVcbiAgfSxcbiAgdGltZVBpY2tlckxvY2FsZToge1xuICAgIC4uLlRpbWVQaWNrZXJMb2NhbGVcbiAgfVxufTtcblxuLy8gQWxsIHNldHRpbmdzIGF0OlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vYW50LWRlc2lnbi9ibG9iL21hc3Rlci9jb21wb25lbnRzL2RhdGUtcGlja2VyL2xvY2FsZS9leGFtcGxlLmpzb25cblxuZXhwb3J0IGRlZmF1bHQgbG9jYWxlO1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgLy8gT3B0aW9ucy5qc3hcbiAgaXRlbXNfcGVyX3BhZ2U6ICcvIHRyYW5nJyxcbiAganVtcF90bzogJ8OEwpDDocK6wr9uJyxcbiAganVtcF90b19jb25maXJtOiAneMODwqFjIG5ow6HCusKtbicsXG4gIHBhZ2U6ICcnLFxuXG4gIC8vIFBhZ2luYXRpb24uanN4XG4gIHByZXZfcGFnZTogJ1RyYW5nIFRyw4bCsMOhwrvCm2MnLFxuICBuZXh0X3BhZ2U6ICdUcmFuZyBLw6HCusK/JyxcbiAgcHJldl81OiAnVsOhwrvCgSA1IFRyYW5nIFRyw4bCsMOhwrvCm2MnLFxuICBuZXh0XzU6ICfDhMKQw6HCusK/biA1IFRyYW5nIEvDocK6wr8nLFxuICBwcmV2XzM6ICdWw6HCu8KBIDMgVHJhbmcgVHLDhsKww6HCu8KbYycsXG4gIG5leHRfMzogJ8OEwpDDocK6wr9uIDMgVHJhbmcgS8OhwrrCvydcbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuY29uc3QgbG9jYWxlID0ge1xuICBwbGFjZWhvbGRlcjogJ0Now6HCu8KNbiB0aMOhwrvCnWkgZ2lhbidcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGxvY2FsZTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi9jYWxlbmRhci92aV9WTic7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL2RhdGUtcGlja2VyL3ZpX1ZOJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4vcGFnaW5hdGlvbi92aV9WTic7XG5pbXBvcnQgVGltZVBpY2tlciBmcm9tICcuL3RpbWUtcGlja2VyL3ZpX1ZOJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2NhbGU6ICd2aScsXG4gIFBhZ2luYXRpb24sXG4gIERhdGVQaWNrZXIsXG4gIFRpbWVQaWNrZXIsXG4gIENhbGVuZGFyLFxuICBUYWJsZToge1xuICAgIGZpbHRlclRpdGxlOiAnQsOhwrvCmSAnLFxuICAgIGZpbHRlckNvbmZpcm06ICdPSycsXG4gICAgZmlsdGVyUmVzZXQ6ICdUw6HCusKhbyBMw6HCusKhaScsXG4gICAgc2VsZWN0QWxsOiAnQ2jDocK7wo1uIFTDocK6wqV0IEPDocK6wqMnLFxuICAgIHNlbGVjdEludmVydDogJ0Now6HCu8KNbiBOZ8OGwrDDocK7wqNjIEzDocK6wqFpJ1xuICB9LFxuICBNb2RhbDoge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnSHXDocK7wrcnLFxuICAgIGp1c3RPa1RleHQ6ICdPSydcbiAgfSxcbiAgUG9wY29uZmlybToge1xuICAgIG9rVGV4dDogJ09LJyxcbiAgICBjYW5jZWxUZXh0OiAnSHXDocK7wrcnXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdUw4PCrG0gw6HCu8KfIMOEwpHDg8KieScsXG4gICAgaXRlbVVuaXQ6ICdtw6HCu8KlYycsXG4gICAgaXRlbXNVbml0OiAnbcOhwrvCpWMnXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ8OEwpBhbmcgdMOhwrrCo2kgbMODwqpuLi4uJyxcbiAgICByZW1vdmVGaWxlOiAnR8OhwrvCoSBiw6HCu8KPIHTDocK6wq1wIHRpbicsXG4gICAgdXBsb2FkRXJyb3I6ICdMw6HCu8KXaSB0w6HCusKjaSBsw4PCqm4nLFxuICAgIHByZXZpZXdGaWxlOiAnWGVtIHRow6HCu8KtIHTDocK6wq1wIHRpbidcbiAgfSxcbiAgRW1wdHk6IHtcbiAgICBkZXNjcmlwdGlvbjogJ1Ryw6HCu8KRbmcnXG4gIH1cbn07XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICB0b2RheTogJ8OkwrvCisOlwqTCqScsXG4gIG5vdzogJ8Omwq3CpMOlwojCuycsXG4gIGJhY2tUb1RvZGF5OiAnw6jCv8KUw6XCm8Kew6TCu8KKw6XCpMKpJyxcbiAgb2s6ICfDp8KiwrrDpcKuwponLFxuICB0aW1lU2VsZWN0OiAnw6nCgcK4w6bCk8KHw6bCmcKCw6nClsKTJyxcbiAgZGF0ZVNlbGVjdDogJ8OpwoHCuMOmwpPCh8OmwpfCpcOmwpzCnycsXG4gIGNsZWFyOiAnw6bCuMKFw6nCmcKkJyxcbiAgbW9udGg6ICfDpsKcwognLFxuICB5ZWFyOiAnw6XCucK0JyxcbiAgcHJldmlvdXNNb250aDogJ8OkwrjCisOlwoDCi8OmwpzCiCAow6fCv8K7w6nCoMKBw6TCuMKKw6nCjcK1KScsXG4gIG5leHRNb250aDogJ8OkwrjCi8OlwoDCi8OmwpzCiCAow6fCv8K7w6nCoMKBw6TCuMKLw6nCjcK1KScsXG4gIG1vbnRoU2VsZWN0OiAnw6nCgcK4w6bCk8KHw6bCnMKIw6TCu8K9JyxcbiAgeWVhclNlbGVjdDogJ8OpwoHCuMOmwpPCh8OlwrnCtMOkwrvCvScsXG4gIGRlY2FkZVNlbGVjdDogJ8OpwoHCuMOmwpPCh8OlwrnCtMOkwrvCoycsXG4gIHllYXJGb3JtYXQ6ICdZWVlZw6XCucK0JyxcbiAgZGF5Rm9ybWF0OiAnRMOmwpfCpScsXG4gIGRhdGVGb3JtYXQ6ICdZWVlZw6XCucK0TcOmwpzCiETDpsKXwqUnLFxuICBkYXRlVGltZUZvcm1hdDogJ1lZWVnDpcK5wrRNw6bCnMKIRMOmwpfCpSBISMOmwpnCgm1tw6XCiMKGc3PDp8KnwpInLFxuICBwcmV2aW91c1llYXI6ICfDpMK4worDpMK4woDDpcK5wrQgKENvbnRyb2zDqcKNwrXDpcKKwqDDpcK3wqbDpsKWwrnDpcKQwpHDqcKNwrUpJyxcbiAgbmV4dFllYXI6ICfDpMK4wovDpMK4woDDpcK5wrQgKENvbnRyb2zDqcKNwrXDpcKKwqDDpcKPwrPDpsKWwrnDpcKQwpHDqcKNwrUpJyxcbiAgcHJldmlvdXNEZWNhZGU6ICfDpMK4worDpMK4woDDpcK5wrTDpMK7wqMnLFxuICBuZXh0RGVjYWRlOiAnw6TCuMKLw6TCuMKAw6XCucK0w6TCu8KjJyxcbiAgcHJldmlvdXNDZW50dXJ5OiAnw6TCuMKKw6TCuMKAw6TCuMKWw6fCtMKAJyxcbiAgbmV4dENlbnR1cnk6ICfDpMK4wovDpMK4woDDpMK4wpbDp8K0woAnXG59O1xuIiwiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEFsaWJhYmEuY29tIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL05HLVpPUlJPL25nLXpvcnJvLWFudGQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmNvbnN0IGxvY2FsZSA9IHtcbiAgcGxhY2Vob2xkZXI6ICfDqMKrwovDqcKBwrjDpsKTwofDpsKZwoLDqcKWwpMnXG59O1xuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IENhbGVuZGFyTG9jYWxlIGZyb20gJy4uL2NhbGVuZGFyL3poX1RXJztcbmltcG9ydCBUaW1lUGlja2VyTG9jYWxlIGZyb20gJy4uL3RpbWUtcGlja2VyL3poX1RXJztcblxuY29uc3QgbG9jYWxlID0ge1xuICBsYW5nOiB7XG4gICAgcGxhY2Vob2xkZXI6ICfDqMKrwovDqcKBwrjDpsKTwofDpsKXwqXDpsKcwp8nLFxuICAgIHJhbmdlUGxhY2Vob2xkZXI6IFsnw6nClsKLw6XCp8KLw6bCl8Klw6bCnMKfJywgJ8OnwrXCkMOmwp3Cn8OmwpfCpcOmwpzCnyddLFxuICAgIC4uLkNhbGVuZGFyTG9jYWxlXG4gIH0sXG4gIHRpbWVQaWNrZXJMb2NhbGU6IHtcbiAgICAuLi5UaW1lUGlja2VyTG9jYWxlXG4gIH1cbn07XG5cbmxvY2FsZS5sYW5nLm9rID0gJ8OnwqLCuiDDpcKuwponO1xuXG4vLyBBbGwgc2V0dGluZ3MgYXQ6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9hbnQtZGVzaWduL2Jsb2IvbWFzdGVyL2NvbXBvbmVudHMvZGF0ZS1waWNrZXIvbG9jYWxlL2V4YW1wbGUuanNvblxuXG5leHBvcnQgZGVmYXVsdCBsb2NhbGU7XG4iLCIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgQWxpYmFiYS5jb20gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQge1xuICAvLyBPcHRpb25zLmpzeFxuICBpdGVtc19wZXJfcGFnZTogJ8OmwqLCnS/DqcKgwoEnLFxuICBqdW1wX3RvOiAnw6jCt8Kzw6jCh8KzJyxcbiAganVtcF90b19jb25maXJtOiAnw6fCosK6w6XCrsKaJyxcbiAgcGFnZTogJ8OpwqDCgScsXG5cbiAgLy8gUGFnaW5hdGlvbi5qc3hcbiAgcHJldl9wYWdlOiAnw6TCuMKKw6TCuMKAw6nCoMKBJyxcbiAgbmV4dF9wYWdlOiAnw6TCuMKLw6TCuMKAw6nCoMKBJyxcbiAgcHJldl81OiAnw6XCkMKRw6XCicKNIDUgw6nCoMKBJyxcbiAgbmV4dF81OiAnw6XCkMKRw6XCvsKMIDUgw6nCoMKBJyxcbiAgcHJldl8zOiAnw6XCkMKRw6XCicKNIDMgw6nCoMKBJyxcbiAgbmV4dF8zOiAnw6XCkMKRw6XCvsKMIDMgw6nCoMKBJ1xufTtcbiIsIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBBbGliYWJhLmNvbSBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9ORy1aT1JSTy9uZy16b3Jyby1hbnRkL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgQ2FsZW5kYXIgZnJvbSAnLi9jYWxlbmRhci96aF9UVyc7XG5pbXBvcnQgRGF0ZVBpY2tlciBmcm9tICcuL2RhdGUtcGlja2VyL3poX1RXJztcbmltcG9ydCBQYWdpbmF0aW9uIGZyb20gJy4vcGFnaW5hdGlvbi96aF9UVyc7XG5pbXBvcnQgVGltZVBpY2tlciBmcm9tICcuL3RpbWUtcGlja2VyL3poX1RXJztcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2NhbGU6ICd6aC10dycsXG4gIFBhZ2luYXRpb24sXG4gIERhdGVQaWNrZXIsXG4gIFRpbWVQaWNrZXIsXG4gIENhbGVuZGFyLFxuICBUYWJsZToge1xuICAgIGZpbHRlclRpdGxlOiAnw6fCr8Kpw6nCgcK4w6XCmcKoJyxcbiAgICBmaWx0ZXJDb25maXJtOiAnw6fCosK6IMOlwq7CmicsXG4gICAgZmlsdGVyUmVzZXQ6ICfDqcKHwo0gw6fCvcKuJyxcbiAgICBzZWxlY3RBbGw6ICfDpcKFwqjDqcKDwqjDqcKBwrjDpcKPwpYnLFxuICAgIHNlbGVjdEludmVydDogJ8Olwo/CjcOlwpDCkcOpwoHCuMOlwo/ClidcbiAgfSxcbiAgTW9kYWw6IHtcbiAgICBva1RleHQ6ICfDp8Kiwrogw6XCrsKaJyxcbiAgICBjYW5jZWxUZXh0OiAnw6XCj8KWIMOmwrbCiCcsXG4gICAganVzdE9rVGV4dDogJ09LJ1xuICB9LFxuICBQb3Bjb25maXJtOiB7XG4gICAgb2tUZXh0OiAnw6fCosK6IMOlwq7CmicsXG4gICAgY2FuY2VsVGV4dDogJ8Olwo/CliDDpsK2wognXG4gIH0sXG4gIFRyYW5zZmVyOiB7XG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICfDpsKQwpzDpcKwwovDqMKzwofDpsKWwpknLFxuICAgIGl0ZW1Vbml0OiAnw6nCoMKFw6fCm8KuJyxcbiAgICBpdGVtc1VuaXQ6ICfDqcKgwoXDp8Kbwq4nXG4gIH0sXG4gIFVwbG9hZDoge1xuICAgIHVwbG9hZGluZzogJ8Omwq3Co8OlwpzCqMOkwrjCisOlwoLCsy4uLicsXG4gICAgcmVtb3ZlRmlsZTogJ8OlwojCqsOpwpnCpMOmwqrClMOmwqHCiCcsXG4gICAgdXBsb2FkRXJyb3I6ICfDpMK4worDpcKCwrPDpcKkwrHDpsKVwpcnLFxuICAgIHByZXZpZXdGaWxlOiAnw6bCqsKUw6bCocKIw6nCoMKQw6jCpsK9J1xuICB9LFxuICBFbXB0eToge1xuICAgIGRlc2NyaXB0aW9uOiAnw6fChMKhw6bCrcKkw6jCs8KHw6bClsKZJ1xuICB9XG59O1xuIl0sIm5hbWVzIjpbImxvY2FsZSIsIlRpbWVQaWNrZXJMb2NhbGUiLCJEYXRlUGlja2VyIiwiVGltZVBpY2tlciIsIkNhbGVuZGFyIiwiQ2FsZW5kYXJMb2NhbGUiLCJQYWdpbmF0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUEscUJBQWU7SUFDYixLQUFLLEVBQUUsSUFBSTtJQUNYLEdBQUcsRUFBRSxJQUFJO0lBQ1QsV0FBVyxFQUFFLE1BQU07SUFDbkIsRUFBRSxFQUFFLElBQUk7SUFDUixVQUFVLEVBQUUsTUFBTTtJQUNsQixVQUFVLEVBQUUsTUFBTTtJQUNsQixLQUFLLEVBQUUsSUFBSTtJQUNYLEtBQUssRUFBRSxHQUFHO0lBQ1YsSUFBSSxF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