moh-common-lib
Version:
A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).
471 lines • 66.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, Output, EventEmitter, Optional, Self } from '@angular/core';
import { Base } from '../../models/base';
import { NgControl } from '@angular/forms';
/**
* Interface for countries
* @record
*/
export function CountryList() { }
if (false) {
/** @type {?} */
CountryList.prototype.countryCode;
/** @type {?} */
CountryList.prototype.description;
}
/** @type {?} */
export const CANADA = 'CAN';
/** @type {?} */
export const UNITED_STATES = 'USA';
/**
* Default list of countries
* @type {?}
*/
export const COUNTRY_LIST = [
{ countryCode: 'AFG', description: 'Afghanistan' },
{ countryCode: 'ALA', description: 'Åland Islands' },
{ countryCode: 'ALB', description: 'Albania' },
{ countryCode: 'DZA', description: 'Algeria' },
{ countryCode: 'ASM', description: 'American Samoa' },
{ countryCode: 'AND', description: 'Andorra' },
{ countryCode: 'AGO', description: 'Angola' },
{ countryCode: 'AIA', description: 'Anguilla' },
{ countryCode: 'ATA', description: 'Antarctica' },
{ countryCode: 'ATG', description: 'Antigua and Barbuda' },
{ countryCode: 'ARG', description: 'Argentina' },
{ countryCode: 'ARM', description: 'Armenia' },
{ countryCode: 'ABW', description: 'Aruba' },
{ countryCode: 'AUS', description: 'Australia' },
{ countryCode: 'AUT', description: 'Austria' },
{ countryCode: 'AZE', description: 'Azerbaijan' },
{ countryCode: 'BHS', description: 'Bahamas' },
{ countryCode: 'BHR', description: 'Bahrain' },
{ countryCode: 'BGD', description: 'Bangladesh' },
{ countryCode: 'BRB', description: 'Barbados' },
{ countryCode: 'BLR', description: 'Belarus' },
{ countryCode: 'BEL', description: 'Belgium' },
{ countryCode: 'BLZ', description: 'Belize' },
{ countryCode: 'BEN', description: 'Benin' },
{ countryCode: 'BMU', description: 'Bermuda' },
{ countryCode: 'BTN', description: 'Bhutan' },
{ countryCode: 'BOL', description: 'Bolivia, Plurinational State of' },
{ countryCode: 'BES', description: 'Bonaire, Sint Eustatius and Saba' },
{ countryCode: 'BIH', description: 'Bosnia and Herzegovina' },
{ countryCode: 'BWA', description: 'Botswana' },
{ countryCode: 'BVT', description: 'Bouvet Island' },
{ countryCode: 'BRA', description: 'Brazil' },
{ countryCode: 'IOT', description: 'British Indian Ocean Territory' },
{ countryCode: 'BRN', description: 'Brunei Darussalam' },
{ countryCode: 'BGR', description: 'Bulgaria' },
{ countryCode: 'BFA', description: 'Burkina Faso' },
{ countryCode: 'BDI', description: 'Burundi' },
{ countryCode: 'KHM', description: 'Cambodia' },
{ countryCode: 'CMR', description: 'Cameroon' },
{ countryCode: 'CAN', description: 'Canada' },
{ countryCode: 'CPV', description: 'Cape Verde' },
{ countryCode: 'CYM', description: 'Cayman Islands' },
{ countryCode: 'CAF', description: 'Central African Republic' },
{ countryCode: 'TCD', description: 'Chad' },
{ countryCode: 'CHL', description: 'Chile' },
{ countryCode: 'CHN', description: 'China' },
{ countryCode: 'CXR', description: 'Christmas Island' },
{ countryCode: 'CCK', description: 'Cocos (Keeling) Islands' },
{ countryCode: 'COL', description: 'Colombia' },
{ countryCode: 'COM', description: 'Comoros' },
{ countryCode: 'COG', description: 'Congo' },
{ countryCode: 'COD', description: 'Congo, the Democratic Republic of the' },
{ countryCode: 'COK', description: 'Cook Islands' },
{ countryCode: 'CRI', description: 'Costa Rica' },
{ countryCode: 'CIV', description: 'Côte d\'Ivoire' },
{ countryCode: 'HRV', description: 'Croatia' },
{ countryCode: 'CUB', description: 'Cuba' },
{ countryCode: 'CUW', description: 'Curaçao' },
{ countryCode: 'CYP', description: 'Cyprus' },
{ countryCode: 'CZE', description: 'Czech Republic' },
{ countryCode: 'DNK', description: 'Denmark' },
{ countryCode: 'DJI', description: 'Djibouti' },
{ countryCode: 'DMA', description: 'Dominica' },
{ countryCode: 'DOM', description: 'Dominican Republic' },
{ countryCode: 'ECU', description: 'Ecuador' },
{ countryCode: 'EGY', description: 'Egypt' },
{ countryCode: 'SLV', description: 'El Salvador' },
{ countryCode: 'GNQ', description: 'Equatorial Guinea' },
{ countryCode: 'ERI', description: 'Eritrea' },
{ countryCode: 'EST', description: 'Estonia' },
{ countryCode: 'ETH', description: 'Ethiopia' },
{ countryCode: 'FLK', description: 'Falkland Islands (Malvinas)' },
{ countryCode: 'FRO', description: 'Faroe Islands' },
{ countryCode: 'FJI', description: 'Fiji' },
{ countryCode: 'FIN', description: 'Finland' },
{ countryCode: 'FRA', description: 'France' },
{ countryCode: 'GUF', description: 'French Guiana' },
{ countryCode: 'PYF', description: 'French Polynesia' },
{ countryCode: 'ATF', description: 'French Southern Territories' },
{ countryCode: 'GAB', description: 'Gabon' },
{ countryCode: 'GMB', description: 'Gambia' },
{ countryCode: 'GEO', description: 'Georgia' },
{ countryCode: 'DEU', description: 'Germany' },
{ countryCode: 'GHA', description: 'Ghana' },
{ countryCode: 'GIB', description: 'Gibraltar' },
{ countryCode: 'GRC', description: 'Greece' },
{ countryCode: 'GRL', description: 'Greenland' },
{ countryCode: 'GRD', description: 'Grenada' },
{ countryCode: 'GLP', description: 'Guadeloupe' },
{ countryCode: 'GUM', description: 'Guam' },
{ countryCode: 'GTM', description: 'Guatemala' },
{ countryCode: 'GGY', description: 'Guernsey' },
{ countryCode: 'GIN', description: 'Guinea' },
{ countryCode: 'GNB', description: 'Guinea-Bissau' },
{ countryCode: 'GUY', description: 'Guyana' },
{ countryCode: 'HTI', description: 'Haiti' },
{ countryCode: 'HMD', description: 'Heard Island and McDonald Islands' },
{ countryCode: 'VAT', description: 'Holy See (Vatican City State)' },
{ countryCode: 'HND', description: 'Honduras' },
{ countryCode: 'HKG', description: 'Hong Kong' },
{ countryCode: 'HUN', description: 'Hungary' },
{ countryCode: 'ISL', description: 'Iceland' },
{ countryCode: 'IND', description: 'India' },
{ countryCode: 'IDN', description: 'Indonesia' },
{ countryCode: 'IRN', description: 'Iran, Islamic Republic of' },
{ countryCode: 'IRQ', description: 'Iraq' },
{ countryCode: 'IRL', description: 'Ireland' },
{ countryCode: 'IMN', description: 'Isle of Man' },
{ countryCode: 'ISR', description: 'Israel' },
{ countryCode: 'ITA', description: 'Italy' },
{ countryCode: 'JAM', description: 'Jamaica' },
{ countryCode: 'JPN', description: 'Japan' },
{ countryCode: 'JEY', description: 'Jersey' },
{ countryCode: 'JOR', description: 'Jordan' },
{ countryCode: 'KAZ', description: 'Kazakhstan' },
{ countryCode: 'KEN', description: 'Kenya' },
{ countryCode: 'KIR', description: 'Kiribati' },
{ countryCode: 'PRK', description: 'Korea, Democratic People\'s Republic of' },
{ countryCode: 'KOR', description: 'Korea, Republic of' },
{ countryCode: 'KWT', description: 'Kuwait' },
{ countryCode: 'KGZ', description: 'Kyrgyzstan' },
{ countryCode: 'LAO', description: 'Lao People\'s Democratic Republic' },
{ countryCode: 'LVA', description: 'Latvia' },
{ countryCode: 'LBN', description: 'Lebanon' },
{ countryCode: 'LSO', description: 'Lesotho' },
{ countryCode: 'LBR', description: 'Liberia' },
{ countryCode: 'LBY', description: 'Libya' },
{ countryCode: 'LIE', description: 'Liechtenstein' },
{ countryCode: 'LTU', description: 'Lithuania' },
{ countryCode: 'LUX', description: 'Luxembourg' },
{ countryCode: 'MAC', description: 'Macao' },
{ countryCode: 'MKD', description: 'Macedonia, the former Yugoslav Republic of' },
{ countryCode: 'MDG', description: 'Madagascar' },
{ countryCode: 'MWI', description: 'Malawi' },
{ countryCode: 'MYS', description: 'Malaysia' },
{ countryCode: 'MDV', description: 'Maldives' },
{ countryCode: 'MLI', description: 'Mali' },
{ countryCode: 'MLT', description: 'Malta' },
{ countryCode: 'MHL', description: 'Marshall Islands' },
{ countryCode: 'MTQ', description: 'Martinique' },
{ countryCode: 'MRT', description: 'Mauritania' },
{ countryCode: 'MUS', description: 'Mauritius' },
{ countryCode: 'MYT', description: 'Mayotte' },
{ countryCode: 'MEX', description: 'Mexico' },
{ countryCode: 'FSM', description: 'Micronesia, Federated States of' },
{ countryCode: 'MDA', description: 'Moldova, Republic of' },
{ countryCode: 'MCO', description: 'Monaco' },
{ countryCode: 'MNG', description: 'Mongolia' },
{ countryCode: 'MNE', description: 'Montenegro' },
{ countryCode: 'MSR', description: 'Montserrat' },
{ countryCode: 'MAR', description: 'Morocco' },
{ countryCode: 'MOZ', description: 'Mozambique' },
{ countryCode: 'MMR', description: 'Myanmar' },
{ countryCode: 'NAM', description: 'Namibia' },
{ countryCode: 'NRU', description: 'Nauru' },
{ countryCode: 'NPL', description: 'Nepal' },
{ countryCode: 'NLD', description: 'Netherlands' },
{ countryCode: 'NCL', description: 'New Caledonia' },
{ countryCode: 'NZL', description: 'New Zealand' },
{ countryCode: 'NIC', description: 'Nicaragua' },
{ countryCode: 'NER', description: 'Niger' },
{ countryCode: 'NGA', description: 'Nigeria' },
{ countryCode: 'NIU', description: 'Niue' },
{ countryCode: 'NFK', description: 'Norfolk Island' },
{ countryCode: 'MNP', description: 'Northern Mariana Islands' },
{ countryCode: 'NOR', description: 'Norway' },
{ countryCode: 'OMN', description: 'Oman' },
{ countryCode: 'PAK', description: 'Pakistan' },
{ countryCode: 'PLW', description: 'Palau' },
{ countryCode: 'PSE', description: 'Palestinian Territory, Occupied' },
{ countryCode: 'PAN', description: 'Panama' },
{ countryCode: 'PNG', description: 'Papua New Guinea' },
{ countryCode: 'PRY', description: 'Paraguay' },
{ countryCode: 'PER', description: 'Peru' },
{ countryCode: 'PHL', description: 'Philippines' },
{ countryCode: 'PCN', description: 'Pitcairn' },
{ countryCode: 'POL', description: 'Poland' },
{ countryCode: 'PRT', description: 'Portugal' },
{ countryCode: 'PRI', description: 'Puerto Rico' },
{ countryCode: 'QAT', description: 'Qatar' },
{ countryCode: 'REU', description: 'Réunion' },
{ countryCode: 'ROU', description: 'Romania' },
{ countryCode: 'RUS', description: 'Russian Federation' },
{ countryCode: 'RWA', description: 'Rwanda' },
{ countryCode: 'BLM', description: 'Saint Barthélemy' },
{ countryCode: 'SHN', description: 'Saint Helena, Ascension and Tristan da Cunha' },
{ countryCode: 'KNA', description: 'Saint Kitts and Nevis' },
{ countryCode: 'LCA', description: 'Saint Lucia' },
{ countryCode: 'MAF', description: 'Saint Martin (French part)' },
{ countryCode: 'SPM', description: 'Saint Pierre and Miquelon' },
{ countryCode: 'VCT', description: 'Saint Vincent and the Grenadines' },
{ countryCode: 'WSM', description: 'Samoa' },
{ countryCode: 'SMR', description: 'San Marino' },
{ countryCode: 'STP', description: 'Sao Tome and Principe' },
{ countryCode: 'SAU', description: 'Saudi Arabia' },
{ countryCode: 'SEN', description: 'Senegal' },
{ countryCode: 'SRB', description: 'Serbia' },
{ countryCode: 'SYC', description: 'Seychelles' },
{ countryCode: 'SLE', description: 'Sierra Leone' },
{ countryCode: 'SGP', description: 'Singapore' },
{ countryCode: 'SXM', description: 'Sint Maarten (Dutch part)' },
{ countryCode: 'SVK', description: 'Slovakia' },
{ countryCode: 'SVN', description: 'Slovenia' },
{ countryCode: 'SLB', description: 'Solomon Islands' },
{ countryCode: 'SOM', description: 'Somalia' },
{ countryCode: 'ZAF', description: 'South Africa' },
{ countryCode: 'SGS', description: 'South Georgia and the South Sandwich Islands' },
{ countryCode: 'SSD', description: 'South Sudan' },
{ countryCode: 'ESP', description: 'Spain' },
{ countryCode: 'LKA', description: 'Sri Lanka' },
{ countryCode: 'SDN', description: 'Sudan' },
{ countryCode: 'SUR', description: 'Suriname' },
{ countryCode: 'SJM', description: 'Svalbard and Jan Mayen' },
{ countryCode: 'SWZ', description: 'Swaziland' },
{ countryCode: 'SWE', description: 'Sweden' },
{ countryCode: 'CHE', description: 'Switzerland' },
{ countryCode: 'SYR', description: 'Syrian Arab Republic' },
{ countryCode: 'TWN', description: 'Taiwan' },
{ countryCode: 'TJK', description: 'Tajikistan' },
{ countryCode: 'TZA', description: 'Tanzania, United Republic of' },
{ countryCode: 'THA', description: 'Thailand' },
{ countryCode: 'TLS', description: 'Timor-Leste' },
{ countryCode: 'TGO', description: 'Togo' },
{ countryCode: 'TKL', description: 'Tokelau' },
{ countryCode: 'TON', description: 'Tonga' },
{ countryCode: 'TTO', description: 'Trinidad and Tobago' },
{ countryCode: 'TUN', description: 'Tunisia' },
{ countryCode: 'TUR', description: 'Turkey' },
{ countryCode: 'TKM', description: 'Turkmenistan' },
{ countryCode: 'TCA', description: 'Turks and Caicos Islands' },
{ countryCode: 'TUV', description: 'Tuvalu' },
{ countryCode: 'UGA', description: 'Uganda' },
{ countryCode: 'UKR', description: 'Ukraine' },
{ countryCode: 'ARE', description: 'United Arab Emirates' },
{ countryCode: 'GBR', description: 'United Kingdom' },
{ countryCode: 'USA', description: 'United States' },
{ countryCode: 'UMI', description: 'United States Minor Outlying Islands' },
{ countryCode: 'URY', description: 'Uruguay' },
{ countryCode: 'UZB', description: 'Uzbekistan' },
{ countryCode: 'VUT', description: 'Vanuatu' },
{ countryCode: 'VEN', description: 'Venezuela, Bolivarian Republic of' },
{ countryCode: 'VNM', description: 'Viet Nam' },
{ countryCode: 'VGB', description: 'Virgin Islands, British' },
{ countryCode: 'VIR', description: 'Virgin Islands, U.S.' },
{ countryCode: 'WLF', description: 'Wallis and Futuna' },
{ countryCode: 'ESH', description: 'Western Sahara' },
{ countryCode: 'YEM', description: 'Yemen' },
{ countryCode: 'ZMB', description: 'Zambia' },
{ countryCode: 'ZWE', description: 'Zimbabwe' }
];
/**
* @param {?} countryCode
* @return {?}
*/
export function getCountryDescription(countryCode) {
/** @type {?} */
const countryObj = COUNTRY_LIST.find((/**
* @param {?} val
* @return {?}
*/
val => countryCode === val.countryCode));
return countryObj ? countryObj.description : countryCode;
}
export class CountryComponent extends Base {
/**
* @param {?} controlDir
*/
constructor(controlDir) {
super();
this.controlDir = controlDir;
this.label = 'Jurisdiction';
this.countryList = COUNTRY_LIST;
this.labelforId = 'country_' + this.objectId;
this.disabled = false;
this.required = false;
this.useDropDownList = true;
this.maxlen = '250';
this.placeholder = 'Please select a jurisdiction';
this.valueChange = new EventEmitter();
this.blurEvent = new EventEmitter();
this.country = '';
this.defaultErrMsg = {
required: 'is required.',
invalidChar: 'must contain letters and may include special characters such as hyphens, periods, apostrophes and blank characters.',
};
this._onChange = (/**
* @param {?} _
* @return {?}
*/
(_) => { });
this._onTouched = (/**
* @param {?} _
* @return {?}
*/
(_) => { });
if (controlDir) {
controlDir.valueAccessor = this;
}
}
/**
* @param {?} val
* @return {?}
*/
set value(val) {
if (val) {
this.country = val;
}
}
/**
* @return {?}
*/
get value() {
return this.country;
}
/**
* @return {?}
*/
ngOnInit() {
this.setErrorMsg();
}
/**
* @param {?} value
* @return {?}
*/
onValueChange(value) {
if (value !== this.country) {
this._onChange(value);
this.valueChange.emit(value);
this.country = value;
}
}
/**
* @param {?} event
* @return {?}
*/
onBlurEvent(event) {
this._onTouched(event);
this.blurEvent.emit(event);
}
/**
* @param {?} value
* @return {?}
*/
writeValue(value) {
if (value !== undefined) {
this.country = value;
}
}
// Register change function
/**
* @param {?} fn
* @return {?}
*/
registerOnChange(fn) {
this._onChange = fn;
}
// Register touched function
/**
* @param {?} fn
* @return {?}
*/
registerOnTouched(fn) {
this._onTouched = fn;
}
/**
* @param {?} isDisabled
* @return {?}
*/
setDisabledState(isDisabled) {
this.disabled = isDisabled;
}
/**
* @private
* @return {?}
*/
setErrorMsg() {
if (this.errorMessage) {
Object.keys(this.errorMessage).map((/**
* @param {?} x
* @return {?}
*/
x => this.defaultErrMsg[x] = this.errorMessage[x]));
}
}
}
CountryComponent.decorators = [
{ type: Component, args: [{
selector: 'common-country',
template: "<label for=\"{{labelforId}}\" class=\"control-label\">{{label}}</label>\r\n<div *ngIf=\"useDropDownList; else NotDropDownList\">\r\n <ng-select [items]=\"countryList\"\r\n [ngModel]=\"country\"\r\n (ngModelChange)=\"onValueChange($event)\"\r\n (blur)=\"onBlurEvent($event)\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n labelForId=\"{{labelforId}}\"\r\n bindValue=\"countryCode\"\r\n [clearable]=\"false\"\r\n bindLabel=\"description\"\r\n placeholder=\"{{ placeholder }}\"></ng-select>\r\n</div>\r\n\r\n<!-- Error messages for input -->\r\n<common-error-container\r\n [displayError]=\"controlDir && !disabled && (controlDir.touched || controlDir.dirty) && controlDir?.errors\">\r\n <div *ngIf=\"controlDir?.errors?.required\">\r\n {{label}} {{defaultErrMsg.required}}\r\n </div>\r\n <div *ngIf=\"controlDir?.errors?.invalidChar\">\r\n {{label}} {{defaultErrMsg.invalidChar}}\r\n </div>\r\n</common-error-container>\r\n\r\n<ng-template #NotDropDownList>\r\n <input class=\"form-control\"\r\n spellcheck=\"false\"\r\n type=\"text\"\r\n id=\"{{labelforId}}\"\r\n [value]=\"country\"\r\n (change)=\"onValueChange($event.target.value)\"\r\n (blur)=\"onBlurEvent($event)\"\r\n [disabled]=\"disabled\"\r\n [attr.maxlength]=\"maxlen\"\r\n autocomplete=\"off\"/>\r\n</ng-template>\r\n"
}] }
];
/** @nocollapse */
CountryComponent.ctorParameters = () => [
{ type: NgControl, decorators: [{ type: Optional }, { type: Self }] }
];
CountryComponent.propDecorators = {
label: [{ type: Input }],
countryList: [{ type: Input }],
labelforId: [{ type: Input }],
disabled: [{ type: Input }],
required: [{ type: Input }],
useDropDownList: [{ type: Input }],
maxlen: [{ type: Input }],
errorMessage: [{ type: Input }],
placeholder: [{ type: Input }],
value: [{ type: Input }],
valueChange: [{ type: Output }],
blurEvent: [{ type: Output }]
};
if (false) {
/** @type {?} */
CountryComponent.prototype.label;
/** @type {?} */
CountryComponent.prototype.countryList;
/** @type {?} */
CountryComponent.prototype.labelforId;
/** @type {?} */
CountryComponent.prototype.disabled;
/** @type {?} */
CountryComponent.prototype.required;
/** @type {?} */
CountryComponent.prototype.useDropDownList;
/** @type {?} */
CountryComponent.prototype.maxlen;
/** @type {?} */
CountryComponent.prototype.errorMessage;
/** @type {?} */
CountryComponent.prototype.placeholder;
/** @type {?} */
CountryComponent.prototype.valueChange;
/** @type {?} */
CountryComponent.prototype.blurEvent;
/** @type {?} */
CountryComponent.prototype.country;
/** @type {?} */
CountryComponent.prototype.defaultErrMsg;
/** @type {?} */
CountryComponent.prototype._onChange;
/** @type {?} */
CountryComponent.prototype._onTouched;
/** @type {?} */
CountryComponent.prototype.controlDir;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tb2gtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2NvdW50cnkvY291bnRyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUF3QixTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFJakUsaUNBR0M7OztJQUZDLGtDQUFvQjs7SUFDcEIsa0NBQW9COzs7QUFHdEIsTUFBTSxPQUFPLE1BQU0sR0FBRyxLQUFLOztBQUMzQixNQUFNLE9BQU8sYUFBYSxHQUFHLEtBQUs7Ozs7O0FBR2xDLE1BQU0sT0FBTyxZQUFZLEdBQWtCO0lBQ3pDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFO0lBQ2xELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFO0lBQ3BELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0lBQzlDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0lBQzlDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUU7SUFDckQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7SUFDL0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUU7SUFDakQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRTtJQUMxRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtJQUNoRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRTtJQUM1QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtJQUNoRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRTtJQUNqRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRTtJQUNqRCxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRTtJQUMvQyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRTtJQUM3QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRTtJQUM1QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtJQUM5QyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFF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LEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsNkJBQTZCLEVBQUU7SUFDbEUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7SUFDaEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7SUFDaEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUU7SUFDakQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7SUFDM0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7SUFDaEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUU7SUFDL0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUU7SUFDcEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxtQ0FBbUMsRUFBRTtJQUN4RSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLCtCQUErQixFQUFFO0lBQ3BFLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFO0lBQy9DLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFO0lBQ2hELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0lBQzlDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0lBQzlDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFO0lBQzVDLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFO0lBQ2hELEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUU7SUFDaEUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7SUFDM0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUU7SUFDbEQsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7SUFDOUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7SUFDNUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUU7SUFDN0MsRUFBRSxX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OztZQXRGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsOCtDQUF1QzthQUN4Qzs7OztZQWpSOEIsU0FBUyx1QkFvVHhCLFFBQVEsWUFBSSxJQUFJOzs7b0JBaEM3QixLQUFLOzBCQUNMLEtBQUs7eUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7OEJBQ0wsS0FBSztxQkFDTCxLQUFLOzJCQUNMLEtBQUs7MEJBQ0wsS0FBSztvQkFDTCxLQUFLOzBCQVVMLE1BQU07d0JBQ04sTUFBTTs7OztJQXBCUCxpQ0FBd0M7O0lBQ3hDLHVDQUFtRDs7SUFDbkQsc0NBQXlEOztJQUN6RCxvQ0FBbUM7O0lBQ25DLG9DQUFtQzs7SUFDbkMsMkNBQXlDOztJQUN6QyxrQ0FBZ0M7O0lBQ2hDLHdDQUFvQzs7SUFDcEMsdUNBQThEOztJQVc5RCx1Q0FBeUU7O0lBQ3pFLHFDQUFpRTs7SUFFakUsbUNBQXFCOztJQUVyQix5Q0FHRTs7SUFFRixxQ0FBMkI7O0lBQzNCLHNDQUE0Qjs7SUFFZixzQ0FBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT3B0aW9uYWwsIFNlbGYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Jhc2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXJyb3ItbWVzc2FnZS5pbnRlcmZhY2UnO1xyXG5cclxuLyoqIEludGVyZmFjZSBmb3IgY291bnRyaWVzICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ291bnRyeUxpc3Qge1xyXG4gIGNvdW50cnlDb2RlOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IENBTkFEQSA9ICdDQU4nO1xyXG5leHBvcnQgY29uc3QgVU5JVEVEX1NUQVRFUyA9ICdVU0EnO1xyXG5cclxuLyoqIERlZmF1bHQgbGlzdCBvZiBjb3VudHJpZXMgKi9cclxuZXhwb3J0IGNvbnN0IENPVU5UUllfTElTVDogQ291bnRyeUxpc3RbXSA9IFtcclxuICB7IGNvdW50cnlDb2RlOiAnQUZHJywgZGVzY3JpcHRpb246ICdBZmdoYW5pc3RhbicgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQUxBJywgZGVzY3JpcHRpb246ICfDhWxhbmQgSXNsYW5kcycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQUxCJywgZGVzY3JpcHRpb246ICdBbGJhbmlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdEWkEnLCBkZXNjcmlwdGlvbjogJ0FsZ2VyaWEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FTTScsIGRlc2NyaXB0aW9uOiAnQW1lcmljYW4gU2Ftb2EnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FORCcsIGRlc2NyaXB0aW9uOiAnQW5kb3JyYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQUdPJywgZGVzY3JpcHRpb246ICdBbmdvbGEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FJQScsIGRlc2NyaXB0aW9uOiAnQW5ndWlsbGEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0FUQScsIGRlc2NyaXB0aW9uOiAnQW50YXJjdGljYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQVRHJywgZGVzY3JpcHRpb246ICdBbnRpZ3VhIGFuZCBCYXJidWRhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdBUkcnLCBkZXNjcmlwdGlvbjogJ0FyZ2VudGluYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQVJNJywgZGVzY3JpcHRpb246ICdBcm1lbmlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdBQlcnLCBkZXNjcmlwdGlvbjogJ0FydWJhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdBVVMnLCBkZXNjcmlwdGlvbjogJ0F1c3RyYWxpYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQVVUJywgZGVzY3JpcHRpb246ICdBdXN0cmlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdBWkUnLCBkZXNjcmlwdGlvbjogJ0F6ZXJiYWlqYW4nIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JIUycsIGRlc2NyaXB0aW9uOiAnQmFoYW1hcycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkhSJywgZGVzY3JpcHRpb246ICdCYWhyYWluJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCR0QnLCBkZXNjcmlwdGlvbjogJ0JhbmdsYWRlc2gnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JSQicsIGRlc2NyaXB0aW9uOiAnQmFyYmFkb3MnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JMUicsIGRlc2NyaXB0aW9uOiAnQmVsYXJ1cycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkVMJywgZGVzY3JpcHRpb246ICdCZWxnaXVtJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCTFonLCBkZXNjcmlwdGlvbjogJ0JlbGl6ZScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkVOJywgZGVzY3JpcHRpb246ICdCZW5pbicgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQk1VJywgZGVzY3JpcHRpb246ICdCZXJtdWRhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCVE4nLCBkZXNjcmlwdGlvbjogJ0JodXRhbicgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQk9MJywgZGVzY3JpcHRpb246ICdCb2xpdmlhLCBQbHVyaW5hdGlvbmFsIFN0YXRlIG9mJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCRVMnLCBkZXNjcmlwdGlvbjogJ0JvbmFpcmUsIFNpbnQgRXVzdGF0aXVzIGFuZCBTYWJhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCSUgnLCBkZXNjcmlwdGlvbjogJ0Jvc25pYSBhbmQgSGVyemVnb3ZpbmEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JXQScsIGRlc2NyaXB0aW9uOiAnQm90c3dhbmEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0JWVCcsIGRlc2NyaXB0aW9uOiAnQm91dmV0IElzbGFuZCcgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQlJBJywgZGVzY3JpcHRpb246ICdCcmF6aWwnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0lPVCcsIGRlc2NyaXB0aW9uOiAnQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5JyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCUk4nLCBkZXNjcmlwdGlvbjogJ0JydW5laSBEYXJ1c3NhbGFtJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCR1InLCBkZXNjcmlwdGlvbjogJ0J1bGdhcmlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdCRkEnLCBkZXNjcmlwdGlvbjogJ0J1cmtpbmEgRmFzbycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQkRJJywgZGVzY3JpcHRpb246ICdCdXJ1bmRpJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdLSE0nLCBkZXNjcmlwdGlvbjogJ0NhbWJvZGlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDTVInLCBkZXNjcmlwdGlvbjogJ0NhbWVyb29uJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDQU4nLCBkZXNjcmlwdGlvbjogJ0NhbmFkYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ1BWJywgZGVzY3JpcHRpb246ICdDYXBlIFZlcmRlJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDWU0nLCBkZXNjcmlwdGlvbjogJ0NheW1hbiBJc2xhbmRzJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDQUYnLCBkZXNjcmlwdGlvbjogJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnVENEJywgZGVzY3JpcHRpb246ICdDaGFkJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDSEwnLCBkZXNjcmlwdGlvbjogJ0NoaWxlJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDSE4nLCBkZXNjcmlwdGlvbjogJ0NoaW5hJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDWFInLCBkZXNjcmlwdGlvbjogJ0NocmlzdG1hcyBJc2xhbmQnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0NDSycsIGRlc2NyaXB0aW9uOiAnQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0NPTCcsIGRlc2NyaXB0aW9uOiAnQ29sb21iaWEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0NPTScsIGRlc2NyaXB0aW9uOiAnQ29tb3JvcycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ09HJywgZGVzY3JpcHRpb246ICdDb25nbycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ09EJywgZGVzY3JpcHRpb246ICdDb25nbywgdGhlIERlbW9jcmF0aWMgUmVwdWJsaWMgb2YgdGhlJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDT0snLCBkZXNjcmlwdGlvbjogJ0Nvb2sgSXNsYW5kcycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ1JJJywgZGVzY3JpcHRpb246ICdDb3N0YSBSaWNhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDSVYnLCBkZXNjcmlwdGlvbjogJ0PDtHRlIGRcXCdJdm9pcmUnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0hSVicsIGRlc2NyaXB0aW9uOiAnQ3JvYXRpYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ1VCJywgZGVzY3JpcHRpb246ICdDdWJhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDVVcnLCBkZXNjcmlwdGlvbjogJ0N1cmHDp2FvJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdDWVAnLCBkZXNjcmlwdGlvbjogJ0N5cHJ1cycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQ1pFJywgZGVzY3JpcHRpb246ICdDemVjaCBSZXB1YmxpYycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnRE5LJywgZGVzY3JpcHRpb246ICdEZW5tYXJrJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdESkknLCBkZXNjcmlwdGlvbjogJ0RqaWJvdXRpJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdETUEnLCBkZXNjcmlwdGlvbjogJ0RvbWluaWNhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdET00nLCBkZXNjcmlwdGlvbjogJ0RvbWluaWNhbiBSZXB1YmxpYycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnRUNVJywgZGVzY3JpcHRpb246ICdFY3VhZG9yJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdFR1knLCBkZXNjcmlwdGlvbjogJ0VneXB0JyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdTTFYnLCBkZXNjcmlwdGlvbjogJ0VsIFNhbHZhZG9yJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdHTlEnLCBkZXNjcmlwdGlvbjogJ0VxdWF0b3JpYWwgR3VpbmVhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdFUkknLCBkZXNjcmlwdGlvbjogJ0VyaXRyZWEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0VTVCcsIGRlc2NyaXB0aW9uOiAnRXN0b25pYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnRVRIJywgZGVzY3JpcHRpb246ICdFdGhpb3BpYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnRkxLJywgZGVzY3JpcHRpb246ICdGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyknIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0ZSTycsIGRlc2NyaXB0aW9uOiAnRmFyb2UgSXNsYW5kcycgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnRkpJJywgZGVzY3JpcHRpb246ICdGaWppJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdGSU4nLCBkZXNjcmlwdGlvbjogJ0ZpbmxhbmQnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0ZSQScsIGRlc2NyaXB0aW9uOiAnRnJhbmNlJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdHVUYnLCBkZXNjcmlwdGlvbjogJ0ZyZW5jaCBHdWlhbmEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ1BZRicsIGRlc2NyaXB0aW9uOiAnRnJlbmNoIFBvbHluZXNpYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnQVRGJywgZGVzY3JpcHRpb246ICdGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0dBQicsIGRlc2NyaXB0aW9uOiAnR2Fib24nIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0dNQicsIGRlc2NyaXB0aW9uOiAnR2FtYmlhJyB9LFxyXG4gIHsgY291bnRyeUNvZGU6ICdHRU8nLCBkZXNjcmlwdGlvbjogJ0dlb3JnaWEnIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0RFVScsIGRlc2NyaXB0aW9uOiAnR2VybWFueScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnR0hBJywgZGVzY3JpcHRpb246ICdHaGFuYScgfSxcclxuICB7IGNvdW50cnlDb2RlOiAnR0lCJywgZGVzY3JpcHRpb246ICdHaWJyYWx0YXInIH0sXHJcbiAgeyBjb3VudHJ5Q29kZTogJ0dSQycsIGRlc2NyaXB0aW9uOiAnR3JlZWNlJyB9LFxyXG