Socket
Socket
Sign inDemoInstall

@agm/core

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@agm/core - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

esm2015/services/geocoder-service.js

3

directives/map.d.ts

@@ -32,2 +32,3 @@ import { ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';

private _mapsWrapper;
private _platformId;
protected _fitBoundsService: FitBoundsService;

@@ -275,3 +276,3 @@ private _zone;

tilesLoaded: EventEmitter<void>;
constructor(_elem: ElementRef, _mapsWrapper: GoogleMapsAPIWrapper, _fitBoundsService: FitBoundsService, _zone: NgZone);
constructor(_elem: ElementRef, _mapsWrapper: GoogleMapsAPIWrapper, _platformId: Object, _fitBoundsService: FitBoundsService, _zone: NgZone);
/** @internal */

@@ -278,0 +279,0 @@ ngOnInit(): void;

import { AfterContentInit, EventEmitter, OnChanges, OnDestroy, QueryList, SimpleChange } from '@angular/core';
import { Observable, ReplaySubject } from 'rxjs';
import { MarkerLabel, MouseEvent } from '../map-types';
import { MouseEvent } from '../map-types';
import { FitBoundsAccessor, FitBoundsDetails } from '../services/fit-bounds';
import * as mapTypes from '../services/google-maps-types';
import { MarkerManager } from '../services/managers/marker-manager';

@@ -47,3 +48,3 @@ import { AgmInfoWindow } from './info-window';

*/
label: string | MarkerLabel;
label: string | mapTypes.MarkerLabel;
/**

@@ -96,2 +97,6 @@ * If true, the marker can be dragged. Default value is false.

/**
* This event emitter gets emitted when the user clicks twice on the marker.
*/
markerDblClick: EventEmitter<AgmMarker>;
/**
* This event is fired when the user rightclicks on the marker.

@@ -98,0 +103,0 @@ */

@@ -75,2 +75,6 @@ import * as tslib_1 from "tslib";

/**
* This event emitter gets emitted when the user clicks twice on the marker.
*/
this.markerDblClick = new EventEmitter();
/**
* This event is fired when the user rightclicks on the marker.

@@ -184,2 +188,6 @@ */

this._observableSubscriptions.push(cs);
const dcs = this._markerManager.createEventObservable('dblclick', this).subscribe(() => {
this.markerDblClick.emit(null);
});
this._observableSubscriptions.push(dcs);
const rc = this._markerManager.createEventObservable('rightclick', this).subscribe(() => {

@@ -293,2 +301,6 @@ this.markerRightClick.emit(null);

tslib_1.__metadata("design:type", EventEmitter)
], AgmMarker.prototype, "markerDblClick", void 0);
tslib_1.__decorate([
Output(),
tslib_1.__metadata("design:type", EventEmitter)
], AgmMarker.prototype, "markerRightClick", void 0);

@@ -334,2 +346,2 @@ tslib_1.__decorate([

export { AgmMarker };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFnbS9jb3JlLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9tYXJrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQW9CLGVBQWUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXdCLE1BQU0sRUFBRSxTQUFTLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3JLLE9BQU8sRUFBYyxhQUFhLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBb0IsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5QyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFFakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFZSCxJQUFhLFNBQVMsaUJBQXRCLE1BQWEsU0FBUztJQXNIcEIsWUFBb0IsY0FBNkI7UUFBN0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFqR2pEOztXQUVHO1FBQ0gsMkNBQTJDO1FBQ2pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFPNUM7O1dBRUc7UUFDTSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXhCOztXQUVHO1FBQ00sbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFFL0I7O1dBRUc7UUFDTSxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBRXJCOzs7OztXQUtHO1FBQ00sV0FBTSxHQUFHLENBQUMsQ0FBQztRQUVwQjs7V0FFRztRQUNILDJDQUEyQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBUTNDOzs7O1dBSUc7UUFDTyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFFMUQ7O1dBRUc7UUFDTyxnQkFBVyxHQUE0QixJQUFJLFlBQVksRUFBYSxDQUFDO1FBRS9FOztX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QWUsQ0FBQyxhQUFhLENBQUM7c0NBQWEsU0FBUzs2Q0FBaUQ7QUE5RzNGLFNBQVM7SUFYckIsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLFlBQVk7UUFDdEIsU0FBUyxFQUFFO1lBQ1QsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFTLENBQUMsRUFBQztTQUN2RTtRQUNELE1BQU0sRUFBRTtZQUNOLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxTQUFTO1lBQ2xGLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVc7U0FDOUQ7UUFDRCxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQztLQUNsRixDQUFDOzZDQXVIb0MsYUFBYTtHQXRIdEMsU0FBUyxDQXdRckI7U0F4UVksU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3V0cHV0LCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYXJrZXJMYWJlbCwgTW91c2VFdmVudCB9IGZyb20gJy4uL21hcC10eXBlcyc7XG5pbXBvcnQgeyBGaXRCb3VuZHNBY2Nlc3NvciwgRml0Qm91bmRzRGV0YWlscyB9IGZyb20gJy4uL3NlcnZpY2VzL2ZpdC1ib3VuZHMnO1xuaW1wb3J0ICogYXMgbWFwVHlwZXMgZnJvbSAnLi4vc2VydmljZXMvZ29vZ2xlLW1hcHMtdHlwZXMnO1xuaW1wb3J0IHsgTWFya2VyTWFuYWdlciB9IGZyb20gJy4uL3NlcnZpY2VzL21hbmFnZXJzL21hcmtlci1tYW5hZ2VyJztcbmltcG9ydCB7IEFnbUluZm9XaW5kb3cgfSBmcm9tICcuL2luZm8td2luZG93JztcblxubGV0IG1hcmtlcklkID0gMDtcblxuLyoqXG4gKiBBZ21NYXJrZXIgcmVuZGVycyBhIG1hcCBtYXJrZXIgaW5zaWRlIGEge0BsaW5rIEFnbU1hcH0uXG4gKlxuICogIyMjIEV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICpcbiAqIEBDb21wb25lbnQoe1xuICogIHNlbGVjdG9yOiAnbXktbWFwLWNtcCcsXG4gKiAgc3R5bGVzOiBbYFxuICogICAgLmFnbS1tYXAtY29udGFpbmVyIHtcbiAqICAgICAgaGVpZ2h0OiAzMDBweDtcbiAqICAgIH1cbiAqIGBdLFxuICogIHRlbXBsYXRlOiBgXG4gKiAgICA8YWdtLW1hcCBbbGF0aXR1ZGVdPVwibGF0XCIgW2xvbmdpdHVkZV09XCJsbmdcIiBbem9vbV09XCJ6b29tXCI+XG4gKiAgICAgIDxhZ20tbWFya2VyIFtsYXRpdHVkZV09XCJsYXRcIiBbbG9uZ2l0dWRlXT1cImxuZ1wiIFtsYWJlbF09XCInTSdcIj5cbiAqICAgICAgPC9hZ20tbWFya2VyPlxuICogICAgPC9hZ20tbWFwPlxuICogIGBcbiAqIH0pXG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnYWdtLW1hcmtlcicsXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBGaXRCb3VuZHNBY2Nlc3NvciwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQWdtTWFya2VyKX0sXG4gIF0sXG4gIGlucHV0czogW1xuICAgICdsYXRpdHVkZScsICdsb25naXR1ZGUnLCAndGl0bGUnLCAnbGFiZWwnLCAnZHJhZ2dhYmxlOiBtYXJrZXJEcmFnZ2FibGUnLCAnaWNvblVybCcsXG4gICAgJ29wZW5JbmZvV2luZG93JywgJ29wYWNpdHknLCAndmlzaWJsZScsICd6SW5kZXgnLCAnYW5pbWF0aW9uJyxcbiAgXSxcbiAgb3V0cHV0czogWydtYXJrZXJDbGljaycsICdkcmFnU3RhcnQnLCAnZHJhZycsICdkcmFnRW5kJywgJ21vdXNlT3ZlcicsICdtb3VzZU91dCddLFxufSlcbmV4cG9ydCBjbGFzcyBBZ21NYXJrZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCwgRml0Qm91bmRzQWNjZXNzb3Ige1xuICAvKipcbiAgICogVGhlIGxhdGl0dWRlIHBvc2l0aW9uIG9mIHRoZSBtYXJrZXIuXG4gICAqL1xuICBASW5wdXQoKSBsYXRpdHVkZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9uZ2l0dWRlIHBvc2l0aW9uIG9mIHRoZSBtYXJrZXIuXG4gICAqL1xuICBASW5wdXQoKSBsb25naXR1ZGU6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBtYXJrZXIuXG4gICAqL1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgKGEgc2luZ2xlIHVwcGVyY2FzZSBjaGFyYWN0ZXIpIGZvciB0aGUgbWFya2VyLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IE1hcmtlckxhYmVsO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgbWFya2VyIGNhbiBiZSBkcmFnZ2VkLiBEZWZhdWx0IHZhbHVlIGlzIGZhbHNlLlxuICAgKi9cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ21hcmtlckRyYWdnYWJsZScpIGRyYWdnYWJsZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJY29uICh0aGUgVVJMIG9mIHRoZSBpbWFnZSkgZm9yIHRoZSBmb3JlZ3JvdW5kLlxuICAgKi9cbiAgQElucHV0KCkgaWNvblVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgbWFya2VyIGlzIHZpc2libGVcbiAgICovXG4gIEBJbnB1dCgpIHZpc2libGUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgb3BlbiB0aGUgY2hpbGQgaW5mbyB3aW5kb3cgd2hlbiB0aGUgbWFya2VyIGlzIGNsaWNrZWQuXG4gICAqL1xuICBASW5wdXQoKSBvcGVuSW5mb1dpbmRvdyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXJrZXIncyBvcGFjaXR5IGJldHdlZW4gMC4wIGFuZCAxLjAuXG4gICAqL1xuICBASW5wdXQoKSBvcGFjaXR5ID0gMTtcblxuICAvKipcbiAgICogQWxsIG1hcmtlcnMgYXJlIGRpc3BsYXllZCBvbiB0aGUgbWFwIGluIG9yZGVyIG9mIHRoZWlyIHpJbmRleCwgd2l0aCBoaWdoZXIgdmFsdWVzIGRpc3BsYXlpbmcgaW5cbiAgICogZnJvbnQgb2YgbWFya2VycyB3aXRoIGxvd2VyIHZhbHVlcy4gQnkgZGVmYXVsdCwgbWFya2VycyBhcmUgZGlzcGxheWVkIGFjY29yZGluZyB0byB0aGVpclxuICAgKiB2ZXJ0aWNhbCBwb3NpdGlvbiBvbiBzY3JlZW4sIHdpdGggbG93ZXIgbWFya2VycyBhcHBlYXJpbmcgaW4gZnJvbnQgb2YgbWFya2VycyBmdXJ0aGVyIHVwIHRoZVxuICAgKiBzY3JlZW4uXG4gICAqL1xuICBASW5wdXQoKSB6SW5kZXggPSAxO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgbWFya2VyIGNhbiBiZSBjbGlja2VkLiBEZWZhdWx0IHZhbHVlIGlzIHRydWUuXG4gICAqL1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnbWFya2VyQ2xpY2thYmxlJykgY2xpY2thYmxlID0gdHJ1ZTtcblxuICAvKipcbiAgICogV2hpY2ggYW5pbWF0aW9uIHRvIHBsYXkgd2hlbiBtYXJrZXIgaXMgYWRkZWQgdG8gYSBtYXAuXG4gICAqIFRoaXMgY2FuIGJlICdCT1VOQ0UnIG9yICdEUk9QJ1xuICAgKi9cbiAgQElucHV0KCkgYW5pbWF0aW9uOiBBbmltYXRpb247XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgbWFya2VyJ3MgYW5pbWF0aW9uIHByb3BlcnR5IGNoYW5nZXMuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBBZ21NYXJrZXJcbiAgICovXG4gIEBPdXRwdXQoKSBhbmltYXRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFuaW1hdGlvbj4oKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBlbWl0dGVyIGdldHMgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIG1hcmtlckNsaWNrOiBFdmVudEVtaXR0ZXI8QWdtTWFya2VyPiA9IG5ldyBFdmVudEVtaXR0ZXI8QWdtTWFya2VyPigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgcmlnaHRjbGlja3Mgb24gdGhlIG1hcmtlci5cbiAgICovXG4gIEBPdXRwdXQoKSBtYXJrZXJSaWdodENsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBzdGFydHMgZHJhZ2dpbmcgdGhlIG1hcmtlci5cbiAgICovXG4gIEBPdXRwdXQoKSBkcmFnU3RhcnQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyByZXBlYXRlZGx5IGZpcmVkIHdoaWxlIHRoZSB1c2VyIGRyYWdzIHRoZSBtYXJrZXIuXG4gICAqL1xuICBAT3V0cHV0KCkgZHJhZzogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgc3RvcHMgZHJhZ2dpbmcgdGhlIG1hcmtlci5cbiAgICovXG4gIEBPdXRwdXQoKSBkcmFnRW5kOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb3VzZXMgb3ZlciB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIG1vdXNlT3ZlcjogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW91c2VzIG91dHNpZGUgdGhlIG1hcmtlci5cbiAgICovXG4gIEBPdXRwdXQoKSBtb3VzZU91dDogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihBZ21JbmZvV2luZG93KSBpbmZvV2luZG93OiBRdWVyeUxpc3Q8QWdtSW5mb1dpbmRvdz4gPSBuZXcgUXVlcnlMaXN0PEFnbUluZm9XaW5kb3c+KCk7XG5cbiAgcHJpdmF0ZSBfbWFya2VyQWRkZWRUb01hbmdlciA9IGZhbHNlO1xuICBwcml2YXRlIF9pZDogc3RyaW5nO1xuICBwcml2YXRlIF9vYnNlcnZhYmxlU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2ZpdEJvdW5kc0RldGFpbHMkOiBSZXBsYXlTdWJqZWN0PEZpdEJvdW5kc0RldGFpbHM+ID0gbmV3IFJlcGxheVN1YmplY3Q8Rml0Qm91bmRzRGV0YWlscz4oMSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbWFya2VyTWFuYWdlcjogTWFya2VyTWFuYWdlcikgeyB0aGlzLl9pZCA9IChtYXJrZXJJZCsrKS50b1N0cmluZygpOyB9XG5cbiAgLyogQGludGVybmFsICovXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmhhbmRsZUluZm9XaW5kb3dVcGRhdGUoKTtcbiAgICB0aGlzLmluZm9XaW5kb3cuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oYW5kbGVJbmZvV2luZG93VXBkYXRlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbmZvV2luZG93VXBkYXRlKCkge1xuICAgIGlmICh0aGlzLmluZm9XaW5kb3cubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBubyBtb3JlIHRoYW4gb25lIGluZm8gd2luZG93LicpO1xuICAgIH1cbiAgICB0aGlzLmluZm9XaW5kb3cuZm9yRWFjaChtYXJrZXIgPT4ge1xuICAgICAgbWFya2VyLmhvc3RNYXJrZXIgPSB0aGlzO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7W2tleTogc3RyaW5nXTogU2ltcGxlQ2hhbmdlfSkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5sYXRpdHVkZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMubGF0aXR1ZGUgPSBOdW1iZXIodGhpcy5sYXRpdHVkZSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGhpcy5sb25naXR1ZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLmxvbmdpdHVkZSA9IE51bWJlcih0aGlzLmxvbmdpdHVkZSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGhpcy5sYXRpdHVkZSAhPT0gJ251bWJlcicgfHwgdHlwZW9mIHRoaXMubG9uZ2l0dWRlICE9PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX21hcmtlckFkZGVkVG9NYW5nZXIpIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIuYWRkTWFya2VyKHRoaXMpO1xuICAgICAgdGhpcy5fdXBkYXRlRml0Qm91bmRzRGV0YWlscygpO1xuICAgICAgdGhpcy5fbWFya2VyQWRkZWRUb01hbmdlciA9IHRydWU7XG4gICAgICB0aGlzLl9hZGRFdmVudExpc3RlbmVycygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snbGF0aXR1ZGUnXSB8fCBjaGFuZ2VzWydsb25naXR1ZGUnXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVNYXJrZXJQb3NpdGlvbih0aGlzKTtcbiAgICAgIHRoaXMuX3VwZGF0ZUZpdEJvdW5kc0RldGFpbHMoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3RpdGxlJ10pIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIudXBkYXRlVGl0bGUodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydsYWJlbCddKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLnVwZGF0ZUxhYmVsKHRoaXMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snZHJhZ2dhYmxlJ10pIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIudXBkYXRlRHJhZ2dhYmxlKHRoaXMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snaWNvblVybCddKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLnVwZGF0ZUljb24odGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydvcGFjaXR5J10pIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIudXBkYXRlT3BhY2l0eSh0aGlzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3Zpc2libGUnXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVWaXNpYmxlKHRoaXMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snekluZGV4J10pIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIudXBkYXRlWkluZGV4KHRoaXMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snY2xpY2thYmxlJ10pIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIudXBkYXRlQ2xpY2thYmxlKHRoaXMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snYW5pbWF0aW9uJ10pIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIudXBkYXRlQW5pbWF0aW9uKHRoaXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgZ2V0Rml0Qm91bmRzRGV0YWlscyQoKTogT2JzZXJ2YWJsZTxGaXRCb3VuZHNEZXRhaWxzPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpdEJvdW5kc0RldGFpbHMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF91cGRhdGVGaXRCb3VuZHNEZXRhaWxzKCkge1xuICAgIHRoaXMuX2ZpdEJvdW5kc0RldGFpbHMkLm5leHQoe2xhdExuZzoge2xhdDogdGhpcy5sYXRpdHVkZSwgbG5nOiB0aGlzLmxvbmdpdHVkZX19KTtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZEV2ZW50TGlzdGVuZXJzKCkge1xuICAgIGNvbnN0IGNzID0gdGhpcy5fbWFya2VyTWFuYWdlci5jcmVhdGVFdmVudE9ic2VydmFibGUoJ2NsaWNrJywgdGhpcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm9wZW5JbmZvV2luZG93KSB7XG4gICAgICAgIHRoaXMuaW5mb1dpbmRvdy5mb3JFYWNoKGluZm9XaW5kb3cgPT4gaW5mb1dpbmRvdy5vcGVuKCkpO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXJrZXJDbGljay5lbWl0KHRoaXMpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2goY3MpO1xuXG4gICAgY29uc3QgcmMgPSB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZSgncmlnaHRjbGljaycsIHRoaXMpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm1hcmtlclJpZ2h0Q2xpY2suZW1pdChudWxsKTtcbiAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZhYmxlU3Vic2NyaXB0aW9ucy5wdXNoKHJjKTtcblxuICAgIGNvbnN0IGRzID1cbiAgICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci5jcmVhdGVFdmVudE9ic2VydmFibGU8bWFwVHlwZXMuTW91c2VFdmVudD4oJ2RyYWdzdGFydCcsIHRoaXMpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChlOiBtYXBUeXBlcy5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZHJhZ1N0YXJ0LmVtaXQoe2Nvb3Jkczoge2xhdDogZS5sYXRMbmcubGF0KCksIGxuZzogZS5sYXRMbmcubG5nKCl9fSBhcyBNb3VzZUV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2goZHMpO1xuXG4gICAgY29uc3QgZCA9XG4gICAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIuY3JlYXRlRXZlbnRPYnNlcnZhYmxlPG1hcFR5cGVzLk1vdXNlRXZlbnQ+KCdkcmFnJywgdGhpcylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IG1hcFR5cGVzLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5kcmFnLmVtaXQoe2Nvb3Jkczoge2xhdDogZS5sYXRMbmcubGF0KCksIGxuZzogZS5sYXRMbmcubG5nKCl9fSBhcyBNb3VzZUV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2goZCk7XG5cbiAgICBjb25zdCBkZSA9XG4gICAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIuY3JlYXRlRXZlbnRPYnNlcnZhYmxlPG1hcFR5cGVzLk1vdXNlRXZlbnQ+KCdkcmFnZW5kJywgdGhpcylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IG1hcFR5cGVzLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5kcmFnRW5kLmVtaXQoe2Nvb3Jkczoge2xhdDogZS5sYXRMbmcubGF0KCksIGxuZzogZS5sYXRMbmcubG5nKCl9fSBhcyBNb3VzZUV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2goZGUpO1xuXG4gICAgY29uc3QgbW92ZXIgPVxuICAgICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZTxtYXBUeXBlcy5Nb3VzZUV2ZW50PignbW91c2VvdmVyJywgdGhpcylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IG1hcFR5cGVzLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5tb3VzZU92ZXIuZW1pdCh7Y29vcmRzOiB7bGF0OiBlLmxhdExuZy5sYXQoKSwgbG5nOiBlLmxhdExuZy5sbmcoKX19IGFzIE1vdXNlRXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMucHVzaChtb3Zlcik7XG5cbiAgICBjb25zdCBtb3V0ID1cbiAgICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci5jcmVhdGVFdmVudE9ic2VydmFibGU8bWFwVHlwZXMuTW91c2VFdmVudD4oJ21vdXNlb3V0JywgdGhpcylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IG1hcFR5cGVzLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5tb3VzZU91dC5lbWl0KHtjb29yZHM6IHtsYXQ6IGUubGF0TG5nLmxhdCgpLCBsbmc6IGUubGF0TG5nLmxuZygpfX0gYXMgTW91c2VFdmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZhYmxlU3Vic2NyaXB0aW9ucy5wdXNoKG1vdXQpO1xuXG4gICAgY29uc3QgYW5DaG5nID1cbiAgICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci5jcmVhdGVFdmVudE9ic2VydmFibGU8dm9pZD4oJ2FuaW1hdGlvbl9jaGFuZ2VkJywgdGhpcylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkNoYW5nZS5lbWl0KHRoaXMuYW5pbWF0aW9uKTtcbiAgICAgICAgICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2goYW5DaG5nKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgaWQoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX2lkOyB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICB0b1N0cmluZygpOiBzdHJpbmcgeyByZXR1cm4gJ0FnbU1hcmtlci0nICsgdGhpcy5faWQudG9TdHJpbmcoKTsgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fbWFya2VyTWFuYWdlci5kZWxldGVNYXJrZXIodGhpcyk7XG4gICAgLy8gdW5zdWJzY3JpYmUgYWxsIHJlZ2lzdGVyZWQgb2JzZXJ2YWJsZSBzdWJzY3JpcHRpb25zXG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBBbmltYXRpb24gPSAnQk9VTkNFJyB8ICdEUk9QJyB8IG51bGw7XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFnbS9jb3JlLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9tYXJrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQW9CLGVBQWUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXdCLE1BQU0sRUFBRSxTQUFTLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3JLLE9BQU8sRUFBYyxhQUFhLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRS9ELE9BQU8sRUFBRSxpQkFBaUIsRUFBb0IsTUFBTSx3QkFBd0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5QyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFFakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFZSCxJQUFhLFNBQVMsaUJBQXRCLE1BQWEsU0FBUztJQTJIcEIsWUFBb0IsY0FBNkI7UUFBN0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUF0R2pEOztXQUVHO1FBQ0gsMkNBQTJDO1FBQ2pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFPNUM7O1dBRUc7UUFDTSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXhCOztXQUVHO1FBQ00sbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFFL0I7O1dBRUc7UUFDTSxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBRXJCOzs7OztXQUtHO1FBQ00sV0FBTSxHQUFHLENBQUMsQ0FBQztRQUVwQjs7V0FFRztRQUNILDJDQUEyQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBUTNDOzs7O1dBSUc7UUFDTyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFFMUQ7O1dBRUc7UUFDTyxnQkFBVyxHQUE0QixJQUFJLFlBQVksRUFBYSxDQUFDO1FBRS9FOztX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TUFBTSxFQUFFO3NDQUFjLFlBQVk7OENBQTRDO0FBS3JFO0lBQVQsTUFBTSxFQUFFO3NDQUFpQixZQUFZO2lEQUE0QztBQUt4RTtJQUFULE1BQU0sRUFBRTtzQ0FBbUIsWUFBWTttREFBa0M7QUFLaEU7SUFBVCxNQUFNLEVBQUU7c0NBQVksWUFBWTs0Q0FBOEM7QUFLckU7SUFBVCxNQUFNLEVBQUU7c0NBQU8sWUFBWTt1Q0FBOEM7QUFLaEU7SUFBVCxNQUFNLEVBQUU7c0NBQVUsWUFBWTswQ0FBOEM7QUFLbkU7SUFBVCxNQUFNLEVBQUU7c0NBQVksWUFBWTs0Q0FBOEM7QUFLckU7SUFBVCxNQUFNLEVBQUU7c0NBQVcsWUFBWTsyQ0FBOEM7QUFHOUM7SUFBL0IsZUFBZSxDQUFDLGFBQWEsQ0FBQztzQ0FBYSxTQUFTOzZDQUFpRDtBQW5IM0YsU0FBUztJQVhyQixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsWUFBWTtRQUN0QixTQUFTLEVBQUU7WUFDVCxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVMsQ0FBQyxFQUFFO1NBQ3pFO1FBQ0QsTUFBTSxFQUFFO1lBQ04sVUFBVSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLFNBQVM7WUFDbEYsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVztTQUM5RDtRQUNELE9BQU8sRUFBRSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDO0tBQ2xGLENBQUM7NkNBNEhvQyxhQUFhO0dBM0h0QyxTQUFTLENBa1JyQjtTQWxSWSxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1vdXNlRXZlbnQgfSBmcm9tICcuLi9tYXAtdHlwZXMnO1xuaW1wb3J0IHsgRml0Qm91bmRzQWNjZXNzb3IsIEZpdEJvdW5kc0RldGFpbHMgfSBmcm9tICcuLi9zZXJ2aWNlcy9maXQtYm91bmRzJztcbmltcG9ydCAqIGFzIG1hcFR5cGVzIGZyb20gJy4uL3NlcnZpY2VzL2dvb2dsZS1tYXBzLXR5cGVzJztcbmltcG9ydCB7IE1hcmtlck1hbmFnZXIgfSBmcm9tICcuLi9zZXJ2aWNlcy9tYW5hZ2Vycy9tYXJrZXItbWFuYWdlcic7XG5pbXBvcnQgeyBBZ21JbmZvV2luZG93IH0gZnJvbSAnLi9pbmZvLXdpbmRvdyc7XG5cbmxldCBtYXJrZXJJZCA9IDA7XG5cbi8qKlxuICogQWdtTWFya2VyIHJlbmRlcnMgYSBtYXAgbWFya2VyIGluc2lkZSBhIHtAbGluayBBZ21NYXB9LlxuICpcbiAqICMjIyBFeGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiAqXG4gKiBAQ29tcG9uZW50KHtcbiAqICBzZWxlY3RvcjogJ215LW1hcC1jbXAnLFxuICogIHN0eWxlczogW2BcbiAqICAgIC5hZ20tbWFwLWNvbnRhaW5lciB7XG4gKiAgICAgIGhlaWdodDogMzAwcHg7XG4gKiAgICB9XG4gKiBgXSxcbiAqICB0ZW1wbGF0ZTogYFxuICogICAgPGFnbS1tYXAgW2xhdGl0dWRlXT1cImxhdFwiIFtsb25naXR1ZGVdPVwibG5nXCIgW3pvb21dPVwiem9vbVwiPlxuICogICAgICA8YWdtLW1hcmtlciBbbGF0aXR1ZGVdPVwibGF0XCIgW2xvbmdpdHVkZV09XCJsbmdcIiBbbGFiZWxdPVwiJ00nXCI+XG4gKiAgICAgIDwvYWdtLW1hcmtlcj5cbiAqICAgIDwvYWdtLW1hcD5cbiAqICBgXG4gKiB9KVxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2FnbS1tYXJrZXInLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZpdEJvdW5kc0FjY2Vzc29yLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBZ21NYXJrZXIpIH0sXG4gIF0sXG4gIGlucHV0czogW1xuICAgICdsYXRpdHVkZScsICdsb25naXR1ZGUnLCAndGl0bGUnLCAnbGFiZWwnLCAnZHJhZ2dhYmxlOiBtYXJrZXJEcmFnZ2FibGUnLCAnaWNvblVybCcsXG4gICAgJ29wZW5JbmZvV2luZG93JywgJ29wYWNpdHknLCAndmlzaWJsZScsICd6SW5kZXgnLCAnYW5pbWF0aW9uJyxcbiAgXSxcbiAgb3V0cHV0czogWydtYXJrZXJDbGljaycsICdkcmFnU3RhcnQnLCAnZHJhZycsICdkcmFnRW5kJywgJ21vdXNlT3ZlcicsICdtb3VzZU91dCddLFxufSlcbmV4cG9ydCBjbGFzcyBBZ21NYXJrZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50SW5pdCwgRml0Qm91bmRzQWNjZXNzb3Ige1xuICAvKipcbiAgICogVGhlIGxhdGl0dWRlIHBvc2l0aW9uIG9mIHRoZSBtYXJrZXIuXG4gICAqL1xuICBASW5wdXQoKSBsYXRpdHVkZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9uZ2l0dWRlIHBvc2l0aW9uIG9mIHRoZSBtYXJrZXIuXG4gICAqL1xuICBASW5wdXQoKSBsb25naXR1ZGU6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRpdGxlIG9mIHRoZSBtYXJrZXIuXG4gICAqL1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFiZWwgKGEgc2luZ2xlIHVwcGVyY2FzZSBjaGFyYWN0ZXIpIGZvciB0aGUgbWFya2VyLlxuICAgKi9cbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyB8IG1hcFR5cGVzLk1hcmtlckxhYmVsO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgbWFya2VyIGNhbiBiZSBkcmFnZ2VkLiBEZWZhdWx0IHZhbHVlIGlzIGZhbHNlLlxuICAgKi9cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ21hcmtlckRyYWdnYWJsZScpIGRyYWdnYWJsZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJY29uICh0aGUgVVJMIG9mIHRoZSBpbWFnZSkgZm9yIHRoZSBmb3JlZ3JvdW5kLlxuICAgKi9cbiAgQElucHV0KCkgaWNvblVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgbWFya2VyIGlzIHZpc2libGVcbiAgICovXG4gIEBJbnB1dCgpIHZpc2libGUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgb3BlbiB0aGUgY2hpbGQgaW5mbyB3aW5kb3cgd2hlbiB0aGUgbWFya2VyIGlzIGNsaWNrZWQuXG4gICAqL1xuICBASW5wdXQoKSBvcGVuSW5mb1dpbmRvdyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXJrZXIncyBvcGFjaXR5IGJldHdlZW4gMC4wIGFuZCAxLjAuXG4gICAqL1xuICBASW5wdXQoKSBvcGFjaXR5ID0gMTtcblxuICAvKipcbiAgICogQWxsIG1hcmtlcnMgYXJlIGRpc3BsYXllZCBvbiB0aGUgbWFwIGluIG9yZGVyIG9mIHRoZWlyIHpJbmRleCwgd2l0aCBoaWdoZXIgdmFsdWVzIGRpc3BsYXlpbmcgaW5cbiAgICogZnJvbnQgb2YgbWFya2VycyB3aXRoIGxvd2VyIHZhbHVlcy4gQnkgZGVmYXVsdCwgbWFya2VycyBhcmUgZGlzcGxheWVkIGFjY29yZGluZyB0byB0aGVpclxuICAgKiB2ZXJ0aWNhbCBwb3NpdGlvbiBvbiBzY3JlZW4sIHdpdGggbG93ZXIgbWFya2VycyBhcHBlYXJpbmcgaW4gZnJvbnQgb2YgbWFya2VycyBmdXJ0aGVyIHVwIHRoZVxuICAgKiBzY3JlZW4uXG4gICAqL1xuICBASW5wdXQoKSB6SW5kZXggPSAxO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB0aGUgbWFya2VyIGNhbiBiZSBjbGlja2VkLiBEZWZhdWx0IHZhbHVlIGlzIHRydWUuXG4gICAqL1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnbWFya2VyQ2xpY2thYmxlJykgY2xpY2thYmxlID0gdHJ1ZTtcblxuICAvKipcbiAgICogV2hpY2ggYW5pbWF0aW9uIHRvIHBsYXkgd2hlbiBtYXJrZXIgaXMgYWRkZWQgdG8gYSBtYXAuXG4gICAqIFRoaXMgY2FuIGJlICdCT1VOQ0UnIG9yICdEUk9QJ1xuICAgKi9cbiAgQElucHV0KCkgYW5pbWF0aW9uOiBBbmltYXRpb247XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgbWFya2VyJ3MgYW5pbWF0aW9uIHByb3BlcnR5IGNoYW5nZXMuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBBZ21NYXJrZXJcbiAgICovXG4gIEBPdXRwdXQoKSBhbmltYXRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEFuaW1hdGlvbj4oKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBlbWl0dGVyIGdldHMgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIG1hcmtlckNsaWNrOiBFdmVudEVtaXR0ZXI8QWdtTWFya2VyPiA9IG5ldyBFdmVudEVtaXR0ZXI8QWdtTWFya2VyPigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGVtaXR0ZXIgZ2V0cyBlbWl0dGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIHR3aWNlIG9uIHRoZSBtYXJrZXIuXG4gICAqL1xuICBAT3V0cHV0KCkgbWFya2VyRGJsQ2xpY2s6IEV2ZW50RW1pdHRlcjxBZ21NYXJrZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxBZ21NYXJrZXI+KCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciByaWdodGNsaWNrcyBvbiB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIG1hcmtlclJpZ2h0Q2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIHN0YXJ0cyBkcmFnZ2luZyB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIGRyYWdTdGFydDogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIHJlcGVhdGVkbHkgZmlyZWQgd2hpbGUgdGhlIHVzZXIgZHJhZ3MgdGhlIG1hcmtlci5cbiAgICovXG4gIEBPdXRwdXQoKSBkcmFnOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBzdG9wcyBkcmFnZ2luZyB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIGRyYWdFbmQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vdXNlcyBvdmVyIHRoZSBtYXJrZXIuXG4gICAqL1xuICBAT3V0cHV0KCkgbW91c2VPdmVyOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb3VzZXMgb3V0c2lkZSB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIG1vdXNlT3V0OiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAQ29udGVudENoaWxkcmVuKEFnbUluZm9XaW5kb3cpIGluZm9XaW5kb3c6IFF1ZXJ5TGlzdDxBZ21JbmZvV2luZG93PiA9IG5ldyBRdWVyeUxpc3Q8QWdtSW5mb1dpbmRvdz4oKTtcblxuICBwcml2YXRlIF9tYXJrZXJBZGRlZFRvTWFuZ2VyID0gZmFsc2U7XG4gIHByaXZhdGUgX2lkOiBzdHJpbmc7XG4gIHByaXZhdGUgX29ic2VydmFibGVTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfZml0Qm91bmRzRGV0YWlscyQ6IFJlcGxheVN1YmplY3Q8Rml0Qm91bmRzRGV0YWlscz4gPSBuZXcgUmVwbGF5U3ViamVjdDxGaXRCb3VuZHNEZXRhaWxzPigxKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9tYXJrZXJNYW5hZ2VyOiBNYXJrZXJNYW5hZ2VyKSB7IHRoaXMuX2lkID0gKG1hcmtlcklkKyspLnRvU3RyaW5nKCk7IH1cblxuICAvKiBAaW50ZXJuYWwgKi9cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuaGFuZGxlSW5mb1dpbmRvd1VwZGF0ZSgpO1xuICAgIHRoaXMuaW5mb1dpbmRvdy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmhhbmRsZUluZm9XaW5kb3dVcGRhdGUoKSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUluZm9XaW5kb3dVcGRhdGUoKSB7XG4gICAgaWYgKHRoaXMuaW5mb1dpbmRvdy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIG5vIG1vcmUgdGhhbiBvbmUgaW5mbyB3aW5kb3cuJyk7XG4gICAgfVxuICAgIHRoaXMuaW5mb1dpbmRvdy5mb3JFYWNoKG1hcmtlciA9PiB7XG4gICAgICBtYXJrZXIuaG9zdE1hcmtlciA9IHRoaXM7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHsgW2tleTogc3RyaW5nXTogU2ltcGxlQ2hhbmdlIH0pIHtcbiAgICBpZiAodHlwZW9mIHRoaXMubGF0aXR1ZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLmxhdGl0dWRlID0gTnVtYmVyKHRoaXMubGF0aXR1ZGUpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHRoaXMubG9uZ2l0dWRlID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5sb25naXR1ZGUgPSBOdW1iZXIodGhpcy5sb25naXR1ZGUpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHRoaXMubGF0aXR1ZGUgIT09ICdudW1iZXInIHx8IHR5cGVvZiB0aGlzLmxvbmdpdHVkZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9tYXJrZXJBZGRlZFRvTWFuZ2VyKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLmFkZE1hcmtlcih0aGlzKTtcbiAgICAgIHRoaXMuX3VwZGF0ZUZpdEJvdW5kc0RldGFpbHMoKTtcbiAgICAgIHRoaXMuX21hcmtlckFkZGVkVG9NYW5nZXIgPSB0cnVlO1xuICAgICAgdGhpcy5fYWRkRXZlbnRMaXN0ZW5lcnMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2xhdGl0dWRlJ10gfHwgY2hhbmdlc1snbG9uZ2l0dWRlJ10pIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIudXBkYXRlTWFya2VyUG9zaXRpb24odGhpcyk7XG4gICAgICB0aGlzLl91cGRhdGVGaXRCb3VuZHNEZXRhaWxzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd0aXRsZSddKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLnVwZGF0ZVRpdGxlKHRoaXMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snbGFiZWwnXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVMYWJlbCh0aGlzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2RyYWdnYWJsZSddKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLnVwZGF0ZURyYWdnYWJsZSh0aGlzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2ljb25VcmwnXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVJY29uKHRoaXMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snb3BhY2l0eSddKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLnVwZGF0ZU9wYWNpdHkodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd2aXNpYmxlJ10pIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIudXBkYXRlVmlzaWJsZSh0aGlzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ3pJbmRleCddKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLnVwZGF0ZVpJbmRleCh0aGlzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2NsaWNrYWJsZSddKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLnVwZGF0ZUNsaWNrYWJsZSh0aGlzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2FuaW1hdGlvbiddKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLnVwZGF0ZUFuaW1hdGlvbih0aGlzKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGdldEZpdEJvdW5kc0RldGFpbHMkKCk6IE9ic2VydmFibGU8Rml0Qm91bmRzRGV0YWlscz4ge1xuICAgIHJldHVybiB0aGlzLl9maXRCb3VuZHNEZXRhaWxzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfdXBkYXRlRml0Qm91bmRzRGV0YWlscygpIHtcbiAgICB0aGlzLl9maXRCb3VuZHNEZXRhaWxzJC5uZXh0KHsgbGF0TG5nOiB7IGxhdDogdGhpcy5sYXRpdHVkZSwgbG5nOiB0aGlzLmxvbmdpdHVkZSB9IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgY29uc3QgY3MgPSB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZSgnY2xpY2snLCB0aGlzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMub3BlbkluZm9XaW5kb3cpIHtcbiAgICAgICAgdGhpcy5pbmZvV2luZG93LmZvckVhY2goaW5mb1dpbmRvdyA9PiBpbmZvV2luZG93Lm9wZW4oKSk7XG4gICAgICB9XG4gICAgICB0aGlzLm1hcmtlckNsaWNrLmVtaXQodGhpcyk7XG4gICAgfSk7XG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMucHVzaChjcyk7XG5cbiAgICBjb25zdCBkY3MgPSB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZSgnZGJsY2xpY2snLCB0aGlzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5tYXJrZXJEYmxDbGljay5lbWl0KG51bGwpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2goZGNzKTtcblxuICAgIGNvbnN0IHJjID0gdGhpcy5fbWFya2VyTWFuYWdlci5jcmVhdGVFdmVudE9ic2VydmFibGUoJ3JpZ2h0Y2xpY2snLCB0aGlzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5tYXJrZXJSaWdodENsaWNrLmVtaXQobnVsbCk7XG4gICAgfSk7XG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMucHVzaChyYyk7XG5cbiAgICBjb25zdCBkcyA9XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZTxtYXBUeXBlcy5Nb3VzZUV2ZW50PignZHJhZ3N0YXJ0JywgdGhpcylcbiAgICAgICAgLnN1YnNjcmliZSgoZTogbWFwVHlwZXMuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuZHJhZ1N0YXJ0LmVtaXQoeyBjb29yZHM6IHsgbGF0OiBlLmxhdExuZy5sYXQoKSwgbG5nOiBlLmxhdExuZy5sbmcoKSB9IH0gYXMgTW91c2VFdmVudCk7XG4gICAgICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2goZHMpO1xuXG4gICAgY29uc3QgZCA9XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZTxtYXBUeXBlcy5Nb3VzZUV2ZW50PignZHJhZycsIHRoaXMpXG4gICAgICAgIC5zdWJzY3JpYmUoKGU6IG1hcFR5cGVzLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmRyYWcuZW1pdCh7IGNvb3JkczogeyBsYXQ6IGUubGF0TG5nLmxhdCgpLCBsbmc6IGUubGF0TG5nLmxuZygpIH0gfSBhcyBNb3VzZUV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMucHVzaChkKTtcblxuICAgIGNvbnN0IGRlID1cbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIuY3JlYXRlRXZlbnRPYnNlcnZhYmxlPG1hcFR5cGVzLk1vdXNlRXZlbnQ+KCdkcmFnZW5kJywgdGhpcylcbiAgICAgICAgLnN1YnNjcmliZSgoZTogbWFwVHlwZXMuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuZHJhZ0VuZC5lbWl0KHsgY29vcmRzOiB7IGxhdDogZS5sYXRMbmcubGF0KCksIGxuZzogZS5sYXRMbmcubG5nKCkgfSB9IGFzIE1vdXNlRXZlbnQpO1xuICAgICAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZhYmxlU3Vic2NyaXB0aW9ucy5wdXNoKGRlKTtcblxuICAgIGNvbnN0IG1vdmVyID1cbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIuY3JlYXRlRXZlbnRPYnNlcnZhYmxlPG1hcFR5cGVzLk1vdXNlRXZlbnQ+KCdtb3VzZW92ZXInLCB0aGlzKVxuICAgICAgICAuc3Vic2NyaWJlKChlOiBtYXBUeXBlcy5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5tb3VzZU92ZXIuZW1pdCh7IGNvb3JkczogeyBsYXQ6IGUubGF0TG5nLmxhdCgpLCBsbmc6IGUubGF0TG5nLmxuZygpIH0gfSBhcyBNb3VzZUV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMucHVzaChtb3Zlcik7XG5cbiAgICBjb25zdCBtb3V0ID1cbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIuY3JlYXRlRXZlbnRPYnNlcnZhYmxlPG1hcFR5cGVzLk1vdXNlRXZlbnQ+KCdtb3VzZW91dCcsIHRoaXMpXG4gICAgICAgIC5zdWJzY3JpYmUoKGU6IG1hcFR5cGVzLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLm1vdXNlT3V0LmVtaXQoeyBjb29yZHM6IHsgbGF0OiBlLmxhdExuZy5sYXQoKSwgbG5nOiBlLmxhdExuZy5sbmcoKSB9IH0gYXMgTW91c2VFdmVudCk7XG4gICAgICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2gobW91dCk7XG5cbiAgICBjb25zdCBhbkNobmcgPVxuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci5jcmVhdGVFdmVudE9ic2VydmFibGU8dm9pZD4oJ2FuaW1hdGlvbl9jaGFuZ2VkJywgdGhpcylcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5hbmltYXRpb25DaGFuZ2UuZW1pdCh0aGlzLmFuaW1hdGlvbik7XG4gICAgICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2goYW5DaG5nKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgaWQoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX2lkOyB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICB0b1N0cmluZygpOiBzdHJpbmcgeyByZXR1cm4gJ0FnbU1hcmtlci0nICsgdGhpcy5faWQudG9TdHJpbmcoKTsgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fbWFya2VyTWFuYWdlci5kZWxldGVNYXJrZXIodGhpcyk7XG4gICAgLy8gdW5zdWJzY3JpYmUgYWxsIHJlZ2lzdGVyZWQgb2JzZXJ2YWJsZSBzdWJzY3JpcHRpb25zXG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBBbmltYXRpb24gPSAnQk9VTkNFJyB8ICdEUk9QJyB8IG51bGw7XG4iXX0=
// main modules
export * from './directives';
export * from './services';
export * from './map-types';
// core module

@@ -8,2 +9,2 @@ // we explicitly export the module here to prevent this Ionic 2 bug:

export { AgmCoreModule } from './core.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFlO0FBQ2YsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFNM0IsY0FBYztBQUNkLG9FQUFvRTtBQUNwRSwyRUFBMkU7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIG1haW4gbW9kdWxlc1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAtdHlwZXMnO1xuXG4vLyBHb29nbGUgTWFwcyB0eXBlc1xuZXhwb3J0IHsgTGF0TG5nQm91bmRzLCBMYXRMbmcsIExhdExuZ0xpdGVyYWwsIE1hcFR5cGVTdHlsZSwgUGFkZGluZywgUG9seU1vdXNlRXZlbnQgfSBmcm9tICcuL3NlcnZpY2VzL2dvb2dsZS1tYXBzLXR5cGVzJztcblxuLy8gY29yZSBtb2R1bGVcbi8vIHdlIGV4cGxpY2l0bHkgZXhwb3J0IHRoZSBtb2R1bGUgaGVyZSB0byBwcmV2ZW50IHRoaXMgSW9uaWMgMiBidWc6XG4vLyBodHRwOi8vc3RldmVtaWNoZWxvdHRpLmNvbS9pbnRlZ3JhdGUtYW5ndWxhci0yLWdvb2dsZS1tYXBzLWludG8taW9uaWMtMi9cbmV4cG9ydCB7IEFnbUNvcmVNb2R1bGUgfSBmcm9tICcuL2NvcmUubW9kdWxlJztcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFlO0FBQ2YsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxhQUFhLENBQUM7QUFFNUIsY0FBYztBQUNkLG9FQUFvRTtBQUNwRSwyRUFBMkU7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIG1haW4gbW9kdWxlc1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAtdHlwZXMnO1xuXG4vLyBjb3JlIG1vZHVsZVxuLy8gd2UgZXhwbGljaXRseSBleHBvcnQgdGhlIG1vZHVsZSBoZXJlIHRvIHByZXZlbnQgdGhpcyBJb25pYyAyIGJ1Zzpcbi8vIGh0dHA6Ly9zdGV2ZW1pY2hlbG90dGkuY29tL2ludGVncmF0ZS1hbmd1bGFyLTItZ29vZ2xlLW1hcHMtaW50by1pb25pYy0yL1xuZXhwb3J0IHsgQWdtQ29yZU1vZHVsZSB9IGZyb20gJy4vY29yZS5tb2R1bGUnO1xuIl19

@@ -1,1 +0,3 @@

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXR5cGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFnbS9jb3JlLyIsInNvdXJjZXMiOlsibWFwLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXRMbmdMaXRlcmFsIH0gZnJvbSAnLi9zZXJ2aWNlcy9nb29nbGUtbWFwcy10eXBlcyc7XG5cbi8vIGV4cG9ydGVkIG1hcCB0eXBlc1xuZXhwb3J0IHtcbiAgS21sTW91c2VFdmVudCxcbiAgRGF0YU1vdXNlRXZlbnQsXG4gIExhdExuZ0JvdW5kcyxcbiAgTGF0TG5nQm91bmRzTGl0ZXJhbCxcbiAgTGF0TG5nTGl0ZXJhbCxcbiAgUG9seU1vdXNlRXZlbnQsXG4gIE1hcmtlckxhYmVsLFxufSBmcm9tICcuL3NlcnZpY2VzL2dvb2dsZS1tYXBzLXR5cGVzJztcblxuLyoqXG4gKiBNb3VzZUV2ZW50IGdldHMgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIHRyaWdnZXJzIG1vdXNlIGV2ZW50cyBvbiB0aGUgbWFwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vdXNlRXZlbnQge1xuICBjb29yZHM6IExhdExuZ0xpdGVyYWw7XG4gIHBsYWNlSWQ/OiBzdHJpbmc7XG59XG4iXX0=
// exported map types
export { GeocoderLocationType, GeocoderStatus, ControlPosition, MapTypeId, ScaleControlStyle, ZoomControlStyle, } from './services/google-maps-types';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXR5cGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFnbS9jb3JlLyIsInNvdXJjZXMiOlsibWFwLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLHFCQUFxQjtBQUNyQixPQUFPLEVBYUwsb0JBQW9CLEVBR3BCLGNBQWMsRUFHZCxlQUFlLEVBS2YsU0FBUyxFQUVULGlCQUFpQixFQUdqQixnQkFBZ0IsR0FZakIsTUFBTSw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhdExuZ0xpdGVyYWwgfSBmcm9tICcuL3NlcnZpY2VzL2dvb2dsZS1tYXBzLXR5cGVzJztcblxuLy8gZXhwb3J0ZWQgbWFwIHR5cGVzXG5leHBvcnQge1xuICBLbWxNb3VzZUV2ZW50LFxuICBEYXRhTW91c2VFdmVudCxcbiAgTGF0TG5nQm91bmRzLFxuICBMYXRMbmdCb3VuZHNMaXRlcmFsLFxuICBMYXRMbmcsXG4gIExhdExuZ0xpdGVyYWwsXG4gIFBvbHlNb3VzZUV2ZW50LFxuICBNYXJrZXJMYWJlbCxcbiAgR2VvY29kZXIsXG4gIEdlb2NvZGVyQWRkcmVzc0NvbXBvbmVudCxcbiAgR2VvY29kZXJDb21wb25lbnRSZXN0cmljdGlvbnMsXG4gIEdlb2NvZGVyR2VvbWV0cnksXG4gIEdlb2NvZGVyTG9jYXRpb25UeXBlLFxuICBHZW9jb2RlclJlcXVlc3QsXG4gIEdlb2NvZGVyUmVzdWx0LFxuICBHZW9jb2RlclN0YXR1cyxcbiAgTWFwVHlwZVN0eWxlLFxuICBQYWRkaW5nLFxuICBDb250cm9sUG9zaXRpb24sXG4gIE92ZXJ2aWV3TWFwQ29udHJvbE9wdGlvbnMsXG4gIFBhbkNvbnRyb2xPcHRpb25zLFxuICBSb3RhdGVDb250cm9sT3B0aW9ucyxcbiAgTWFwVHlwZUNvbnRyb2xPcHRpb25zLFxuICBNYXBUeXBlSWQsXG4gIFNjYWxlQ29udHJvbE9wdGlvbnMsXG4gIFNjYWxlQ29udHJvbFN0eWxlLFxuICBTdHJlZXRWaWV3Q29udHJvbE9wdGlvbnMsXG4gIFpvb21Db250cm9sT3B0aW9ucyxcbiAgWm9vbUNvbnRyb2xTdHlsZSxcbiAgRnVsbHNjcmVlbkNvbnRyb2xPcHRpb25zLFxuICBDaXJjbGVPcHRpb25zLFxuICBDaXJjbGUsXG4gIFBvbHlsaW5lLFxuICBQb2x5bGluZU9wdGlvbnMsXG4gIFBvbHlnb24sXG4gIFBvbHlnb25PcHRpb25zLFxuICBSZWN0YW5nbGUsXG4gIFJlY3RhbmdsZU9wdGlvbnMsXG4gIE1hcmtlcixcbiAgTWFya2VyT3B0aW9ucyxcbn0gZnJvbSAnLi9zZXJ2aWNlcy9nb29nbGUtbWFwcy10eXBlcyc7XG5cbi8qKlxuICogTW91c2VFdmVudCBnZXRzIGVtaXR0ZWQgd2hlbiB0aGUgdXNlciB0cmlnZ2VycyBtb3VzZSBldmVudHMgb24gdGhlIG1hcC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb3VzZUV2ZW50IHtcbiAgY29vcmRzOiBMYXRMbmdMaXRlcmFsO1xuICBwbGFjZUlkPzogc3RyaW5nO1xufVxuIl19
export { CircleManager } from './services/managers/circle-manager';
export { DataLayerManager } from './services/managers/data-layer-manager';
export { FitBoundsAccessor } from './services/fit-bounds';
export { AgmGeocoder } from './services/geocoder-service';
export { GoogleMapsAPIWrapper } from './services/google-maps-api-wrapper';

@@ -15,2 +16,2 @@ export { GoogleMapsScriptProtocol, LAZY_MAPS_API_CONFIG, LazyMapsAPILoader, } from './services/maps-api-loader/lazy-maps-api-loader';

export { RectangleManager } from './services/managers/rectangle-manager';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLGlCQUFpQixHQUVsQixNQUFNLGlEQUFpRCxDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNwRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ2lyY2xlTWFuYWdlciB9IGZyb20gJy4vc2VydmljZXMvbWFuYWdlcnMvY2lyY2xlLW1hbmFnZXInO1xuZXhwb3J0IHsgRGF0YUxheWVyTWFuYWdlciB9IGZyb20gJy4vc2VydmljZXMvbWFuYWdlcnMvZGF0YS1sYXllci1tYW5hZ2VyJztcbmV4cG9ydCB7IEZpdEJvdW5kc0FjY2Vzc29yLCBGaXRCb3VuZHNEZXRhaWxzIH0gZnJvbSAnLi9zZXJ2aWNlcy9maXQtYm91bmRzJztcbmV4cG9ydCB7IEdvb2dsZU1hcHNBUElXcmFwcGVyIH0gZnJvbSAnLi9zZXJ2aWNlcy9nb29nbGUtbWFwcy1hcGktd3JhcHBlcic7XG5leHBvcnQge1xuICBHb29nbGVNYXBzU2NyaXB0UHJvdG9jb2wsXG4gIExBWllfTUFQU19BUElfQ09ORklHLFxuICBMYXp5TWFwc0FQSUxvYWRlcixcbiAgTGF6eU1hcHNBUElMb2FkZXJDb25maWdMaXRlcmFsLFxufSBmcm9tICcuL3NlcnZpY2VzL21hcHMtYXBpLWxvYWRlci9sYXp5LW1hcHMtYXBpLWxvYWRlcic7XG5leHBvcnQgeyBJbmZvV2luZG93TWFuYWdlciB9IGZyb20gJy4vc2VydmljZXMvbWFuYWdlcnMvaW5mby13aW5kb3ctbWFuYWdlcic7XG5leHBvcnQgeyBLbWxMYXllck1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL2ttbC1sYXllci1tYW5hZ2VyJztcbmV4cG9ydCB7IExheWVyTWFuYWdlciB9IGZyb20gJy4vc2VydmljZXMvbWFuYWdlcnMvbGF5ZXItbWFuYWdlcic7XG5leHBvcnQgeyBNYXBzQVBJTG9hZGVyIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYXBzLWFwaS1sb2FkZXIvbWFwcy1hcGktbG9hZGVyJztcbmV4cG9ydCB7IE1hcmtlck1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL21hcmtlci1tYW5hZ2VyJztcbmV4cG9ydCB7IE5vT3BNYXBzQVBJTG9hZGVyIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYXBzLWFwaS1sb2FkZXIvbm9vcC1tYXBzLWFwaS1sb2FkZXInO1xuZXhwb3J0IHsgUG9seWdvbk1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL3BvbHlnb24tbWFuYWdlcic7XG5leHBvcnQgeyBQb2x5bGluZU1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL3BvbHlsaW5lLW1hbmFnZXInO1xuZXhwb3J0IHsgUmVjdGFuZ2xlTWFuYWdlciB9IGZyb20gJy4vc2VydmljZXMvbWFuYWdlcnMvcmVjdGFuZ2xlLW1hbmFnZXInO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixpQkFBaUIsR0FFbEIsTUFBTSxpREFBaUQsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENpcmNsZU1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL2NpcmNsZS1tYW5hZ2VyJztcbmV4cG9ydCB7IERhdGFMYXllck1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL2RhdGEtbGF5ZXItbWFuYWdlcic7XG5leHBvcnQgeyBGaXRCb3VuZHNBY2Nlc3NvciwgRml0Qm91bmRzRGV0YWlscyB9IGZyb20gJy4vc2VydmljZXMvZml0LWJvdW5kcyc7XG5leHBvcnQgeyBBZ21HZW9jb2RlciB9IGZyb20gJy4vc2VydmljZXMvZ2VvY29kZXItc2VydmljZSc7XG5leHBvcnQgeyBHb29nbGVNYXBzQVBJV3JhcHBlciB9IGZyb20gJy4vc2VydmljZXMvZ29vZ2xlLW1hcHMtYXBpLXdyYXBwZXInO1xuZXhwb3J0IHtcbiAgR29vZ2xlTWFwc1NjcmlwdFByb3RvY29sLFxuICBMQVpZX01BUFNfQVBJX0NPTkZJRyxcbiAgTGF6eU1hcHNBUElMb2FkZXIsXG4gIExhenlNYXBzQVBJTG9hZGVyQ29uZmlnTGl0ZXJhbCxcbn0gZnJvbSAnLi9zZXJ2aWNlcy9tYXBzLWFwaS1sb2FkZXIvbGF6eS1tYXBzLWFwaS1sb2FkZXInO1xuZXhwb3J0IHsgSW5mb1dpbmRvd01hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL2luZm8td2luZG93LW1hbmFnZXInO1xuZXhwb3J0IHsgS21sTGF5ZXJNYW5hZ2VyIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYW5hZ2Vycy9rbWwtbGF5ZXItbWFuYWdlcic7XG5leHBvcnQgeyBMYXllck1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL2xheWVyLW1hbmFnZXInO1xuZXhwb3J0IHsgTWFwc0FQSUxvYWRlciB9IGZyb20gJy4vc2VydmljZXMvbWFwcy1hcGktbG9hZGVyL21hcHMtYXBpLWxvYWRlcic7XG5leHBvcnQgeyBNYXJrZXJNYW5hZ2VyIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYW5hZ2Vycy9tYXJrZXItbWFuYWdlcic7XG5leHBvcnQgeyBOb09wTWFwc0FQSUxvYWRlciB9IGZyb20gJy4vc2VydmljZXMvbWFwcy1hcGktbG9hZGVyL25vb3AtbWFwcy1hcGktbG9hZGVyJztcbmV4cG9ydCB7IFBvbHlnb25NYW5hZ2VyIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYW5hZ2Vycy9wb2x5Z29uLW1hbmFnZXInO1xuZXhwb3J0IHsgUG9seWxpbmVNYW5hZ2VyIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYW5hZ2Vycy9wb2x5bGluZS1tYW5hZ2VyJztcbmV4cG9ydCB7IFJlY3RhbmdsZU1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL3JlY3RhbmdsZS1tYW5hZ2VyJztcbiJdfQ==

@@ -26,3 +26,5 @@ import * as tslib_1 from "tslib";

setMapOptions(options) {
this._map.then((m) => { m.setOptions(options); });
return this._zone.runOutsideAngular(() => {
this._map.then((m) => { m.setOptions(options); });
});
}

@@ -33,11 +35,15 @@ /**

createMarker(options = {}, addToMap = true) {
return this._map.then((map) => {
if (addToMap) {
options.map = map;
}
return new google.maps.Marker(options);
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => {
if (addToMap) {
options.map = map;
}
return new google.maps.Marker(options);
});
});
}
createInfoWindow(options) {
return this._map.then(() => { return new google.maps.InfoWindow(options); });
return this._zone.runOutsideAngular(() => {
return this._map.then(() => { return new google.maps.InfoWindow(options); });
});
}

@@ -48,8 +54,10 @@ /**

createCircle(options) {
return this._map.then((map) => {
if (typeof options.strokePosition === 'string') {
options.strokePosition = google.maps.StrokePosition[options.strokePosition];
}
options.map = map;
return new google.maps.Circle(options);
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => {
if (typeof options.strokePosition === 'string') {
options.strokePosition = google.maps.StrokePosition[options.strokePosition];
}
options.map = map;
return new google.maps.Circle(options);
});
});

@@ -61,19 +69,25 @@ }

createRectangle(options) {
return this._map.then((map) => {
options.map = map;
return new google.maps.Rectangle(options);
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => {
options.map = map;
return new google.maps.Rectangle(options);
});
});
}
createPolyline(options) {
return this.getNativeMap().then((map) => {
let line = new google.maps.Polyline(options);
line.setMap(map);
return line;
return this._zone.runOutsideAngular(() => {
return this.getNativeMap().then((map) => {
let line = new google.maps.Polyline(options);
line.setMap(map);
return line;
});
});
}
createPolygon(options) {
return this.getNativeMap().then((map) => {
let polygon = new google.maps.Polygon(options);
polygon.setMap(map);
return polygon;
return this._zone.runOutsideAngular(() => {
return this.getNativeMap().then((map) => {
let polygon = new google.maps.Polygon(options);
polygon.setMap(map);
return polygon;
});
});

@@ -85,6 +99,8 @@ }

createDataLayer(options) {
return this._map.then(m => {
let data = new google.maps.Data(options);
data.setMap(m);
return data;
return this._zone.runOutsideAngular(() => {
return this._map.then(m => {
let data = new google.maps.Data(options);
data.setMap(m);
return data;
});
});

@@ -98,6 +114,8 @@ }

createTransitLayer(options) {
return this._map.then((map) => {
let newLayer = new google.maps.TransitLayer();
newLayer.setMap(options.visible ? map : null);
return newLayer;
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => {
let newLayer = new google.maps.TransitLayer();
newLayer.setMap(options.visible ? map : null);
return newLayer;
});
});

@@ -111,6 +129,8 @@ }

createBicyclingLayer(options) {
return this._map.then((map) => {
let newLayer = new google.maps.BicyclingLayer();
newLayer.setMap(options.visible ? map : null);
return newLayer;
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => {
let newLayer = new google.maps.BicyclingLayer();
newLayer.setMap(options.visible ? map : null);
return newLayer;
});
});

@@ -132,33 +152,57 @@ }

clearInstanceListeners() {
this._map.then((map) => {
google.maps.event.clearInstanceListeners(map);
return this._zone.runOutsideAngular(() => {
this._map.then((map) => {
google.maps.event.clearInstanceListeners(map);
});
});
}
setCenter(latLng) {
return this._map.then((map) => map.setCenter(latLng));
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => map.setCenter(latLng));
});
}
getZoom() { return this._map.then((map) => map.getZoom()); }
getZoom() {
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => map.getZoom());
});
}
getBounds() {
return this._map.then((map) => map.getBounds());
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => map.getBounds());
});
}
getMapTypeId() {
return this._map.then((map) => map.getMapTypeId());
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => map.getMapTypeId());
});
}
setZoom(zoom) {
return this._map.then((map) => map.setZoom(zoom));
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => map.setZoom(zoom));
});
}
getCenter() {
return this._map.then((map) => map.getCenter());
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => map.getCenter());
});
}
panTo(latLng) {
return this._map.then((map) => map.panTo(latLng));
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => map.panTo(latLng));
});
}
panBy(x, y) {
return this._map.then((map) => map.panBy(x, y));
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => map.panBy(x, y));
});
}
fitBounds(latLng, padding) {
return this._map.then((map) => map.fitBounds(latLng, padding));
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => map.fitBounds(latLng, padding));
});
}
panToBounds(latLng, padding) {
return this._map.then((map) => map.panToBounds(latLng, padding));
return this._zone.runOutsideAngular(() => {
return this._map.then((map) => map.panToBounds(latLng, padding));
});
}

@@ -185,2 +229,2 @@ /**

export { GoogleMapsAPIWrapper };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtYXBpLXdyYXBwZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9nb29nbGUtbWFwcy1hcGktd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUk1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFLbEU7OztHQUdHO0FBRUgsSUFBYSxvQkFBb0IsR0FBakMsTUFBYSxvQkFBb0I7SUFJL0IsWUFBb0IsT0FBc0IsRUFBVSxLQUFhO1FBQTdDLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQy9ELElBQUksQ0FBQyxJQUFJO1lBQ0wsSUFBSSxPQUFPLENBQXFCLENBQUMsT0FBbUIsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQWUsRUFBRSxVQUErQjtRQUN4RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUUsR0FBRyxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNuQyxNQUFNLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUF5QixDQUFDLENBQUM7Z0JBQzdDLE9BQU87WUFDVCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUE0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O0lBQ25FLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksS0FBa0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUVqRTs7T0FFRztJQUNILGVBQWUsQ0FBQyxTQUFpQjtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztDQUNGLENBQUE7O1lBdEw4QixhQUFhO1lBQWlCLE1BQU07O0FBSnRELG9CQUFvQjtJQURoQyxVQUFVLEVBQUU7NkNBS2tCLGFBQWEsRUFBaUIsTUFBTTtHQUp0RCxvQkFBb0IsQ0EwTGhDO1NBMUxZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0ICogYXMgbWFwVHlwZXMgZnJvbSAnLi9nb29nbGUtbWFwcy10eXBlcyc7XG5pbXBvcnQgeyBQb2x5bGluZSwgUG9seWxpbmVPcHRpb25zIH0gZnJvbSAnLi9nb29nbGUtbWFwcy10eXBlcyc7XG5pbXBvcnQgeyBNYXBzQVBJTG9hZGVyIH0gZnJvbSAnLi9tYXBzLWFwaS1sb2FkZXIvbWFwcy1hcGktbG9hZGVyJztcblxuLy8gdG9kbzogYWRkIHR5cGVzIGZvciB0aGlzXG5kZWNsYXJlIHZhciBnb29nbGU6IGFueTtcblxuLyoqXG4gKiBXcmFwcGVyIGNsYXNzIHRoYXQgaGFuZGxlcyB0aGUgY29tbXVuaWNhdGlvbiB3aXRoIHRoZSBHb29nbGUgTWFwcyBKYXZhc2NyaXB0XG4gKiBBUEkgdjNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdvb2dsZU1hcHNBUElXcmFwcGVyIHtcbiAgcHJpdmF0ZSBfbWFwOiBQcm9taXNlPG1hcFR5cGVzLkdvb2dsZU1hcD47XG4gIHByaXZhdGUgX21hcFJlc29sdmVyOiAodmFsdWU/OiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbG9hZGVyOiBNYXBzQVBJTG9hZGVyLCBwcml2YXRlIF96b25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLl9tYXAgPVxuICAgICAgICBuZXcgUHJvbWlzZTxtYXBUeXBlcy5Hb29nbGVNYXA+KChyZXNvbHZlOiAoKSA9PiB2b2lkKSA9PiB7IHRoaXMuX21hcFJlc29sdmVyID0gcmVzb2x2ZTsgfSk7XG4gIH1cblxuICBjcmVhdGVNYXAoZWw6IEhUTUxFbGVtZW50LCBtYXBPcHRpb25zOiBtYXBUeXBlcy5NYXBPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9sb2FkZXIubG9hZCgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBtYXAgPSBuZXcgZ29vZ2xlLm1hcHMuTWFwKGVsLCBtYXBPcHRpb25zKTtcbiAgICAgICAgdGhpcy5fbWFwUmVzb2x2ZXIobWFwIGFzIG1hcFR5cGVzLkdvb2dsZU1hcCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0TWFwT3B0aW9ucyhvcHRpb25zOiBtYXBUeXBlcy5NYXBPcHRpb25zKSB7XG4gICAgdGhpcy5fbWFwLnRoZW4oKG06IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4geyBtLnNldE9wdGlvbnMob3B0aW9ucyk7IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBnb29nbGUgbWFwIG1hcmtlciB3aXRoIHRoZSBtYXAgY29udGV4dFxuICAgKi9cbiAgY3JlYXRlTWFya2VyKG9wdGlvbnM6IG1hcFR5cGVzLk1hcmtlck9wdGlvbnMgPSB7fSBhcyBtYXBUeXBlcy5NYXJrZXJPcHRpb25zLCBhZGRUb01hcDogYm9vbGVhbiA9IHRydWUpOlxuICAgICAgUHJvbWlzZTxtYXBUeXBlcy5NYXJrZXI+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiB7XG4gICAgICBpZiAoYWRkVG9NYXApIHtcbiAgICAgICAgb3B0aW9ucy5tYXAgPSBtYXA7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IGdvb2dsZS5tYXBzLk1hcmtlcihvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUluZm9XaW5kb3cob3B0aW9ucz86IG1hcFR5cGVzLkluZm9XaW5kb3dPcHRpb25zKTogUHJvbWlzZTxtYXBUeXBlcy5JbmZvV2luZG93PiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKCgpID0+IHsgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5JbmZvV2luZG93KG9wdGlvbnMpOyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZ29vZ2xlLm1hcC5DaXJjbGUgZm9yIHRoZSBjdXJyZW50IG1hcC5cbiAgICovXG4gIGNyZWF0ZUNpcmNsZShvcHRpb25zOiBtYXBUeXBlcy5DaXJjbGVPcHRpb25zKTogUHJvbWlzZTxtYXBUeXBlcy5DaXJjbGU+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuc3Ryb2tlUG9zaXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdGlvbnMuc3Ryb2tlUG9zaXRpb24gPSBnb29nbGUubWFwcy5TdHJva2VQb3NpdGlvbltvcHRpb25zLnN0cm9rZVBvc2l0aW9uXTtcbiAgICAgIH1cbiAgICAgIG9wdGlvbnMubWFwID0gbWFwO1xuICAgICAgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5DaXJjbGUob3B0aW9ucyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGdvb2dsZS5tYXAuUmVjdGFuZ2xlIGZvciB0aGUgY3VycmVudCBtYXAuXG4gICAqL1xuICBjcmVhdGVSZWN0YW5nbGUob3B0aW9uczogbWFwVHlwZXMuUmVjdGFuZ2xlT3B0aW9ucyk6IFByb21pc2U8bWFwVHlwZXMuUmVjdGFuZ2xlPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgb3B0aW9ucy5tYXAgPSBtYXA7XG4gICAgICByZXR1cm4gbmV3IGdvb2dsZS5tYXBzLlJlY3RhbmdsZShvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVBvbHlsaW5lKG9wdGlvbnM6IFBvbHlsaW5lT3B0aW9ucyk6IFByb21pc2U8UG9seWxpbmU+IHtcbiAgICByZXR1cm4gdGhpcy5nZXROYXRpdmVNYXAoKS50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgbGV0IGxpbmUgPSBuZXcgZ29vZ2xlLm1hcHMuUG9seWxpbmUob3B0aW9ucyk7XG4gICAgICBsaW5lLnNldE1hcChtYXApO1xuICAgICAgcmV0dXJuIGxpbmU7XG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVQb2x5Z29uKG9wdGlvbnM6IG1hcFR5cGVzLlBvbHlnb25PcHRpb25zKTogUHJvbWlzZTxtYXBUeXBlcy5Qb2x5Z29uPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TmF0aXZlTWFwKCkudGhlbigobWFwOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHtcbiAgICAgIGxldCBwb2x5Z29uID0gbmV3IGdvb2dsZS5tYXBzLlBvbHlnb24ob3B0aW9ucyk7XG4gICAgICBwb2x5Z29uLnNldE1hcChtYXApO1xuICAgICAgcmV0dXJuIHBvbHlnb247XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBnb29nbGUubWFwLkRhdGEgbGF5ZXIgZm9yIHRoZSBjdXJyZW50IG1hcFxuICAgKi9cbiAgY3JlYXRlRGF0YUxheWVyKG9wdGlvbnM/OiBtYXBUeXBlcy5EYXRhT3B0aW9ucyk6IFByb21pc2U8bWFwVHlwZXMuRGF0YT4ge1xuICAgIHJldHVybiB0aGlzLl9tYXAudGhlbihtID0+IHtcbiAgICAgIGxldCBkYXRhID0gbmV3IGdvb2dsZS5tYXBzLkRhdGEob3B0aW9ucyk7XG4gICAgICBkYXRhLnNldE1hcChtKTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUcmFuc2l0TGF5ZXIgaW5zdGFuY2UgZm9yIGEgbWFwXG4gICAqIEBwYXJhbSB7VHJhbnNpdExheWVyT3B0aW9uc30gb3B0aW9ucyAtIHVzZWQgZm9yIHNldHRpbmcgbGF5ZXIgb3B0aW9uc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUcmFuc2l0TGF5ZXI+fSBhIG5ldyB0cmFuc2l0IGxheWVyIG9iamVjdFxuICAgKi9cbiAgY3JlYXRlVHJhbnNpdExheWVyKG9wdGlvbnM6IG1hcFR5cGVzLlRyYW5zaXRMYXllck9wdGlvbnMpOiBQcm9taXNlPG1hcFR5cGVzLlRyYW5zaXRMYXllcj57XG4gICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgbGV0IG5ld0xheWVyOiBtYXBUeXBlcy5UcmFuc2l0TGF5ZXIgPSBuZXcgZ29vZ2xlLm1hcHMuVHJhbnNpdExheWVyKCk7XG4gICAgICBuZXdMYXllci5zZXRNYXAob3B0aW9ucy52aXNpYmxlID8gbWFwIDogbnVsbCk7XG4gICAgICByZXR1cm4gbmV3TGF5ZXI7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEJpY3ljbGluZ0xheWVyIGluc3RhbmNlIGZvciBhIG1hcFxuICAgKiBAcGFyYW0ge0JpY3ljbGluZ0xheWVyT3B0aW9uc30gb3B0aW9ucyAtIHVzZWQgZm9yIHNldHRpbmcgbGF5ZXIgb3B0aW9uc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxCaWN5Y2xpbmdMYXllcj59IGEgbmV3IGJpY3ljbGluZyBsYXllciBvYmplY3RcbiAgICovXG4gIGNyZWF0ZUJpY3ljbGluZ0xheWVyKG9wdGlvbnM6IG1hcFR5cGVzLkJpY3ljbGluZ0xheWVyT3B0aW9ucyk6IFByb21pc2U8bWFwVHlwZXMuQmljeWNsaW5nTGF5ZXI+e1xuICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHtcbiAgICAgIGxldCBuZXdMYXllcjogbWFwVHlwZXMuQmljeWNsaW5nTGF5ZXIgPSBuZXcgZ29vZ2xlLm1hcHMuQmljeWNsaW5nTGF5ZXIoKTtcbiAgICAgIG5ld0xheWVyLnNldE1hcChvcHRpb25zLnZpc2libGUgPyBtYXAgOiBudWxsKTtcbiAgICAgIHJldHVybiBuZXdMYXllcjtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGdpdmVuIGNvb3JkaW5hdGVzIGFyZSBpbnNpdGUgYSBQb2x5Z29uIHBhdGguXG4gICAqL1xuICBjb250YWluc0xvY2F0aW9uKGxhdExuZzogbWFwVHlwZXMuTGF0TG5nTGl0ZXJhbCwgcG9seWdvbjogbWFwVHlwZXMuUG9seWdvbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBnb29nbGUubWFwcy5nZW9tZXRyeS5wb2x5LmNvbnRhaW5zTG9jYXRpb24obGF0TG5nLCBwb2x5Z29uKTtcbiAgfVxuXG4gIHN1YnNjcmliZVRvTWFwRXZlbnQ8RT4oZXZlbnROYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEU+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxFPikgPT4ge1xuICAgICAgdGhpcy5fbWFwLnRoZW4oKG06IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgICBtLmFkZExpc3RlbmVyKGV2ZW50TmFtZSwgKGFyZzogRSkgPT4geyB0aGlzLl96b25lLnJ1bigoKSA9PiBvYnNlcnZlci5uZXh0KGFyZykpOyB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgY2xlYXJJbnN0YW5jZUxpc3RlbmVycygpIHtcbiAgICB0aGlzLl9tYXAudGhlbigobWFwOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHtcbiAgICAgIGdvb2dsZS5tYXBzLmV2ZW50LmNsZWFySW5zdGFuY2VMaXN0ZW5lcnMobWFwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldENlbnRlcihsYXRMbmc6IG1hcFR5cGVzLkxhdExuZ0xpdGVyYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiBtYXAuc2V0Q2VudGVyKGxhdExuZykpO1xuICB9XG5cbiAgZ2V0Wm9vbSgpOiBQcm9taXNlPG51bWJlcj4geyByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiBtYXAuZ2V0Wm9vbSgpKTsgfVxuXG4gIGdldEJvdW5kcygpOiBQcm9taXNlPG1hcFR5cGVzLkxhdExuZ0JvdW5kcz4ge1xuICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IG1hcC5nZXRCb3VuZHMoKSk7XG4gIH1cblxuICBnZXRNYXBUeXBlSWQoKTogUHJvbWlzZTxtYXBUeXBlcy5NYXBUeXBlSWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiBtYXAuZ2V0TWFwVHlwZUlkKCkpO1xuICB9XG5cbiAgc2V0Wm9vbSh6b29tOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiBtYXAuc2V0Wm9vbSh6b29tKSk7XG4gIH1cblxuICBnZXRDZW50ZXIoKTogUHJvbWlzZTxtYXBUeXBlcy5MYXRMbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiBtYXAuZ2V0Q2VudGVyKCkpO1xuICB9XG5cbiAgcGFuVG8obGF0TG5nOiBtYXBUeXBlcy5MYXRMbmcgfCBtYXBUeXBlcy5MYXRMbmdMaXRlcmFsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXApID0+IG1hcC5wYW5UbyhsYXRMbmcpKTtcbiAgfVxuXG4gIHBhbkJ5KHg6IG51bWJlciwgeTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXApID0+IG1hcC5wYW5CeSh4LCB5KSk7XG4gIH1cblxuICBmaXRCb3VuZHMobGF0TG5nOiBtYXBUeXBlcy5MYXRMbmdCb3VuZHMgfCBtYXBUeXBlcy5MYXRMbmdCb3VuZHNMaXRlcmFsLCBwYWRkaW5nPzogbnVtYmVyIHwgbWFwVHlwZXMuUGFkZGluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwKSA9PiBtYXAuZml0Qm91bmRzKGxhdExuZywgcGFkZGluZykpO1xuICB9XG5cbiAgcGFuVG9Cb3VuZHMobGF0TG5nOiBtYXBUeXBlcy5MYXRMbmdCb3VuZHMgfCBtYXBUeXBlcy5MYXRMbmdCb3VuZHNMaXRlcmFsLCBwYWRkaW5nPzogbnVtYmVyIHwgbWFwVHlwZXMuUGFkZGluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwKSA9PiBtYXAucGFuVG9Cb3VuZHMobGF0TG5nLCBwYWRkaW5nKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbmF0aXZlIEdvb2dsZSBNYXBzIE1hcCBpbnN0YW5jZS4gQmUgY2FyZWZ1bCB3aGVuIHVzaW5nIHRoaXMgaW5zdGFuY2UgZGlyZWN0bHkuXG4gICAqL1xuICBnZXROYXRpdmVNYXAoKTogUHJvbWlzZTxtYXBUeXBlcy5Hb29nbGVNYXA+IHsgcmV0dXJuIHRoaXMuX21hcDsgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyB0aGUgZ2l2ZW4gZXZlbnQgbmFtZSBvbiB0aGUgbWFwIGluc3RhbmNlLlxuICAgKi9cbiAgdHJpZ2dlck1hcEV2ZW50KGV2ZW50TmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtKSA9PiBnb29nbGUubWFwcy5ldmVudC50cmlnZ2VyKG0sIGV2ZW50TmFtZSkpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtYXBpLXdyYXBwZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9nb29nbGUtbWFwcy1hcGktd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUk1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFLbEU7OztHQUdHO0FBRUgsSUFBYSxvQkFBb0IsR0FBakMsTUFBYSxvQkFBb0I7SUFJL0IsWUFBb0IsT0FBc0IsRUFBVSxLQUFhO1FBQTdDLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQy9ELElBQUksQ0FBQyxJQUFJO1lBQ0wsSUFBSSxPQUFPLENBQXFCLENBQUMsT0FBbUIsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRUQsU0FBUyxDQUFDLEVBQWUsRUFBRSxVQUErQjtRQUN4RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNuQyxNQUFNLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUF5QixDQUFDLENBQUM7Z0JBQzdDLE9BQU87WUFDVCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxPQUE0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SUFDeEUsQ0FBQztDQUNGLENBQUE7O1lBbE84QixhQUFhO1lBQWlCLE1BQU07O0FBSnRELG9CQUFvQjtJQURoQyxVQUFVLEVBQUU7NkNBS2tCLGFBQWEsRUFBaUIsTUFBTTtHQUp0RCxvQkFBb0IsQ0FzT2hDO1NBdE9ZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0ICogYXMgbWFwVHlwZXMgZnJvbSAnLi9nb29nbGUtbWFwcy10eXBlcyc7XG5pbXBvcnQgeyBQb2x5bGluZSwgUG9seWxpbmVPcHRpb25zIH0gZnJvbSAnLi9nb29nbGUtbWFwcy10eXBlcyc7XG5pbXBvcnQgeyBNYXBzQVBJTG9hZGVyIH0gZnJvbSAnLi9tYXBzLWFwaS1sb2FkZXIvbWFwcy1hcGktbG9hZGVyJztcblxuLy8gdG9kbzogYWRkIHR5cGVzIGZvciB0aGlzXG5kZWNsYXJlIHZhciBnb29nbGU6IGFueTtcblxuLyoqXG4gKiBXcmFwcGVyIGNsYXNzIHRoYXQgaGFuZGxlcyB0aGUgY29tbXVuaWNhdGlvbiB3aXRoIHRoZSBHb29nbGUgTWFwcyBKYXZhc2NyaXB0XG4gKiBBUEkgdjNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdvb2dsZU1hcHNBUElXcmFwcGVyIHtcbiAgcHJpdmF0ZSBfbWFwOiBQcm9taXNlPG1hcFR5cGVzLkdvb2dsZU1hcD47XG4gIHByaXZhdGUgX21hcFJlc29sdmVyOiAodmFsdWU/OiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbG9hZGVyOiBNYXBzQVBJTG9hZGVyLCBwcml2YXRlIF96b25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLl9tYXAgPVxuICAgICAgICBuZXcgUHJvbWlzZTxtYXBUeXBlcy5Hb29nbGVNYXA+KChyZXNvbHZlOiAoKSA9PiB2b2lkKSA9PiB7IHRoaXMuX21hcFJlc29sdmVyID0gcmVzb2x2ZTsgfSk7XG4gIH1cblxuICBjcmVhdGVNYXAoZWw6IEhUTUxFbGVtZW50LCBtYXBPcHRpb25zOiBtYXBUeXBlcy5NYXBPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlci5sb2FkKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBnb29nbGUubWFwcy5NYXAoZWwsIG1hcE9wdGlvbnMpO1xuICAgICAgICB0aGlzLl9tYXBSZXNvbHZlcihtYXAgYXMgbWFwVHlwZXMuR29vZ2xlTWFwKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRNYXBPcHRpb25zKG9wdGlvbnM6IG1hcFR5cGVzLk1hcE9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLl9tYXAudGhlbigobTogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiB7IG0uc2V0T3B0aW9ucyhvcHRpb25zKTsgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGdvb2dsZSBtYXAgbWFya2VyIHdpdGggdGhlIG1hcCBjb250ZXh0XG4gICAqL1xuICBjcmVhdGVNYXJrZXIob3B0aW9uczogbWFwVHlwZXMuTWFya2VyT3B0aW9ucyA9IHt9IGFzIG1hcFR5cGVzLk1hcmtlck9wdGlvbnMsIGFkZFRvTWFwOiBib29sZWFuID0gdHJ1ZSk6XG4gICAgICBQcm9taXNlPG1hcFR5cGVzLk1hcmtlcj4ge1xuICAgIHJldHVybiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHtcbiAgICAgICAgaWYgKGFkZFRvTWFwKSB7XG4gICAgICAgICAgb3B0aW9ucy5tYXAgPSBtYXA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5NYXJrZXIob3B0aW9ucyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUluZm9XaW5kb3cob3B0aW9ucz86IG1hcFR5cGVzLkluZm9XaW5kb3dPcHRpb25zKTogUHJvbWlzZTxtYXBUeXBlcy5JbmZvV2luZG93PiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKCgpID0+IHsgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5JbmZvV2luZG93KG9wdGlvbnMpOyB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZ29vZ2xlLm1hcC5DaXJjbGUgZm9yIHRoZSBjdXJyZW50IG1hcC5cbiAgICovXG4gIGNyZWF0ZUNpcmNsZShvcHRpb25zOiBtYXBUeXBlcy5DaXJjbGVPcHRpb25zKTogUHJvbWlzZTxtYXBUeXBlcy5DaXJjbGU+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5zdHJva2VQb3NpdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBvcHRpb25zLnN0cm9rZVBvc2l0aW9uID0gZ29vZ2xlLm1hcHMuU3Ryb2tlUG9zaXRpb25bb3B0aW9ucy5zdHJva2VQb3NpdGlvbl07XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucy5tYXAgPSBtYXA7XG4gICAgICAgIHJldHVybiBuZXcgZ29vZ2xlLm1hcHMuQ2lyY2xlKG9wdGlvbnMpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGdvb2dsZS5tYXAuUmVjdGFuZ2xlIGZvciB0aGUgY3VycmVudCBtYXAuXG4gICAqL1xuICBjcmVhdGVSZWN0YW5nbGUob3B0aW9uczogbWFwVHlwZXMuUmVjdGFuZ2xlT3B0aW9ucyk6IFByb21pc2U8bWFwVHlwZXMuUmVjdGFuZ2xlPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgICBvcHRpb25zLm1hcCA9IG1hcDtcbiAgICAgICAgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5SZWN0YW5nbGUob3B0aW9ucyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVBvbHlsaW5lKG9wdGlvbnM6IFBvbHlsaW5lT3B0aW9ucyk6IFByb21pc2U8UG9seWxpbmU+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5nZXROYXRpdmVNYXAoKS50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgICBsZXQgbGluZSA9IG5ldyBnb29nbGUubWFwcy5Qb2x5bGluZShvcHRpb25zKTtcbiAgICAgICAgbGluZS5zZXRNYXAobWFwKTtcbiAgICAgICAgcmV0dXJuIGxpbmU7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVBvbHlnb24ob3B0aW9uczogbWFwVHlwZXMuUG9seWdvbk9wdGlvbnMpOiBQcm9taXNlPG1hcFR5cGVzLlBvbHlnb24+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5nZXROYXRpdmVNYXAoKS50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgICBsZXQgcG9seWdvbiA9IG5ldyBnb29nbGUubWFwcy5Qb2x5Z29uKG9wdGlvbnMpO1xuICAgICAgICBwb2x5Z29uLnNldE1hcChtYXApO1xuICAgICAgICByZXR1cm4gcG9seWdvbjtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZ29vZ2xlLm1hcC5EYXRhIGxheWVyIGZvciB0aGUgY3VycmVudCBtYXBcbiAgICovXG4gIGNyZWF0ZURhdGFMYXllcihvcHRpb25zPzogbWFwVHlwZXMuRGF0YU9wdGlvbnMpOiBQcm9taXNlPG1hcFR5cGVzLkRhdGE+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4obSA9PiB7XG4gICAgICAgIGxldCBkYXRhID0gbmV3IGdvb2dsZS5tYXBzLkRhdGEob3B0aW9ucyk7XG4gICAgICAgIGRhdGEuc2V0TWFwKG0pO1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUcmFuc2l0TGF5ZXIgaW5zdGFuY2UgZm9yIGEgbWFwXG4gICAqIEBwYXJhbSB7VHJhbnNpdExheWVyT3B0aW9uc30gb3B0aW9ucyAtIHVzZWQgZm9yIHNldHRpbmcgbGF5ZXIgb3B0aW9uc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUcmFuc2l0TGF5ZXI+fSBhIG5ldyB0cmFuc2l0IGxheWVyIG9iamVjdFxuICAgKi9cbiAgY3JlYXRlVHJhbnNpdExheWVyKG9wdGlvbnM6IG1hcFR5cGVzLlRyYW5zaXRMYXllck9wdGlvbnMpOiBQcm9taXNlPG1hcFR5cGVzLlRyYW5zaXRMYXllcj57XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgICBsZXQgbmV3TGF5ZXI6IG1hcFR5cGVzLlRyYW5zaXRMYXllciA9IG5ldyBnb29nbGUubWFwcy5UcmFuc2l0TGF5ZXIoKTtcbiAgICAgICAgbmV3TGF5ZXIuc2V0TWFwKG9wdGlvbnMudmlzaWJsZSA/IG1hcCA6IG51bGwpO1xuICAgICAgICByZXR1cm4gbmV3TGF5ZXI7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQmljeWNsaW5nTGF5ZXIgaW5zdGFuY2UgZm9yIGEgbWFwXG4gICAqIEBwYXJhbSB7QmljeWNsaW5nTGF5ZXJPcHRpb25zfSBvcHRpb25zIC0gdXNlZCBmb3Igc2V0dGluZyBsYXllciBvcHRpb25zXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEJpY3ljbGluZ0xheWVyPn0gYSBuZXcgYmljeWNsaW5nIGxheWVyIG9iamVjdFxuICAgKi9cbiAgY3JlYXRlQmljeWNsaW5nTGF5ZXIob3B0aW9uczogbWFwVHlwZXMuQmljeWNsaW5nTGF5ZXJPcHRpb25zKTogUHJvbWlzZTxtYXBUeXBlcy5CaWN5Y2xpbmdMYXllcj57XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgICBsZXQgbmV3TGF5ZXI6IG1hcFR5cGVzLkJpY3ljbGluZ0xheWVyID0gbmV3IGdvb2dsZS5tYXBzLkJpY3ljbGluZ0xheWVyKCk7XG4gICAgICAgIG5ld0xheWVyLnNldE1hcChvcHRpb25zLnZpc2libGUgPyBtYXAgOiBudWxsKTtcbiAgICAgICAgcmV0dXJuIG5ld0xheWVyO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBnaXZlbiBjb29yZGluYXRlcyBhcmUgaW5zaXRlIGEgUG9seWdvbiBwYXRoLlxuICAgKi9cbiAgY29udGFpbnNMb2NhdGlvbihsYXRMbmc6IG1hcFR5cGVzLkxhdExuZ0xpdGVyYWwsIHBvbHlnb246IG1hcFR5cGVzLlBvbHlnb24pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gZ29vZ2xlLm1hcHMuZ2VvbWV0cnkucG9seS5jb250YWluc0xvY2F0aW9uKGxhdExuZywgcG9seWdvbik7XG4gIH1cblxuICBzdWJzY3JpYmVUb01hcEV2ZW50PEU+KGV2ZW50TmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxFPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8RT4pID0+IHtcbiAgICAgIHRoaXMuX21hcC50aGVuKChtOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHtcbiAgICAgICAgbS5hZGRMaXN0ZW5lcihldmVudE5hbWUsIChhcmc6IEUpID0+IHsgdGhpcy5fem9uZS5ydW4oKCkgPT4gb2JzZXJ2ZXIubmV4dChhcmcpKTsgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFySW5zdGFuY2VMaXN0ZW5lcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiB7XG4gICAgICAgIGdvb2dsZS5tYXBzLmV2ZW50LmNsZWFySW5zdGFuY2VMaXN0ZW5lcnMobWFwKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0Q2VudGVyKGxhdExuZzogbWFwVHlwZXMuTGF0TG5nTGl0ZXJhbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IG1hcC5zZXRDZW50ZXIobGF0TG5nKSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRab29tKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4gbWFwLmdldFpvb20oKSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRCb3VuZHMoKTogUHJvbWlzZTxtYXBUeXBlcy5MYXRMbmdCb3VuZHM+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiBtYXAuZ2V0Qm91bmRzKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TWFwVHlwZUlkKCk6IFByb21pc2U8bWFwVHlwZXMuTWFwVHlwZUlkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4gbWFwLmdldE1hcFR5cGVJZCgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldFpvb20oem9vbTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4gbWFwLnNldFpvb20oem9vbSkpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2VudGVyKCk6IFByb21pc2U8bWFwVHlwZXMuTGF0TG5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4gbWFwLmdldENlbnRlcigpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhblRvKGxhdExuZzogbWFwVHlwZXMuTGF0TG5nIHwgbWFwVHlwZXMuTGF0TG5nTGl0ZXJhbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwKSA9PiBtYXAucGFuVG8obGF0TG5nKSk7XG4gICAgfSk7XG4gIH1cblxuICBwYW5CeSh4OiBudW1iZXIsIHk6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwKSA9PiBtYXAucGFuQnkoeCwgeSkpO1xuICAgIH0pO1xuICB9XG5cbiAgZml0Qm91bmRzKGxhdExuZzogbWFwVHlwZXMuTGF0TG5nQm91bmRzIHwgbWFwVHlwZXMuTGF0TG5nQm91bmRzTGl0ZXJhbCwgcGFkZGluZz86IG51bWJlciB8IG1hcFR5cGVzLlBhZGRpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcCkgPT4gbWFwLmZpdEJvdW5kcyhsYXRMbmcsIHBhZGRpbmcpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhblRvQm91bmRzKGxhdExuZzogbWFwVHlwZXMuTGF0TG5nQm91bmRzIHwgbWFwVHlwZXMuTGF0TG5nQm91bmRzTGl0ZXJhbCwgcGFkZGluZz86IG51bWJlciB8IG1hcFR5cGVzLlBhZGRpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcCkgPT4gbWFwLnBhblRvQm91bmRzKGxhdExuZywgcGFkZGluZykpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG5hdGl2ZSBHb29nbGUgTWFwcyBNYXAgaW5zdGFuY2UuIEJlIGNhcmVmdWwgd2hlbiB1c2luZyB0aGlzIGluc3RhbmNlIGRpcmVjdGx5LlxuICAgKi9cbiAgZ2V0TmF0aXZlTWFwKCk6IFByb21pc2U8bWFwVHlwZXMuR29vZ2xlTWFwPiB7IHJldHVybiB0aGlzLl9tYXA7IH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgdGhlIGdpdmVuIGV2ZW50IG5hbWUgb24gdGhlIG1hcCBpbnN0YW5jZS5cbiAgICovXG4gIHRyaWdnZXJNYXBFdmVudChldmVudE5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobSkgPT4gZ29vZ2xlLm1hcHMuZXZlbnQudHJpZ2dlcihtLCBldmVudE5hbWUpKTtcbiAgfVxufVxuIl19

@@ -44,4 +44,4 @@ export var google;

MapTypeControlStyle[MapTypeControlStyle["DEFAULT"] = 0] = "DEFAULT";
MapTypeControlStyle[MapTypeControlStyle["DROPDOWN_MENU"] = 1] = "DROPDOWN_MENU";
MapTypeControlStyle[MapTypeControlStyle["HORIZONTAL_BAR"] = 2] = "HORIZONTAL_BAR";
MapTypeControlStyle[MapTypeControlStyle["DROPDOWN_MENU"] = 2] = "DROPDOWN_MENU";
MapTypeControlStyle[MapTypeControlStyle["HORIZONTAL_BAR"] = 1] = "HORIZONTAL_BAR";
})(MapTypeControlStyle || (MapTypeControlStyle = {}));

@@ -58,2 +58,19 @@ export var ScaleControlStyle;

})(ZoomControlStyle || (ZoomControlStyle = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtdHlwZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9nb29nbGUtbWFwcy10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBSSxNQUFXLENBQUM7QUFrVHZCLE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIsNkVBQXlCLENBQUE7SUFDekIseUVBQXVCLENBQUE7SUFDdkIsK0NBQVUsQ0FBQTtJQUNWLDJFQUF3QixDQUFBO0lBQ3hCLHVFQUFzQixDQUFBO0FBQ3hCLENBQUMsRUFOVyxVQUFVLEtBQVYsVUFBVSxRQU1yQjtBQXNNRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFOLElBQVksZUFhWDtBQWJELFdBQVksZUFBZTtJQUN6QixxRUFBWSxDQUFBO0lBQ1osNkRBQVEsQ0FBQTtJQUNSLGlFQUFVLENBQUE7SUFDViwrREFBUyxDQUFBO0lBQ1QsbUVBQVcsQ0FBQTtJQUNYLDZEQUFRLENBQUE7SUFDUixtRUFBVyxDQUFBO0lBQ1gsK0RBQVMsQ0FBQTtJQUNULHFFQUFZLENBQUE7SUFDWixxRUFBWSxDQUFBO0lBQ1osb0VBQVcsQ0FBQTtJQUNYLHdFQUFhLENBQUE7QUFDZixDQUFDLEVBYlcsZUFBZSxLQUFmLGVBQWUsUUFhMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQVNYO0FBVEQsV0FBWSxTQUFTO0lBQ25CLHVGQUF1RjtJQUN2Riw2Q0FBTSxDQUFBO0lBQ04sa0RBQWtEO0lBQ2xELCtDQUFPLENBQUE7SUFDUCwrQ0FBK0M7SUFDL0MsbURBQVMsQ0FBQTtJQUNULHlGQUF5RjtJQUN6RiwrQ0FBTyxDQUFBO0FBQ1QsQ0FBQyxFQVRXLFNBQVMsS0FBVCxTQUFTLFFBU3BCO0FBZ0JELE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0IsbUVBQU8sQ0FBQTtJQUNQLCtFQUFhLENBQUE7SUFDYixpRkFBYyxDQUFBO0FBQ2hCLENBQUMsRUFKVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSTlCO0FBOEJELE1BQU0sQ0FBTixJQUFZLGlCQUVYO0FBRkQsV0FBWSxpQkFBaUI7SUFDM0IsK0RBQU8sQ0FBQTtBQUNULENBQUMsRUFGVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRTVCO0FBeUJELE1BQU0sQ0FBTixJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsNkRBQU8sQ0FBQTtJQUNQLHlEQUFLLENBQUE7SUFDTCx5REFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUpXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFJM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIGdvb2dsZTogYW55O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1WQ09iamVjdCB7XG4gIGFkZExpc3RlbmVyKGV2ZW50TmFtZTogc3RyaW5nLCBoYW5kbGVyOiBGdW5jdGlvbik6IE1hcHNFdmVudExpc3RlbmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1WQ0FycmF5PFQ+IGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgY2xlYXIoKTogdm9pZDtcbiAgZ2V0QXJyYXkoKTogQXJyYXk8VD47XG4gIGdldEF0KGk6IG51bWJlcik6IFQ7XG4gIGdldExlbmd0aCgpOiBudW1iZXI7XG4gIGluc2VydEF0KGk6IG51bWJlciwgZWxlbTogVCk6IHZvaWQ7XG4gIHBvcCgpOiBUO1xuICBwdXNoKGVsZW06IFQpOiBudW1iZXI7XG4gIHJlbW92ZUF0KGk6IG51bWJlcik6IFQ7XG4gIHNldEF0KGk6IG51bWJlciwgZWxlbTogVCk6IHZvaWQ7XG4gIC8qIHRzbGludDpkaXNhYmxlICovXG4gIC8qXG4gICogVHNsaW50IGNvbmZpZ3VyYXRpb24gY2hlY2stcGFyYW1ldGVycyB3aWxsIHByb21wdCBlcnJvcnMgZm9yIHRoZXNlIGxpbmVzIG9mIGNvZGUuXG4gICogaHR0cHM6Ly9wYWxhbnRpci5naXRodWIuaW8vdHNsaW50L3J1bGVzL25vLXVudXNlZC12YXJpYWJsZS9cbiAgKi9cbiAgZm9yRWFjaChjYWxsYmFjazogKGVsZW06IFQsIGk6IG51bWJlcikgPT4gdm9pZCk6IHZvaWQ7XG4gIC8qIHRzbGludDplbmFibGUgKi9cbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVNYXAgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBkYXRhPzogRGF0YTtcbiAgcGFuVG8obGF0TG5nOiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsKTogdm9pZDtcbiAgcGFuQnkoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkO1xuICBzZXRab29tKHpvb206IG51bWJlcik6IHZvaWQ7XG4gIGdldENlbnRlcigpOiBMYXRMbmc7XG4gIHNldENlbnRlcihsYXRMbmc6IExhdExuZyB8IExhdExuZ0xpdGVyYWwpOiB2b2lkO1xuICBnZXRCb3VuZHMoKTogTGF0TG5nQm91bmRzO1xuICBnZXRNYXBUeXBlSWQoKTogTWFwVHlwZUlkO1xuICBnZXRab29tKCk6IG51bWJlcjtcbiAgc2V0T3B0aW9ucyhvcHRpb25zOiBNYXBPcHRpb25zKTogdm9pZDtcbiAgcGFuVG9Cb3VuZHMobGF0TG5nQm91bmRzOiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsLCBwYWRkaW5nPzogbnVtYmVyIHwgUGFkZGluZyk6IHZvaWQ7XG4gIGZpdEJvdW5kcyhib3VuZHM6IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWwsIHBhZGRpbmc/OiBudW1iZXIgfCBQYWRkaW5nKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXRMbmcge1xuICBsYXQoKTogbnVtYmVyO1xuICBsbmcoKTogbnVtYmVyO1xuICB0b0pTT04oKTogYW55O1xuICB0b1N0cmluZygpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFya2VyIGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgc2V0TWFwKG1hcDogR29vZ2xlTWFwKTogdm9pZDtcbiAgc2V0UG9zaXRpb24obGF0TG5nOiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsKTogdm9pZDtcbiAgc2V0VGl0bGUodGl0bGU6IHN0cmluZyk6IHZvaWQ7XG4gIHNldExhYmVsKGxhYmVsOiBzdHJpbmcgfCBNYXJrZXJMYWJlbCk6IHZvaWQ7XG4gIHNldERyYWdnYWJsZShkcmFnZ2FibGU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRJY29uKGljb246IHN0cmluZyk6IHZvaWQ7XG4gIHNldE9wYWNpdHkob3BhY2l0eTogbnVtYmVyKTogdm9pZDtcbiAgc2V0VmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0WkluZGV4KHpJbmRleDogbnVtYmVyKTogdm9pZDtcbiAgc2V0QW5pbWF0aW9uKGFuaW1hdGlvbjogYW55KTogdm9pZDtcbiAgZ2V0TGFiZWwoKTogTWFya2VyTGFiZWw7XG4gIHNldENsaWNrYWJsZShjbGlja2FibGU6IGJvb2xlYW4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcmtlck9wdGlvbnMge1xuICBwb3NpdGlvbjogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbDtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgbGFiZWw/OiBzdHJpbmcgfCBNYXJrZXJMYWJlbDtcbiAgZHJhZ2dhYmxlPzogYm9vbGVhbjtcbiAgaWNvbj86IHN0cmluZztcbiAgb3BhY2l0eT86IG51bWJlcjtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIHpJbmRleD86IG51bWJlcjtcbiAgY2xpY2thYmxlOiBib29sZWFuO1xuICBhbmltYXRpb24/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFya2VyTGFiZWwge1xuICBjb2xvcjogc3RyaW5nO1xuICBmb250RmFtaWx5OiBzdHJpbmc7XG4gIGZvbnRTaXplOiBzdHJpbmc7XG4gIGZvbnRXZWlnaHQ6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENpcmNsZSBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGdldEJvdW5kcygpOiBMYXRMbmdCb3VuZHM7XG4gIGdldENlbnRlcigpOiBMYXRMbmc7XG4gIGdldERyYWdnYWJsZSgpOiBib29sZWFuO1xuICBnZXRFZGl0YWJsZSgpOiBib29sZWFuO1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBnZXRSYWRpdXMoKTogbnVtYmVyO1xuICBnZXRWaXNpYmxlKCk6IGJvb2xlYW47XG4gIHNldENlbnRlcihjZW50ZXI6IExhdExuZyB8IExhdExuZ0xpdGVyYWwpOiB2b2lkO1xuICBzZXREcmFnZ2FibGUoZHJhZ2dhYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0RWRpdGFibGUoZWRpdGFibGU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRNYXAobWFwOiBHb29nbGVNYXApOiB2b2lkO1xuICBzZXRPcHRpb25zKG9wdGlvbnM6IENpcmNsZU9wdGlvbnMpOiB2b2lkO1xuICBzZXRSYWRpdXMocmFkaXVzOiBudW1iZXIpOiB2b2lkO1xuICBzZXRWaXNpYmxlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENpcmNsZU9wdGlvbnMge1xuICBjZW50ZXI/OiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsO1xuICBjbGlja2FibGU/OiBib29sZWFuO1xuICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG4gIGZpbGxDb2xvcj86IHN0cmluZztcbiAgZmlsbE9wYWNpdHk/OiBudW1iZXI7XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgcmFkaXVzPzogbnVtYmVyO1xuICBzdHJva2VDb2xvcj86IHN0cmluZztcbiAgc3Ryb2tlT3BhY2l0eT86IG51bWJlcjtcbiAgc3Ryb2tlUG9zaXRpb24/OiAnQ0VOVEVSJyB8ICdJTlNJREUnIHwgJ09VVFNJREUnO1xuICBzdHJva2VXZWlnaHQ/OiBudW1iZXI7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjdGFuZ2xlIGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgZ2V0Qm91bmRzKCk6IExhdExuZ0JvdW5kcztcbiAgZ2V0RHJhZ2dhYmxlKCk6IGJvb2xlYW47XG4gIGdldEVkaXRhYmxlKCk6IGJvb2xlYW47XG4gIGdldE1hcCgpOiBHb29nbGVNYXA7XG4gIGdldFZpc2libGUoKTogYm9vbGVhbjtcbiAgc2V0Qm91bmRzKGJvdW5kczogTGF0TG5nQm91bmRzIHwgTGF0TG5nQm91bmRzTGl0ZXJhbCk6IHZvaWQ7XG4gIHNldERyYWdnYWJsZShkcmFnZ2FibGU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRFZGl0YWJsZShlZGl0YWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG4gIHNldE9wdGlvbnMob3B0aW9uczogUmVjdGFuZ2xlT3B0aW9ucyk6IHZvaWQ7XG4gIHNldFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjdGFuZ2xlT3B0aW9ucyB7XG4gIGJvdW5kcz86IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWw7XG4gIGNsaWNrYWJsZT86IGJvb2xlYW47XG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gIGVkaXRhYmxlPzogYm9vbGVhbjtcbiAgZmlsbENvbG9yPzogc3RyaW5nO1xuICBmaWxsT3BhY2l0eT86IG51bWJlcjtcbiAgbWFwPzogR29vZ2xlTWFwO1xuICBzdHJva2VDb2xvcj86IHN0cmluZztcbiAgc3Ryb2tlT3BhY2l0eT86IG51bWJlcjtcbiAgc3Ryb2tlUG9zaXRpb24/OiAnQ0VOVEVSJyB8ICdJTlNJREUnIHwgJ09VVFNJREUnO1xuICBzdHJva2VXZWlnaHQ/OiBudW1iZXI7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF0TG5nQm91bmRzIHtcbiAgY29udGFpbnMobGF0TG5nOiBMYXRMbmcpOiBib29sZWFuO1xuICBlcXVhbHMob3RoZXI6IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWwpOiBib29sZWFuO1xuICBleHRlbmQocG9pbnQ6IExhdExuZyB8IExhdExuZ0xpdGVyYWwpOiB2b2lkO1xuICBnZXRDZW50ZXIoKTogTGF0TG5nO1xuICBnZXROb3J0aEVhc3QoKTogTGF0TG5nO1xuICBnZXRTb3V0aFdlc3QoKTogTGF0TG5nO1xuICBpbnRlcnNlY3RzKG90aGVyOiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsKTogYm9vbGVhbjtcbiAgaXNFbXB0eSgpOiBib29sZWFuO1xuICB0b0pTT04oKTogTGF0TG5nQm91bmRzTGl0ZXJhbDtcbiAgdG9TcGFuKCk6IExhdExuZztcbiAgdG9TdHJpbmcoKTogc3RyaW5nO1xuICB0b1VybFZhbHVlKHByZWNpc2lvbj86IG51bWJlcik6IHN0cmluZztcbiAgdW5pb24ob3RoZXI6IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWwpOiBMYXRMbmdCb3VuZHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFkZGluZyB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIHJpZ2h0OiBudW1iZXI7XG4gIGJvdHRvbTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhdExuZ0JvdW5kc0xpdGVyYWwge1xuICBlYXN0OiBudW1iZXI7XG4gIG5vcnRoOiBudW1iZXI7XG4gIHNvdXRoOiBudW1iZXI7XG4gIHdlc3Q6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXRMbmdMaXRlcmFsIHtcbiAgbGF0OiBudW1iZXI7XG4gIGxuZzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vdXNlRXZlbnQgeyBsYXRMbmc6IExhdExuZzsgfVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcE9wdGlvbnMge1xuICBjZW50ZXI/OiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsO1xuICB6b29tPzogbnVtYmVyO1xuICBtaW5ab29tPzogbnVtYmVyO1xuICBtYXhab29tPzogbnVtYmVyO1xuICBjb250cm9sU2l6ZT86IG51bWJlcjtcbiAgZGlzYWJsZURvdWJsZUNsaWNrWm9vbT86IGJvb2xlYW47XG4gIGRpc2FibGVEZWZhdWx0VUk/OiBib29sZWFuO1xuICBzY3JvbGx3aGVlbD86IGJvb2xlYW47XG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgZHJhZ2dhYmxlPzogYm9vbGVhbjtcbiAgZHJhZ2dhYmxlQ3Vyc29yPzogc3RyaW5nO1xuICBkcmFnZ2luZ0N1cnNvcj86IHN0cmluZztcbiAga2V5Ym9hcmRTaG9ydGN1dHM/OiBib29sZWFuO1xuICBzdHlsZXM/OiBNYXBUeXBlU3R5bGVbXTtcbiAgem9vbUNvbnRyb2w/OiBib29sZWFuO1xuICB6b29tQ29udHJvbE9wdGlvbnM/OiBab29tQ29udHJvbE9wdGlvbnM7XG4gIHN0cmVldFZpZXdDb250cm9sPzogYm9vbGVhbjtcbiAgc3RyZWV0Vmlld0NvbnRyb2xPcHRpb25zPzogU3RyZWV0Vmlld0NvbnRyb2xPcHRpb25zO1xuICBzY2FsZUNvbnRyb2w/OiBib29sZWFuO1xuICBzY2FsZUNvbnRyb2xPcHRpb25zPzogU2NhbGVDb250cm9sT3B0aW9ucztcbiAgbWFwVHlwZUNvbnRyb2w/OiBib29sZWFuO1xuICBtYXBUeXBlQ29udHJvbE9wdGlvbnM/OiBNYXBUeXBlQ29udHJvbE9wdGlvbnM7XG4gIHBhbkNvbnRyb2w/OiBib29sZWFuO1xuICBwYW5Db250cm9sT3B0aW9ucz86IFBhbkNvbnRyb2xPcHRpb25zO1xuICByb3RhdGVDb250cm9sPzogYm9vbGVhbjtcbiAgcm90YXRlQ29udHJvbE9wdGlvbnM/OiBSb3RhdGVDb250cm9sT3B0aW9ucztcbiAgZnVsbHNjcmVlbkNvbnRyb2w/OiBib29sZWFuO1xuICBmdWxsc2NyZWVuQ29udHJvbE9wdGlvbnM/OiBGdWxsc2NyZWVuQ29udHJvbE9wdGlvbnM7XG4gIG1hcFR5cGVJZD86IHN0cmluZyB8IE1hcFR5cGVJZDtcbiAgY2xpY2thYmxlSWNvbnM/OiBib29sZWFuO1xuICBnZXN0dXJlSGFuZGxpbmc/OiAnY29vcGVyYXRpdmUnIHwgJ2dyZWVkeScgfCAnbm9uZScgfCAnYXV0byc7XG4gIHRpbHQ/OiBudW1iZXI7XG4gIHJlc3RyaWN0aW9uPzogTWFwUmVzdHJpY3Rpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwVHlwZVN0eWxlIHtcbiAgZWxlbWVudFR5cGU/OiAnYWxsJyB8ICdnZW9tZXRyeScgfCAnZ2VvbWV0cnkuZmlsbCcgfCAnZ2VvbWV0cnkuc3Ryb2tlJyB8ICdsYWJlbHMnIHwgJ2xhYmVscy5pY29uJyB8XG4gICAgICAnbGFiZWxzLnRleHQnIHwgJ2xhYmVscy50ZXh0LmZpbGwnIHwgJ2xhYmVscy50ZXh0LnN0cm9rZSc7XG4gIGZlYXR1cmVUeXBlPzogJ2FkbWluaXN0cmF0aXZlJyB8ICdhZG1pbmlzdHJhdGl2ZS5jb3VudHJ5JyB8ICdhZG1pbmlzdHJhdGl2ZS5sYW5kX3BhcmNlbCcgfFxuICAgICAgJ2FkbWluaXN0cmF0aXZlLmxvY2FsaXR5JyB8ICdhZG1pbmlzdHJhdGl2ZS5uZWlnaGJvcmhvb2QnIHwgJ2FkbWluaXN0cmF0aXZlLnByb3ZpbmNlJyB8ICdhbGwnIHxcbiAgICAgICdsYW5kc2NhcGUnIHwgJ2xhbmRzY2FwZS5tYW5fbWFkZScgfCAnbGFuZHNjYXBlLm5hdHVyYWwnIHwgJ2xhbmRzY2FwZS5uYXR1cmFsLmxhbmRjb3ZlcicgfFxuICAgICAgJ2xhbmRzY2FwZS5uYXR1cmFsLnRlcnJhaW4nIHwgJ3BvaScgfCAncG9pLmF0dHJhY3Rpb24nIHwgJ3BvaS5idXNpbmVzcycgfCAncG9pLmdvdmVybm1lbnQnIHxcbiAgICAgICdwb2kubWVkaWNhbCcgfCAncG9pLnBhcmsnIHwgJ3BvaS5wbGFjZV9vZl93b3JzaGlwJyB8ICdwb2kuc2Nob29sJyB8ICdwb2kuc3BvcnRzX2NvbXBsZXgnIHwgJ3JvYWQnIHxcbiAgICAgICdyb2FkLmFydGVyaWFsJyB8ICdyb2FkLmhpZ2h3YXknIHwgJ3JvYWQuaGlnaHdheS5jb250cm9sbGVkX2FjY2VzcycgfCAncm9hZC5sb2NhbCcgfCAndHJhbnNpdCcgfFxuICAgICAgJ3RyYW5zaXQubGluZScgfCAndHJhbnNpdC5zdGF0aW9uJyB8ICd0cmFuc2l0LnN0YXRpb24uYWlycG9ydCcgfCAndHJhbnNpdC5zdGF0aW9uLmJ1cycgfFxuICAgICAgJ3RyYW5zaXQuc3RhdGlvbi5yYWlsJyB8ICd3YXRlcic7XG4gIHN0eWxlcnM6IE1hcFR5cGVTdHlsZXJbXTtcbn1cblxuLyoqXG4gKiAgSWYgbW9yZSB0aGFuIG9uZSBrZXkgaXMgc3BlY2lmaWVkIGluIGEgc2luZ2xlIE1hcFR5cGVTdHlsZXIsIGFsbCBidXQgb25lIHdpbGwgYmUgaWdub3JlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXBUeXBlU3R5bGVyIHtcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGdhbW1hPzogbnVtYmVyO1xuICBodWU/OiBzdHJpbmc7XG4gIGludmVydF9saWdodG5lc3M/OiBib29sZWFuO1xuICBsaWdodG5lc3M/OiBudW1iZXI7XG4gIHNhdHVyYXRpb24/OiBudW1iZXI7XG4gIHZpc2liaWxpdHk/OiBzdHJpbmc7XG4gIHdlaWdodD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmZvV2luZG93IGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgY2xvc2UoKTogdm9pZDtcbiAgZ2V0Q29udGVudCgpOiBzdHJpbmcgfCBOb2RlO1xuICBnZXRQb3NpdGlvbigpOiBMYXRMbmc7XG4gIGdldFpJbmRleCgpOiBudW1iZXI7XG4gIG9wZW4obWFwPzogR29vZ2xlTWFwLCBhbmNob3I/OiBNVkNPYmplY3QpOiB2b2lkO1xuICBzZXRDb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IE5vZGUpOiB2b2lkO1xuICBzZXRPcHRpb25zKG9wdGlvbnM6IEluZm9XaW5kb3dPcHRpb25zKTogdm9pZDtcbiAgc2V0UG9zaXRpb24ocG9zaXRpb246IExhdExuZyB8IExhdExuZ0xpdGVyYWwpOiB2b2lkO1xuICBzZXRaSW5kZXgoekluZGV4OiBudW1iZXIpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcHNFdmVudExpc3RlbmVyIHsgcmVtb3ZlKCk6IHZvaWQ7IH1cblxuZXhwb3J0IGludGVyZmFjZSBTaXplIHtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGVxdWFscyhvdGhlcjogU2l6ZSk6IGJvb2xlYW47XG4gIHRvU3RyaW5nKCk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmZvV2luZG93T3B0aW9ucyB7XG4gIGNvbnRlbnQ/OiBzdHJpbmcgfCBOb2RlO1xuICBkaXNhYmxlQXV0b1Bhbj86IGJvb2xlYW47XG4gIG1heFdpZHRoPzogbnVtYmVyO1xuICBwaXhlbE9mZnNldD86IFNpemU7XG4gIHBvc2l0aW9uPzogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbDtcbiAgekluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50IHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIGVxdWFscyhvdGhlcjogUG9pbnQpOiBib29sZWFuO1xuICB0b1N0cmluZygpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlU3ltYm9sIHtcbiAgYW5jaG9yPzogUG9pbnQ7XG4gIGZpbGxDb2xvcj86IHN0cmluZztcbiAgZmlsbE9wYWNpdHk/OiBudW1iZXI7XG4gIGxhYmVsT3JpZ2luPzogUG9pbnQ7XG4gIHBhdGg/OiBzdHJpbmcgfCBTeW1ib2xQYXRoO1xuICByb3RhdGlvbj86IG51bWJlcjtcbiAgc2NhbGU/OiBudW1iZXI7XG4gIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICBzdHJva2VPcGFjaXR5PzogbnVtYmVyO1xuICBzdHJva2VXZWlnaHQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNvblNlcXVlbmNlIHtcbiAgZml4ZWRSb3RhdGlvbj86IGJvb2xlYW47XG4gIGljb24/OiBHb29nbGVTeW1ib2w7XG4gIG9mZnNldD86IHN0cmluZztcbiAgcmVwZWF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBTeW1ib2xQYXRoIHtcbiAgQkFDS1dBUkRfQ0xPU0VEX0FSUk9XID0gMyxcbiAgQkFDS1dBUkRfT1BFTl9BUlJPVyA9IDQsXG4gIENJUkNMRSA9IDAsXG4gIEZPUldBUkRfQ0xPU0VEX0FSUk9XID0gMSxcbiAgRk9SV0FSRF9PUEVOX0FSUk9XID0gMixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2x5bGluZU9wdGlvbnMge1xuICBjbGlja2FibGU/OiBib29sZWFuO1xuICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG4gIGdlb2Rlc2ljPzogYm9vbGVhbjtcbiAgaWNvbnM/OiBBcnJheTxJY29uU2VxdWVuY2U+O1xuICBtYXA/OiBHb29nbGVNYXA7XG4gIHBhdGg/OiBBcnJheTxMYXRMbmc+IHwgQXJyYXk8TGF0TG5nIHwgTGF0TG5nTGl0ZXJhbD47XG4gIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICBzdHJva2VPcGFjaXR5PzogbnVtYmVyO1xuICBzdHJva2VXZWlnaHQ/OiBudW1iZXI7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9seWxpbmUgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBnZXREcmFnZ2FibGUoKTogYm9vbGVhbjtcbiAgZ2V0RWRpdGFibGUoKTogYm9vbGVhbjtcbiAgZ2V0TWFwKCk6IEdvb2dsZU1hcDtcbiAgZ2V0UGF0aCgpOiBNVkNBcnJheTxMYXRMbmc+O1xuICBnZXRWaXNpYmxlKCk6IGJvb2xlYW47XG4gIHNldERyYWdnYWJsZShkcmFnZ2FibGU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRFZGl0YWJsZShlZGl0YWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG4gIHNldE9wdGlvbnMob3B0aW9uczogUG9seWxpbmVPcHRpb25zKTogdm9pZDtcbiAgc2V0UGF0aChwYXRoOiBBcnJheTxMYXRMbmcgfCBMYXRMbmdMaXRlcmFsPik6IHZvaWQ7XG4gIHNldFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQ7XG59XG5cbi8qKlxuICogUG9seU1vdXNlRXZlbnQgZ2V0cyBlbWl0dGVkIHdoZW4gdGhlIHVzZXIgdHJpZ2dlcnMgbW91c2UgZXZlbnRzIG9uIGEgcG9seWxpbmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9seU1vdXNlRXZlbnQgZXh0ZW5kcyBNb3VzZUV2ZW50IHtcbiAgZWRnZTogbnVtYmVyO1xuICBwYXRoOiBudW1iZXI7XG4gIHZlcnRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvbHlnb25PcHRpb25zIHtcbiAgY2xpY2thYmxlPzogYm9vbGVhbjtcbiAgZHJhZ2dhYmxlPzogYm9vbGVhbjtcbiAgZWRpdGFibGU/OiBib29sZWFuO1xuICBmaWxsQ29sb3I/OiBzdHJpbmc7XG4gIGZpbGxPcGFjaXR5PzogbnVtYmVyO1xuICBnZW9kZXNpYz86IGJvb2xlYW47XG4gIGljb24/OiBBcnJheTxJY29uU2VxdWVuY2U+O1xuICBtYXA/OiBHb29nbGVNYXA7XG4gIHBhdGhzPzogQXJyYXk8TGF0TG5nIHwgTGF0TG5nTGl0ZXJhbD4gfCBBcnJheTxBcnJheTxMYXRMbmcgfCBMYXRMbmdMaXRlcmFsPj47XG4gIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICBzdHJva2VPcGFjaXR5PzogbnVtYmVyO1xuICBzdHJva2VXZWlnaHQ/OiBudW1iZXI7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9seWdvbiBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGdldERyYWdnYWJsZSgpOiBib29sZWFuO1xuICBnZXRFZGl0YWJsZSgpOiBib29sZWFuO1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBnZXRQYXRoKCk6IE1WQ0FycmF5PExhdExuZz47XG4gIGdldFBhdGhzKCk6IE1WQ0FycmF5PE1WQ0FycmF5PExhdExuZz4+O1xuICBnZXRWaXNpYmxlKCk6IGJvb2xlYW47XG4gIHNldERyYWdnYWJsZShkcmFnZ2FibGU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRFZGl0YWJsZShlZGl0YWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG4gIHNldFBhdGgocGF0aDogQXJyYXk8TGF0TG5nPiB8IEFycmF5PExhdExuZyB8IExhdExuZ0xpdGVyYWw+KTogdm9pZDtcbiAgc2V0T3B0aW9ucyhvcHRpb25zOiBQb2x5Z29uT3B0aW9ucyk6IHZvaWQ7XG4gIHNldFBhdGhzKHBhdGhzOiBBcnJheTxBcnJheTxMYXRMbmcgfCBMYXRMbmdMaXRlcmFsPj4gfCBBcnJheTxMYXRMbmcgfCBMYXRMbmdMaXRlcmFsPik6IHZvaWQ7XG4gIHNldFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS21sTGF5ZXIgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBnZXREZWZhdWx0Vmlld3BvcnQoKTogTGF0TG5nQm91bmRzO1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBnZXRNZXRhZGF0YSgpOiBLbWxMYXllck1ldGFkYXRhO1xuICBnZXRTdGF0dXMoKTogS21sTGF5ZXJTdGF0dXM7XG4gIGdldFVybCgpOiBzdHJpbmc7XG4gIGdldFpJbmRleCgpOiBudW1iZXI7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG4gIHNldE9wdGlvbnMob3B0aW9uczogS21sTGF5ZXJPcHRpb25zKTogdm9pZDtcbiAgc2V0VXJsKHVybDogc3RyaW5nKTogdm9pZDtcbiAgc2V0WkluZGV4KHpJbmRleDogbnVtYmVyKTogdm9pZDtcbn1cblxuLyoqXG4gKiBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JlZmVyZW5jZT9obD1kZSNLbWxMYXllclN0YXR1c1xuICovXG5leHBvcnQgdHlwZSBLbWxMYXllclN0YXR1cyA9ICdET0NVTUVOVF9OT1RfRk9VTkQnIHxcbiAgICAnRE9DVU1FTlRfVE9PX0xBUkdFJyB8wqAnRkVUQ0hfRVJST1InIHzCoCdJTlZBTElEX0RPQ1VNRU5UJyB8ICdJTlZBTElEX1JFUVVFU1QnIHxcbiAgICAnTElNSVRTX0VYQ0VFREVEJyB8ICdPSycgfMKgJ1RJTUVEX09VVCcgfCAnVU5LTk9XTic7XG5cbi8qKlxuICogU2VlOiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2U/aGw9ZGUjS21sTGF5ZXJNZXRhZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEttbExheWVyTWV0YWRhdGEge1xuICBhdXRob3I6IEttbEF1dGhvcjtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaGFzU2NyZWVuT3ZlcmxheXM6IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgc25pcHBldDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEttbEF1dGhvciB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdXJpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS21sTGF5ZXJPcHRpb25zIHtcbiAgY2xpY2thYmxlPzogYm9vbGVhbjtcbiAgbWFwPzogR29vZ2xlTWFwO1xuICBwcmVzZXJ2ZVZpZXdwb3J0PzogYm9vbGVhbjtcbiAgc2NyZWVuT3ZlcmxheXM/OiBib29sZWFuO1xuICBzdXBwcmVzc0luZm9XaW5kb3dzPzogYm9vbGVhbjtcbiAgdXJsPzogc3RyaW5nO1xuICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS21sRmVhdHVyZURhdGEge1xuICBhdXRob3I6IEttbEF1dGhvcjtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgaW5mb1dpbmRvd0h0bWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzbmlwcGV0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS21sTW91c2VFdmVudCBleHRlbmRzIE1vdXNlRXZlbnQge1xuICBmZWF0dXJlRGF0YTogS21sRmVhdHVyZURhdGE7XG4gIHBpeGVsT2Zmc2V0OiBTaXplO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zaXRMYXllciBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGdldE1hcCgpOiBHb29nbGVNYXA7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNpdExheWVyT3B0aW9ucyB7XG4gIHZpc2libGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmljeWNsaW5nTGF5ZXIgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBzZXRNYXAobWFwOiBHb29nbGVNYXApOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpY3ljbGluZ0xheWVyT3B0aW9ucyB7XG4gIHZpc2libGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YSBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGZlYXR1cmVzOiBGZWF0dXJlW107XG4gIGFkZEdlb0pzb24oZ2VvSnNvbjogT2JqZWN0LCBvcHRpb25zPzogR2VvSnNvbk9wdGlvbnMpOiBGZWF0dXJlW107XG4gIHJlbW92ZShmZWF0dXJlOiBGZWF0dXJlKTogdm9pZDtcbiAgc2V0Q29udHJvbFBvc2l0aW9uKGNvbnRyb2xQb3NpdGlvbjogQ29udHJvbFBvc2l0aW9uKTogdm9pZDtcbiAgc2V0Q29udHJvbHMoY29udHJvbHM6IHN0cmluZ1tdKTogdm9pZDtcbiAgc2V0RHJhd2luZ01vZGUoZHJhd2luZ01vZGU6IHN0cmluZyk6IHZvaWQ7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG4gIC8qIHRzbGludDpkaXNhYmxlICovXG4gIC8qXG4gICogVHNsaW50IGNvbmZpZ3VyYXRpb24gY2hlY2stcGFyYW1ldGVycyB3aWxsIHByb21wdCBlcnJvcnMgZm9yIHRoZXNlIGxpbmVzIG9mIGNvZGUuXG4gICogaHR0cHM6Ly9wYWxhbnRpci5naXRodWIuaW8vdHNsaW50L3J1bGVzL25vLXVudXNlZC12YXJpYWJsZS9cbiAgKi9cbiAgc2V0U3R5bGUoc3R5bGU6ICgpID0+IHZvaWQpOiB2b2lkO1xuICBmb3JFYWNoKGNhbGxiYWNrOiAoZmVhdHVyZTogRmVhdHVyZSkgPT4gdm9pZCk6IHZvaWQ7XG4gIGxvYWRHZW9Kc29uKHVybDogc3RyaW5nLCBvcHRpb25zPzogR2VvSnNvbk9wdGlvbnMsIGNhbGxiYWNrPzogKGZlYXRzOiBGZWF0dXJlW10pID0+IHZvaWQpOiB2b2lkO1xuICAvKiB0c2xpbnQ6ZW5hYmxlICovXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZSBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGlkPzogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBnZW9tZXRyeTogR2VvbWV0cnk7XG4gIHByb3BlcnRpZXM6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhT3B0aW9ucyB7XG4gIGNvbnRyb2xQb3NpdGlvbj86IENvbnRyb2xQb3NpdGlvbjtcbiAgY29udHJvbHM/OiBzdHJpbmdbXTtcbiAgZHJhd2luZ01vZGU/OiBzdHJpbmc7XG4gIGZlYXR1cmVGYWN0b3J5PzogKGdlb21ldHJ5OiBHZW9tZXRyeSkgPT4gRmVhdHVyZTtcbiAgbWFwPzogR29vZ2xlTWFwO1xuICBzdHlsZT86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YU1vdXNlRXZlbnQgZXh0ZW5kcyBNb3VzZUV2ZW50IHtcbiAgZmVhdHVyZTogRmVhdHVyZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9Kc29uT3B0aW9ucyB7XG4gIGlkUHJvcGVydHlOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvbWV0cnkge1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSWRlbnRpZmllcnMgdXNlZCB0byBzcGVjaWZ5IHRoZSBwbGFjZW1lbnQgb2YgY29udHJvbHMgb24gdGhlIG1hcC4gQ29udHJvbHMgYXJlXG4gKiBwb3NpdGlvbmVkIHJlbGF0aXZlIHRvIG90aGVyIGNvbnRyb2xzIGluIHRoZSBzYW1lIGxheW91dCBwb3NpdGlvbi4gQ29udHJvbHMgdGhhdFxuICogYXJlIGFkZGVkIGZpcnN0IGFyZSBwb3NpdGlvbmVkIGNsb3NlciB0byB0aGUgZWRnZSBvZiB0aGUgbWFwLlxuICovXG5leHBvcnQgZW51bSBDb250cm9sUG9zaXRpb24ge1xuICBSSUdIVF9CT1RUT00sXG4gIFRPUF9MRUZULFxuICBUT1BfQ0VOVEVSLFxuICBUT1BfUklHSFQsXG4gIExFRlRfQ0VOVEVSLFxuICBMRUZUX1RPUCxcbiAgTEVGVF9CT1RUT00sXG4gIFJJR0hUX1RPUCxcbiAgUklHSFRfQ0VOVEVSLFxuICBCT1RUT01fUklHSFQsXG4gIEJPVFRPTV9MRUZULFxuICBCT1RUT01fQ0VOVEVSLFxufVxuXG5leHBvcnQgZW51bSBNYXBUeXBlSWQge1xuICAvKiogVGhpcyBtYXAgdHlwZSBkaXNwbGF5cyBhIHRyYW5zcGFyZW50IGxheWVyIG9mIG1ham9yIHN0cmVldHMgb24gc2F0ZWxsaXRlIGltYWdlcy4gKi9cbiAgSFlCUklELFxuICAvKiogVGhpcyBtYXAgdHlwZSBkaXNwbGF5cyBhIG5vcm1hbCBzdHJlZXQgbWFwLiAqL1xuICBST0FETUFQLFxuICAvKiogVGhpcyBtYXAgdHlwZSBkaXNwbGF5cyBzYXRlbGxpdGUgaW1hZ2VzLiAqL1xuICBTQVRFTExJVEUsXG4gIC8qKiBUaGlzIG1hcCB0eXBlIGRpc3BsYXlzIG1hcHMgd2l0aCBwaHlzaWNhbCBmZWF0dXJlcyBzdWNoIGFzIHRlcnJhaW4gYW5kIHZlZ2V0YXRpb24uICovXG4gIFRFUlJBSU4sXG59XG5cbi8qKioqKiBDb250cm9scyAqKioqKi9cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVuZGVyaW5nIG9mIHRoZSBtYXAgdHlwZSBjb250cm9sLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXBUeXBlQ29udHJvbE9wdGlvbnMge1xuICAvKiogSURzIG9mIG1hcCB0eXBlcyB0byBzaG93IGluIHRoZSBjb250cm9sLiAqL1xuICBtYXBUeXBlSWRzPzogKE1hcFR5cGVJZCB8IHN0cmluZylbXTtcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGlkLiBVc2VkIHRvIHNwZWNpZnkgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250cm9sIG9uIHRoZSBtYXAuXG4gICAqIFRoZSBkZWZhdWx0IHBvc2l0aW9uIGlzIFRPUF9SSUdIVC5cbiAgICovXG4gIHBvc2l0aW9uPzogQ29udHJvbFBvc2l0aW9uO1xuICAvKiogU3R5bGUgaWQuIFVzZWQgdG8gc2VsZWN0IHdoYXQgc3R5bGUgb2YgbWFwIHR5cGUgY29udHJvbCB0byBkaXNwbGF5LiAqL1xuICBzdHlsZT86IE1hcFR5cGVDb250cm9sU3R5bGU7XG59XG5cbmV4cG9ydCBlbnVtIE1hcFR5cGVDb250cm9sU3R5bGUge1xuICBERUZBVUxULFxuICBEUk9QRE9XTl9NRU5VLFxuICBIT1JJWk9OVEFMX0JBUixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPdmVydmlld01hcENvbnRyb2xPcHRpb25zIHtcbiAgb3BlbmVkPzogYm9vbGVhbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZW5kZXJpbmcgb2YgdGhlIHBhbiBjb250cm9sLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYW5Db250cm9sT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBpZC4gVXNlZCB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbCBvbiB0aGUgbWFwLlxuICAgKiBUaGUgZGVmYXVsdCBwb3NpdGlvbiBpcyBUT1BfTEVGVC5cbiAgICovXG4gIHBvc2l0aW9uPzogQ29udHJvbFBvc2l0aW9uO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIHJlbmRlcmluZyBvZiB0aGUgcm90YXRlIGNvbnRyb2wuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvdGF0ZUNvbnRyb2xPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGlkLiBVc2VkIHRvIHNwZWNpZnkgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250cm9sIG9uIHRoZSBtYXAuXG4gICAqIFRoZSBkZWZhdWx0IHBvc2l0aW9uIGlzIFRPUF9MRUZULlxuICAgKi9cbiAgcG9zaXRpb24/OiBDb250cm9sUG9zaXRpb247XG59XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVuZGVyaW5nIG9mIHRoZSBzY2FsZSBjb250cm9sLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2FsZUNvbnRyb2xPcHRpb25zIHtcbiAgLyoqIFN0eWxlIGlkLiBVc2VkIHRvIHNlbGVjdCB3aGF0IHN0eWxlIG9mIHNjYWxlIGNvbnRyb2wgdG8gZGlzcGxheS4gKi9cbiAgc3R5bGU/OiBTY2FsZUNvbnRyb2xTdHlsZTtcbn1cblxuZXhwb3J0IGVudW0gU2NhbGVDb250cm9sU3R5bGUge1xuICBERUZBVUxULFxufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIHJlbmRlcmluZyBvZiB0aGUgU3RyZWV0IFZpZXcgcGVnbWFuIGNvbnRyb2wgb24gdGhlIG1hcC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyZWV0Vmlld0NvbnRyb2xPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGlkLiBVc2VkIHRvIHNwZWNpZnkgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250cm9sIG9uIHRoZSBtYXAuIFRoZVxuICAgKiBkZWZhdWx0IHBvc2l0aW9uIGlzIGVtYmVkZGVkIHdpdGhpbiB0aGUgbmF2aWdhdGlvbiAoem9vbSBhbmQgcGFuKSBjb250cm9scy5cbiAgICogSWYgdGhpcyBwb3NpdGlvbiBpcyBlbXB0eSBvciB0aGUgc2FtZSBhcyB0aGF0IHNwZWNpZmllZCBpbiB0aGVcbiAgICogem9vbUNvbnRyb2xPcHRpb25zIG9yIHBhbkNvbnRyb2xPcHRpb25zLCB0aGUgU3RyZWV0IFZpZXcgY29udHJvbCB3aWxsIGJlXG4gICAqIGRpc3BsYXllZCBhcyBwYXJ0IG9mIHRoZSBuYXZpZ2F0aW9uIGNvbnRyb2xzLiBPdGhlcndpc2UsIGl0IHdpbGwgYmUgZGlzcGxheWVkXG4gICAqIHNlcGFyYXRlbHkuXG4gICAqL1xuICBwb3NpdGlvbj86IENvbnRyb2xQb3NpdGlvbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZW5kZXJpbmcgb2YgdGhlIHpvb20gY29udHJvbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWm9vbUNvbnRyb2xPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGlkLiBVc2VkIHRvIHNwZWNpZnkgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250cm9sIG9uIHRoZSBtYXAuXG4gICAqIFRoZSBkZWZhdWx0IHBvc2l0aW9uIGlzIFRPUF9MRUZULlxuICAgKi9cbiAgcG9zaXRpb24/OiBDb250cm9sUG9zaXRpb247XG4gIHN0eWxlPzogWm9vbUNvbnRyb2xTdHlsZTtcbn1cblxuZXhwb3J0IGVudW0gWm9vbUNvbnRyb2xTdHlsZSB7XG4gIERFRkFVTFQsXG4gIExBUkdFLFxuICBTTUFMTCxcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZW5kZXJpbmcgb2YgdGhlIGZ1bGxzY3JlZW4gY29udHJvbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbHNjcmVlbkNvbnRyb2xPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGlkLiBVc2VkIHRvIHNwZWNpZnkgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250cm9sIG9uIHRoZSBtYXAuXG4gICAqIFRoZSBkZWZhdWx0IHBvc2l0aW9uIGlzIFJJR0hUX1RPUC5cbiAgICovXG4gIHBvc2l0aW9uPzogQ29udHJvbFBvc2l0aW9uO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIHJlc3RyaWN0aW5nIHRoZSBib3VuZHMgb2YgdGhlIG1hcC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFwUmVzdHJpY3Rpb24ge1xuICBsYXRMbmdCb3VuZHM6IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWw7XG4gIHN0cmljdEJvdW5kcz86IGJvb2xlYW47XG59XG4iXX0=
export var GeocoderLocationType;
(function (GeocoderLocationType) {
GeocoderLocationType["APPROXIMATE"] = "APPROXIMATE";
GeocoderLocationType["GEOMETRIC_CENTER"] = "GEOMETRIC_CENTER";
GeocoderLocationType["RANGE_INTERPOLATED"] = "RANGE_INTERPOLATED";
GeocoderLocationType["ROOFTOP"] = "ROOFTOP";
})(GeocoderLocationType || (GeocoderLocationType = {}));
export var GeocoderStatus;
(function (GeocoderStatus) {
GeocoderStatus["ERROR"] = "ERROR";
GeocoderStatus["INVALID_REQUEST"] = "INVALID_REQUEST";
GeocoderStatus["OK"] = "OK";
GeocoderStatus["OVER_QUERY_LIMIT"] = "OVER_QUERY_LIMIT";
GeocoderStatus["REQUEST_DENIED"] = "REQUEST_DENIED";
GeocoderStatus["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
GeocoderStatus["ZERO_RESULTS"] = "ZERO_RESULTS";
})(GeocoderStatus || (GeocoderStatus = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtdHlwZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9nb29nbGUtbWFwcy10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBSSxNQUFXLENBQUM7QUFrVHZCLE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIsNkVBQXlCLENBQUE7SUFDekIseUVBQXVCLENBQUE7SUFDdkIsK0NBQVUsQ0FBQTtJQUNWLDJFQUF3QixDQUFBO0lBQ3hCLHVFQUFzQixDQUFBO0FBQ3hCLENBQUMsRUFOVyxVQUFVLEtBQVYsVUFBVSxRQU1yQjtBQXNNRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFOLElBQVksZUFhWDtBQWJELFdBQVksZUFBZTtJQUN6QixxRUFBWSxDQUFBO0lBQ1osNkRBQVEsQ0FBQTtJQUNSLGlFQUFVLENBQUE7SUFDViwrREFBUyxDQUFBO0lBQ1QsbUVBQVcsQ0FBQTtJQUNYLDZEQUFRLENBQUE7SUFDUixtRUFBVyxDQUFBO0lBQ1gsK0RBQVMsQ0FBQTtJQUNULHFFQUFZLENBQUE7SUFDWixxRUFBWSxDQUFBO0lBQ1osb0VBQVcsQ0FBQTtJQUNYLHdFQUFhLENBQUE7QUFDZixDQUFDLEVBYlcsZUFBZSxLQUFmLGVBQWUsUUFhMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQVNYO0FBVEQsV0FBWSxTQUFTO0lBQ25CLHVGQUF1RjtJQUN2Riw2Q0FBTSxDQUFBO0lBQ04sa0RBQWtEO0lBQ2xELCtDQUFPLENBQUE7SUFDUCwrQ0FBK0M7SUFDL0MsbURBQVMsQ0FBQTtJQUNULHlGQUF5RjtJQUN6RiwrQ0FBTyxDQUFBO0FBQ1QsQ0FBQyxFQVRXLFNBQVMsS0FBVCxTQUFTLFFBU3BCO0FBZ0JELE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0IsbUVBQVcsQ0FBQTtJQUNYLCtFQUFpQixDQUFBO0lBQ2pCLGlGQUFrQixDQUFBO0FBQ3BCLENBQUMsRUFKVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSTlCO0FBOEJELE1BQU0sQ0FBTixJQUFZLGlCQUVYO0FBRkQsV0FBWSxpQkFBaUI7SUFDM0IsK0RBQU8sQ0FBQTtBQUNULENBQUMsRUFGVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRTVCO0FBeUJELE1BQU0sQ0FBTixJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsNkRBQU8sQ0FBQTtJQUNQLHlEQUFLLENBQUE7SUFDTCx5REFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUpXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFJM0I7QUEyQ0QsTUFBTSxDQUFOLElBQVksb0JBS1g7QUFMRCxXQUFZLG9CQUFvQjtJQUM5QixtREFBMkIsQ0FBQTtJQUMzQiw2REFBcUMsQ0FBQTtJQUNyQyxpRUFBeUMsQ0FBQTtJQUN6QywyQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUsvQjtBQXFCRCxNQUFNLENBQU4sSUFBWSxjQVFYO0FBUkQsV0FBWSxjQUFjO0lBQ3hCLGlDQUFlLENBQUE7SUFDZixxREFBbUMsQ0FBQTtJQUNuQywyQkFBUyxDQUFBO0lBQ1QsdURBQXFDLENBQUE7SUFDckMsbURBQWlDLENBQUE7SUFDakMsaURBQStCLENBQUE7SUFDL0IsK0NBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQVJXLGNBQWMsS0FBZCxjQUFjLFFBUXpCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHZhciBnb29nbGU6IGFueTtcblxuZXhwb3J0IGludGVyZmFjZSBNVkNPYmplY3Qge1xuICBhZGRMaXN0ZW5lcihldmVudE5hbWU6IHN0cmluZywgaGFuZGxlcjogRnVuY3Rpb24pOiBNYXBzRXZlbnRMaXN0ZW5lcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNVkNBcnJheTxUPiBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGNsZWFyKCk6IHZvaWQ7XG4gIGdldEFycmF5KCk6IEFycmF5PFQ+O1xuICBnZXRBdChpOiBudW1iZXIpOiBUO1xuICBnZXRMZW5ndGgoKTogbnVtYmVyO1xuICBpbnNlcnRBdChpOiBudW1iZXIsIGVsZW06IFQpOiB2b2lkO1xuICBwb3AoKTogVDtcbiAgcHVzaChlbGVtOiBUKTogbnVtYmVyO1xuICByZW1vdmVBdChpOiBudW1iZXIpOiBUO1xuICBzZXRBdChpOiBudW1iZXIsIGVsZW06IFQpOiB2b2lkO1xuICAvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuICAvKlxuICAqIFRzbGludCBjb25maWd1cmF0aW9uIGNoZWNrLXBhcmFtZXRlcnMgd2lsbCBwcm9tcHQgZXJyb3JzIGZvciB0aGVzZSBsaW5lcyBvZiBjb2RlLlxuICAqIGh0dHBzOi8vcGFsYW50aXIuZ2l0aHViLmlvL3RzbGludC9ydWxlcy9uby11bnVzZWQtdmFyaWFibGUvXG4gICovXG4gIGZvckVhY2goY2FsbGJhY2s6IChlbGVtOiBULCBpOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkO1xuICAvKiB0c2xpbnQ6ZW5hYmxlICovXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlTWFwIGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgZGF0YT86IERhdGE7XG4gIHBhblRvKGxhdExuZzogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbCk6IHZvaWQ7XG4gIHBhbkJ5KHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZDtcbiAgc2V0Wm9vbSh6b29tOiBudW1iZXIpOiB2b2lkO1xuICBnZXRDZW50ZXIoKTogTGF0TG5nO1xuICBzZXRDZW50ZXIobGF0TG5nOiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsKTogdm9pZDtcbiAgZ2V0Qm91bmRzKCk6IExhdExuZ0JvdW5kcztcbiAgZ2V0TWFwVHlwZUlkKCk6IE1hcFR5cGVJZDtcbiAgZ2V0Wm9vbSgpOiBudW1iZXI7XG4gIHNldE9wdGlvbnMob3B0aW9uczogTWFwT3B0aW9ucyk6IHZvaWQ7XG4gIHBhblRvQm91bmRzKGxhdExuZ0JvdW5kczogTGF0TG5nQm91bmRzIHwgTGF0TG5nQm91bmRzTGl0ZXJhbCwgcGFkZGluZz86IG51bWJlciB8IFBhZGRpbmcpOiB2b2lkO1xuICBmaXRCb3VuZHMoYm91bmRzOiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsLCBwYWRkaW5nPzogbnVtYmVyIHwgUGFkZGluZyk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF0TG5nIHtcbiAgbGF0KCk6IG51bWJlcjtcbiAgbG5nKCk6IG51bWJlcjtcbiAgdG9KU09OKCk6IGFueTtcbiAgdG9TdHJpbmcoKTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcmtlciBleHRlbmRzIE1WQ09iamVjdCB7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG4gIHNldFBvc2l0aW9uKGxhdExuZzogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbCk6IHZvaWQ7XG4gIHNldFRpdGxlKHRpdGxlOiBzdHJpbmcpOiB2b2lkO1xuICBzZXRMYWJlbChsYWJlbDogc3RyaW5nIHwgTWFya2VyTGFiZWwpOiB2b2lkO1xuICBzZXREcmFnZ2FibGUoZHJhZ2dhYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0SWNvbihpY29uOiBzdHJpbmcpOiB2b2lkO1xuICBzZXRPcGFjaXR5KG9wYWNpdHk6IG51bWJlcik6IHZvaWQ7XG4gIHNldFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldFpJbmRleCh6SW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIHNldEFuaW1hdGlvbihhbmltYXRpb246IGFueSk6IHZvaWQ7XG4gIGdldExhYmVsKCk6IE1hcmtlckxhYmVsO1xuICBzZXRDbGlja2FibGUoY2xpY2thYmxlOiBib29sZWFuKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXJrZXJPcHRpb25zIHtcbiAgcG9zaXRpb246IExhdExuZyB8IExhdExuZ0xpdGVyYWw7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBtYXA/OiBHb29nbGVNYXA7XG4gIGxhYmVsPzogc3RyaW5nIHwgTWFya2VyTGFiZWw7XG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7XG4gIG9wYWNpdHk/OiBudW1iZXI7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICB6SW5kZXg/OiBudW1iZXI7XG4gIGNsaWNrYWJsZTogYm9vbGVhbjtcbiAgYW5pbWF0aW9uPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcmtlckxhYmVsIHtcbiAgY29sb3I6IHN0cmluZztcbiAgZm9udEZhbWlseTogc3RyaW5nO1xuICBmb250U2l6ZTogc3RyaW5nO1xuICBmb250V2VpZ2h0OiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaXJjbGUgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBnZXRCb3VuZHMoKTogTGF0TG5nQm91bmRzO1xuICBnZXRDZW50ZXIoKTogTGF0TG5nO1xuICBnZXREcmFnZ2FibGUoKTogYm9vbGVhbjtcbiAgZ2V0RWRpdGFibGUoKTogYm9vbGVhbjtcbiAgZ2V0TWFwKCk6IEdvb2dsZU1hcDtcbiAgZ2V0UmFkaXVzKCk6IG51bWJlcjtcbiAgZ2V0VmlzaWJsZSgpOiBib29sZWFuO1xuICBzZXRDZW50ZXIoY2VudGVyOiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsKTogdm9pZDtcbiAgc2V0RHJhZ2dhYmxlKGRyYWdnYWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldEVkaXRhYmxlKGVkaXRhYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0TWFwKG1hcDogR29vZ2xlTWFwKTogdm9pZDtcbiAgc2V0T3B0aW9ucyhvcHRpb25zOiBDaXJjbGVPcHRpb25zKTogdm9pZDtcbiAgc2V0UmFkaXVzKHJhZGl1czogbnVtYmVyKTogdm9pZDtcbiAgc2V0VmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaXJjbGVPcHRpb25zIHtcbiAgY2VudGVyPzogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbDtcbiAgY2xpY2thYmxlPzogYm9vbGVhbjtcbiAgZHJhZ2dhYmxlPzogYm9vbGVhbjtcbiAgZWRpdGFibGU/OiBib29sZWFuO1xuICBmaWxsQ29sb3I/OiBzdHJpbmc7XG4gIGZpbGxPcGFjaXR5PzogbnVtYmVyO1xuICBtYXA/OiBHb29nbGVNYXA7XG4gIHJhZGl1cz86IG51bWJlcjtcbiAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gIHN0cm9rZU9wYWNpdHk/OiBudW1iZXI7XG4gIHN0cm9rZVBvc2l0aW9uPzogJ0NFTlRFUicgfCAnSU5TSURFJyB8ICdPVVRTSURFJztcbiAgc3Ryb2tlV2VpZ2h0PzogbnVtYmVyO1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgekluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY3RhbmdsZSBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGdldEJvdW5kcygpOiBMYXRMbmdCb3VuZHM7XG4gIGdldERyYWdnYWJsZSgpOiBib29sZWFuO1xuICBnZXRFZGl0YWJsZSgpOiBib29sZWFuO1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBnZXRWaXNpYmxlKCk6IGJvb2xlYW47XG4gIHNldEJvdW5kcyhib3VuZHM6IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWwpOiB2b2lkO1xuICBzZXREcmFnZ2FibGUoZHJhZ2dhYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0RWRpdGFibGUoZWRpdGFibGU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRNYXAobWFwOiBHb29nbGVNYXApOiB2b2lkO1xuICBzZXRPcHRpb25zKG9wdGlvbnM6IFJlY3RhbmdsZU9wdGlvbnMpOiB2b2lkO1xuICBzZXRWaXNpYmxlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY3RhbmdsZU9wdGlvbnMge1xuICBib3VuZHM/OiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsO1xuICBjbGlja2FibGU/OiBib29sZWFuO1xuICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG4gIGZpbGxDb2xvcj86IHN0cmluZztcbiAgZmlsbE9wYWNpdHk/OiBudW1iZXI7XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gIHN0cm9rZU9wYWNpdHk/OiBudW1iZXI7XG4gIHN0cm9rZVBvc2l0aW9uPzogJ0NFTlRFUicgfCAnSU5TSURFJyB8ICdPVVRTSURFJztcbiAgc3Ryb2tlV2VpZ2h0PzogbnVtYmVyO1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgekluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhdExuZ0JvdW5kcyB7XG4gIGNvbnRhaW5zKGxhdExuZzogTGF0TG5nKTogYm9vbGVhbjtcbiAgZXF1YWxzKG90aGVyOiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsKTogYm9vbGVhbjtcbiAgZXh0ZW5kKHBvaW50OiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsKTogdm9pZDtcbiAgZ2V0Q2VudGVyKCk6IExhdExuZztcbiAgZ2V0Tm9ydGhFYXN0KCk6IExhdExuZztcbiAgZ2V0U291dGhXZXN0KCk6IExhdExuZztcbiAgaW50ZXJzZWN0cyhvdGhlcjogTGF0TG5nQm91bmRzIHwgTGF0TG5nQm91bmRzTGl0ZXJhbCk6IGJvb2xlYW47XG4gIGlzRW1wdHkoKTogYm9vbGVhbjtcbiAgdG9KU09OKCk6IExhdExuZ0JvdW5kc0xpdGVyYWw7XG4gIHRvU3BhbigpOiBMYXRMbmc7XG4gIHRvU3RyaW5nKCk6IHN0cmluZztcbiAgdG9VcmxWYWx1ZShwcmVjaXNpb24/OiBudW1iZXIpOiBzdHJpbmc7XG4gIHVuaW9uKG90aGVyOiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsKTogTGF0TG5nQm91bmRzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZGRpbmcge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICByaWdodDogbnVtYmVyO1xuICBib3R0b206IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXRMbmdCb3VuZHNMaXRlcmFsIHtcbiAgZWFzdDogbnVtYmVyO1xuICBub3J0aDogbnVtYmVyO1xuICBzb3V0aDogbnVtYmVyO1xuICB3ZXN0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF0TG5nTGl0ZXJhbCB7XG4gIGxhdDogbnVtYmVyO1xuICBsbmc6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb3VzZUV2ZW50IHsgbGF0TG5nOiBMYXRMbmc7IH1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBPcHRpb25zIHtcbiAgY2VudGVyPzogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbDtcbiAgem9vbT86IG51bWJlcjtcbiAgbWluWm9vbT86IG51bWJlcjtcbiAgbWF4Wm9vbT86IG51bWJlcjtcbiAgY29udHJvbFNpemU/OiBudW1iZXI7XG4gIGRpc2FibGVEb3VibGVDbGlja1pvb20/OiBib29sZWFuO1xuICBkaXNhYmxlRGVmYXVsdFVJPzogYm9vbGVhbjtcbiAgc2Nyb2xsd2hlZWw/OiBib29sZWFuO1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gIGRyYWdnYWJsZUN1cnNvcj86IHN0cmluZztcbiAgZHJhZ2dpbmdDdXJzb3I/OiBzdHJpbmc7XG4gIGtleWJvYXJkU2hvcnRjdXRzPzogYm9vbGVhbjtcbiAgc3R5bGVzPzogTWFwVHlwZVN0eWxlW107XG4gIHpvb21Db250cm9sPzogYm9vbGVhbjtcbiAgem9vbUNvbnRyb2xPcHRpb25zPzogWm9vbUNvbnRyb2xPcHRpb25zO1xuICBzdHJlZXRWaWV3Q29udHJvbD86IGJvb2xlYW47XG4gIHN0cmVldFZpZXdDb250cm9sT3B0aW9ucz86IFN0cmVldFZpZXdDb250cm9sT3B0aW9ucztcbiAgc2NhbGVDb250cm9sPzogYm9vbGVhbjtcbiAgc2NhbGVDb250cm9sT3B0aW9ucz86IFNjYWxlQ29udHJvbE9wdGlvbnM7XG4gIG1hcFR5cGVDb250cm9sPzogYm9vbGVhbjtcbiAgbWFwVHlwZUNvbnRyb2xPcHRpb25zPzogTWFwVHlwZUNvbnRyb2xPcHRpb25zO1xuICBwYW5Db250cm9sPzogYm9vbGVhbjtcbiAgcGFuQ29udHJvbE9wdGlvbnM/OiBQYW5Db250cm9sT3B0aW9ucztcbiAgcm90YXRlQ29udHJvbD86IGJvb2xlYW47XG4gIHJvdGF0ZUNvbnRyb2xPcHRpb25zPzogUm90YXRlQ29udHJvbE9wdGlvbnM7XG4gIGZ1bGxzY3JlZW5Db250cm9sPzogYm9vbGVhbjtcbiAgZnVsbHNjcmVlbkNvbnRyb2xPcHRpb25zPzogRnVsbHNjcmVlbkNvbnRyb2xPcHRpb25zO1xuICBtYXBUeXBlSWQ/OiBzdHJpbmcgfCBNYXBUeXBlSWQ7XG4gIGNsaWNrYWJsZUljb25zPzogYm9vbGVhbjtcbiAgZ2VzdHVyZUhhbmRsaW5nPzogJ2Nvb3BlcmF0aXZlJyB8ICdncmVlZHknIHwgJ25vbmUnIHwgJ2F1dG8nO1xuICB0aWx0PzogbnVtYmVyO1xuICByZXN0cmljdGlvbj86IE1hcFJlc3RyaWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcFR5cGVTdHlsZSB7XG4gIGVsZW1lbnRUeXBlPzogJ2FsbCcgfCAnZ2VvbWV0cnknIHwgJ2dlb21ldHJ5LmZpbGwnIHwgJ2dlb21ldHJ5LnN0cm9rZScgfCAnbGFiZWxzJyB8ICdsYWJlbHMuaWNvbicgfFxuICAnbGFiZWxzLnRleHQnIHwgJ2xhYmVscy50ZXh0LmZpbGwnIHwgJ2xhYmVscy50ZXh0LnN0cm9rZSc7XG4gIGZlYXR1cmVUeXBlPzogJ2FkbWluaXN0cmF0aXZlJyB8ICdhZG1pbmlzdHJhdGl2ZS5jb3VudHJ5JyB8ICdhZG1pbmlzdHJhdGl2ZS5sYW5kX3BhcmNlbCcgfFxuICAnYWRtaW5pc3RyYXRpdmUubG9jYWxpdHknIHwgJ2FkbWluaXN0cmF0aXZlLm5laWdoYm9yaG9vZCcgfCAnYWRtaW5pc3RyYXRpdmUucHJvdmluY2UnIHwgJ2FsbCcgfFxuICAnbGFuZHNjYXBlJyB8ICdsYW5kc2NhcGUubWFuX21hZGUnIHwgJ2xhbmRzY2FwZS5uYXR1cmFsJyB8ICdsYW5kc2NhcGUubmF0dXJhbC5sYW5kY292ZXInIHxcbiAgJ2xhbmRzY2FwZS5uYXR1cmFsLnRlcnJhaW4nIHwgJ3BvaScgfCAncG9pLmF0dHJhY3Rpb24nIHwgJ3BvaS5idXNpbmVzcycgfCAncG9pLmdvdmVybm1lbnQnIHxcbiAgJ3BvaS5tZWRpY2FsJyB8ICdwb2kucGFyaycgfCAncG9pLnBsYWNlX29mX3dvcnNoaXAnIHwgJ3BvaS5zY2hvb2wnIHwgJ3BvaS5zcG9ydHNfY29tcGxleCcgfCAncm9hZCcgfFxuICAncm9hZC5hcnRlcmlhbCcgfCAncm9hZC5oaWdod2F5JyB8ICdyb2FkLmhpZ2h3YXkuY29udHJvbGxlZF9hY2Nlc3MnIHwgJ3JvYWQubG9jYWwnIHwgJ3RyYW5zaXQnIHxcbiAgJ3RyYW5zaXQubGluZScgfCAndHJhbnNpdC5zdGF0aW9uJyB8ICd0cmFuc2l0LnN0YXRpb24uYWlycG9ydCcgfCAndHJhbnNpdC5zdGF0aW9uLmJ1cycgfFxuICAndHJhbnNpdC5zdGF0aW9uLnJhaWwnIHwgJ3dhdGVyJztcbiAgc3R5bGVyczogTWFwVHlwZVN0eWxlcltdO1xufVxuXG4vKipcbiAqICBJZiBtb3JlIHRoYW4gb25lIGtleSBpcyBzcGVjaWZpZWQgaW4gYSBzaW5nbGUgTWFwVHlwZVN0eWxlciwgYWxsIGJ1dCBvbmUgd2lsbCBiZSBpZ25vcmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hcFR5cGVTdHlsZXIge1xuICBjb2xvcj86IHN0cmluZztcbiAgZ2FtbWE/OiBudW1iZXI7XG4gIGh1ZT86IHN0cmluZztcbiAgaW52ZXJ0X2xpZ2h0bmVzcz86IGJvb2xlYW47XG4gIGxpZ2h0bmVzcz86IG51bWJlcjtcbiAgc2F0dXJhdGlvbj86IG51bWJlcjtcbiAgdmlzaWJpbGl0eT86IHN0cmluZztcbiAgd2VpZ2h0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZm9XaW5kb3cgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBjbG9zZSgpOiB2b2lkO1xuICBnZXRDb250ZW50KCk6IHN0cmluZyB8IE5vZGU7XG4gIGdldFBvc2l0aW9uKCk6IExhdExuZztcbiAgZ2V0WkluZGV4KCk6IG51bWJlcjtcbiAgb3BlbihtYXA/OiBHb29nbGVNYXAsIGFuY2hvcj86IE1WQ09iamVjdCk6IHZvaWQ7XG4gIHNldENvbnRlbnQoY29udGVudDogc3RyaW5nIHwgTm9kZSk6IHZvaWQ7XG4gIHNldE9wdGlvbnMob3B0aW9uczogSW5mb1dpbmRvd09wdGlvbnMpOiB2b2lkO1xuICBzZXRQb3NpdGlvbihwb3NpdGlvbjogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbCk6IHZvaWQ7XG4gIHNldFpJbmRleCh6SW5kZXg6IG51bWJlcik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwc0V2ZW50TGlzdGVuZXIgeyByZW1vdmUoKTogdm9pZDsgfVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpemUge1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgZXF1YWxzKG90aGVyOiBTaXplKTogYm9vbGVhbjtcbiAgdG9TdHJpbmcoKTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZm9XaW5kb3dPcHRpb25zIHtcbiAgY29udGVudD86IHN0cmluZyB8IE5vZGU7XG4gIGRpc2FibGVBdXRvUGFuPzogYm9vbGVhbjtcbiAgbWF4V2lkdGg/OiBudW1iZXI7XG4gIHBpeGVsT2Zmc2V0PzogU2l6ZTtcbiAgcG9zaXRpb24/OiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsO1xuICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnQge1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgZXF1YWxzKG90aGVyOiBQb2ludCk6IGJvb2xlYW47XG4gIHRvU3RyaW5nKCk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVTeW1ib2wge1xuICBhbmNob3I/OiBQb2ludDtcbiAgZmlsbENvbG9yPzogc3RyaW5nO1xuICBmaWxsT3BhY2l0eT86IG51bWJlcjtcbiAgbGFiZWxPcmlnaW4/OiBQb2ludDtcbiAgcGF0aD86IHN0cmluZyB8IFN5bWJvbFBhdGg7XG4gIHJvdGF0aW9uPzogbnVtYmVyO1xuICBzY2FsZT86IG51bWJlcjtcbiAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gIHN0cm9rZU9wYWNpdHk/OiBudW1iZXI7XG4gIHN0cm9rZVdlaWdodD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJY29uU2VxdWVuY2Uge1xuICBmaXhlZFJvdGF0aW9uPzogYm9vbGVhbjtcbiAgaWNvbj86IEdvb2dsZVN5bWJvbDtcbiAgb2Zmc2V0Pzogc3RyaW5nO1xuICByZXBlYXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFN5bWJvbFBhdGgge1xuICBCQUNLV0FSRF9DTE9TRURfQVJST1cgPSAzLFxuICBCQUNLV0FSRF9PUEVOX0FSUk9XID0gNCxcbiAgQ0lSQ0xFID0gMCxcbiAgRk9SV0FSRF9DTE9TRURfQVJST1cgPSAxLFxuICBGT1JXQVJEX09QRU5fQVJST1cgPSAyLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvbHlsaW5lT3B0aW9ucyB7XG4gIGNsaWNrYWJsZT86IGJvb2xlYW47XG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gIGVkaXRhYmxlPzogYm9vbGVhbjtcbiAgZ2VvZGVzaWM/OiBib29sZWFuO1xuICBpY29ucz86IEFycmF5PEljb25TZXF1ZW5jZT47XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgcGF0aD86IEFycmF5PExhdExuZz4gfCBBcnJheTxMYXRMbmcgfCBMYXRMbmdMaXRlcmFsPjtcbiAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gIHN0cm9rZU9wYWNpdHk/OiBudW1iZXI7XG4gIHN0cm9rZVdlaWdodD86IG51bWJlcjtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIHpJbmRleD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2x5bGluZSBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGdldERyYWdnYWJsZSgpOiBib29sZWFuO1xuICBnZXRFZGl0YWJsZSgpOiBib29sZWFuO1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBnZXRQYXRoKCk6IE1WQ0FycmF5PExhdExuZz47XG4gIGdldFZpc2libGUoKTogYm9vbGVhbjtcbiAgc2V0RHJhZ2dhYmxlKGRyYWdnYWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldEVkaXRhYmxlKGVkaXRhYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0TWFwKG1hcDogR29vZ2xlTWFwKTogdm9pZDtcbiAgc2V0T3B0aW9ucyhvcHRpb25zOiBQb2x5bGluZU9wdGlvbnMpOiB2b2lkO1xuICBzZXRQYXRoKHBhdGg6IEFycmF5PExhdExuZyB8IExhdExuZ0xpdGVyYWw+KTogdm9pZDtcbiAgc2V0VmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZDtcbn1cblxuLyoqXG4gKiBQb2x5TW91c2VFdmVudCBnZXRzIGVtaXR0ZWQgd2hlbiB0aGUgdXNlciB0cmlnZ2VycyBtb3VzZSBldmVudHMgb24gYSBwb2x5bGluZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2x5TW91c2VFdmVudCBleHRlbmRzIE1vdXNlRXZlbnQge1xuICBlZGdlOiBudW1iZXI7XG4gIHBhdGg6IG51bWJlcjtcbiAgdmVydGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9seWdvbk9wdGlvbnMge1xuICBjbGlja2FibGU/OiBib29sZWFuO1xuICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG4gIGZpbGxDb2xvcj86IHN0cmluZztcbiAgZmlsbE9wYWNpdHk/OiBudW1iZXI7XG4gIGdlb2Rlc2ljPzogYm9vbGVhbjtcbiAgaWNvbj86IEFycmF5PEljb25TZXF1ZW5jZT47XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgcGF0aHM/OiBBcnJheTxMYXRMbmcgfCBMYXRMbmdMaXRlcmFsPiB8IEFycmF5PEFycmF5PExhdExuZyB8IExhdExuZ0xpdGVyYWw+PjtcbiAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gIHN0cm9rZU9wYWNpdHk/OiBudW1iZXI7XG4gIHN0cm9rZVdlaWdodD86IG51bWJlcjtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIHpJbmRleD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2x5Z29uIGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgZ2V0RHJhZ2dhYmxlKCk6IGJvb2xlYW47XG4gIGdldEVkaXRhYmxlKCk6IGJvb2xlYW47XG4gIGdldE1hcCgpOiBHb29nbGVNYXA7XG4gIGdldFBhdGgoKTogTVZDQXJyYXk8TGF0TG5nPjtcbiAgZ2V0UGF0aHMoKTogTVZDQXJyYXk8TVZDQXJyYXk8TGF0TG5nPj47XG4gIGdldFZpc2libGUoKTogYm9vbGVhbjtcbiAgc2V0RHJhZ2dhYmxlKGRyYWdnYWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldEVkaXRhYmxlKGVkaXRhYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0TWFwKG1hcDogR29vZ2xlTWFwKTogdm9pZDtcbiAgc2V0UGF0aChwYXRoOiBBcnJheTxMYXRMbmc+IHwgQXJyYXk8TGF0TG5nIHwgTGF0TG5nTGl0ZXJhbD4pOiB2b2lkO1xuICBzZXRPcHRpb25zKG9wdGlvbnM6IFBvbHlnb25PcHRpb25zKTogdm9pZDtcbiAgc2V0UGF0aHMocGF0aHM6IEFycmF5PEFycmF5PExhdExuZyB8IExhdExuZ0xpdGVyYWw+PiB8IEFycmF5PExhdExuZyB8IExhdExuZ0xpdGVyYWw+KTogdm9pZDtcbiAgc2V0VmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLbWxMYXllciBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGdldERlZmF1bHRWaWV3cG9ydCgpOiBMYXRMbmdCb3VuZHM7XG4gIGdldE1hcCgpOiBHb29nbGVNYXA7XG4gIGdldE1ldGFkYXRhKCk6IEttbExheWVyTWV0YWRhdGE7XG4gIGdldFN0YXR1cygpOiBLbWxMYXllclN0YXR1cztcbiAgZ2V0VXJsKCk6IHN0cmluZztcbiAgZ2V0WkluZGV4KCk6IG51bWJlcjtcbiAgc2V0TWFwKG1hcDogR29vZ2xlTWFwKTogdm9pZDtcbiAgc2V0T3B0aW9ucyhvcHRpb25zOiBLbWxMYXllck9wdGlvbnMpOiB2b2lkO1xuICBzZXRVcmwodXJsOiBzdHJpbmcpOiB2b2lkO1xuICBzZXRaSW5kZXgoekluZGV4OiBudW1iZXIpOiB2b2lkO1xufVxuXG4vKipcbiAqIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlP2hsPWRlI0ttbExheWVyU3RhdHVzXG4gKi9cbmV4cG9ydCB0eXBlIEttbExheWVyU3RhdHVzID0gJ0RPQ1VNRU5UX05PVF9GT1VORCcgfFxuICAnRE9DVU1FTlRfVE9PX0xBUkdFJyB8ICdGRVRDSF9FUlJPUicgfCAnSU5WQUxJRF9ET0NVTUVOVCcgfCAnSU5WQUxJRF9SRVFVRVNUJyB8XG4gICdMSU1JVFNfRVhDRUVERUQnIHwgJ09LJyB8ICdUSU1FRF9PVVQnIHwgJ1VOS05PV04nO1xuXG4vKipcbiAqIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlP2hsPWRlI0ttbExheWVyTWV0YWRhdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLbWxMYXllck1ldGFkYXRhIHtcbiAgYXV0aG9yOiBLbWxBdXRob3I7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGhhc1NjcmVlbk92ZXJsYXlzOiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNuaXBwZXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLbWxBdXRob3Ige1xuICBlbWFpbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHVyaTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEttbExheWVyT3B0aW9ucyB7XG4gIGNsaWNrYWJsZT86IGJvb2xlYW47XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgcHJlc2VydmVWaWV3cG9ydD86IGJvb2xlYW47XG4gIHNjcmVlbk92ZXJsYXlzPzogYm9vbGVhbjtcbiAgc3VwcHJlc3NJbmZvV2luZG93cz86IGJvb2xlYW47XG4gIHVybD86IHN0cmluZztcbiAgekluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEttbEZlYXR1cmVEYXRhIHtcbiAgYXV0aG9yOiBLbWxBdXRob3I7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIGluZm9XaW5kb3dIdG1sOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc25pcHBldDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEttbE1vdXNlRXZlbnQgZXh0ZW5kcyBNb3VzZUV2ZW50IHtcbiAgZmVhdHVyZURhdGE6IEttbEZlYXR1cmVEYXRhO1xuICBwaXhlbE9mZnNldDogU2l6ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2l0TGF5ZXIgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBzZXRNYXAobWFwOiBHb29nbGVNYXApOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zaXRMYXllck9wdGlvbnMge1xuICB2aXNpYmxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpY3ljbGluZ0xheWVyIGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgZ2V0TWFwKCk6IEdvb2dsZU1hcDtcbiAgc2V0TWFwKG1hcDogR29vZ2xlTWFwKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaWN5Y2xpbmdMYXllck9wdGlvbnMge1xuICB2aXNpYmxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGEgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBmZWF0dXJlczogRmVhdHVyZVtdO1xuICBhZGRHZW9Kc29uKGdlb0pzb246IE9iamVjdCwgb3B0aW9ucz86IEdlb0pzb25PcHRpb25zKTogRmVhdHVyZVtdO1xuICByZW1vdmUoZmVhdHVyZTogRmVhdHVyZSk6IHZvaWQ7XG4gIHNldENvbnRyb2xQb3NpdGlvbihjb250cm9sUG9zaXRpb246IENvbnRyb2xQb3NpdGlvbik6IHZvaWQ7XG4gIHNldENvbnRyb2xzKGNvbnRyb2xzOiBzdHJpbmdbXSk6IHZvaWQ7XG4gIHNldERyYXdpbmdNb2RlKGRyYXdpbmdNb2RlOiBzdHJpbmcpOiB2b2lkO1xuICBzZXRNYXAobWFwOiBHb29nbGVNYXApOiB2b2lkO1xuICAvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuICAvKlxuICAqIFRzbGludCBjb25maWd1cmF0aW9uIGNoZWNrLXBhcmFtZXRlcnMgd2lsbCBwcm9tcHQgZXJyb3JzIGZvciB0aGVzZSBsaW5lcyBvZiBjb2RlLlxuICAqIGh0dHBzOi8vcGFsYW50aXIuZ2l0aHViLmlvL3RzbGludC9ydWxlcy9uby11bnVzZWQtdmFyaWFibGUvXG4gICovXG4gIHNldFN0eWxlKHN0eWxlOiAoKSA9PiB2b2lkKTogdm9pZDtcbiAgZm9yRWFjaChjYWxsYmFjazogKGZlYXR1cmU6IEZlYXR1cmUpID0+IHZvaWQpOiB2b2lkO1xuICBsb2FkR2VvSnNvbih1cmw6IHN0cmluZywgb3B0aW9ucz86IEdlb0pzb25PcHRpb25zLCBjYWxsYmFjaz86IChmZWF0czogRmVhdHVyZVtdKSA9PiB2b2lkKTogdm9pZDtcbiAgLyogdHNsaW50OmVuYWJsZSAqL1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmUgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBpZD86IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZ2VvbWV0cnk6IEdlb21ldHJ5O1xuICBwcm9wZXJ0aWVzOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YU9wdGlvbnMge1xuICBjb250cm9sUG9zaXRpb24/OiBDb250cm9sUG9zaXRpb247XG4gIGNvbnRyb2xzPzogc3RyaW5nW107XG4gIGRyYXdpbmdNb2RlPzogc3RyaW5nO1xuICBmZWF0dXJlRmFjdG9yeT86IChnZW9tZXRyeTogR2VvbWV0cnkpID0+IEZlYXR1cmU7XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgc3R5bGU/OiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFNb3VzZUV2ZW50IGV4dGVuZHMgTW91c2VFdmVudCB7XG4gIGZlYXR1cmU6IEZlYXR1cmU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvSnNvbk9wdGlvbnMge1xuICBpZFByb3BlcnR5TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb21ldHJ5IHtcbiAgdHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIElkZW50aWZpZXJzIHVzZWQgdG8gc3BlY2lmeSB0aGUgcGxhY2VtZW50IG9mIGNvbnRyb2xzIG9uIHRoZSBtYXAuIENvbnRyb2xzIGFyZVxuICogcG9zaXRpb25lZCByZWxhdGl2ZSB0byBvdGhlciBjb250cm9scyBpbiB0aGUgc2FtZSBsYXlvdXQgcG9zaXRpb24uIENvbnRyb2xzIHRoYXRcbiAqIGFyZSBhZGRlZCBmaXJzdCBhcmUgcG9zaXRpb25lZCBjbG9zZXIgdG8gdGhlIGVkZ2Ugb2YgdGhlIG1hcC5cbiAqL1xuZXhwb3J0IGVudW0gQ29udHJvbFBvc2l0aW9uIHtcbiAgUklHSFRfQk9UVE9NLFxuICBUT1BfTEVGVCxcbiAgVE9QX0NFTlRFUixcbiAgVE9QX1JJR0hULFxuICBMRUZUX0NFTlRFUixcbiAgTEVGVF9UT1AsXG4gIExFRlRfQk9UVE9NLFxuICBSSUdIVF9UT1AsXG4gIFJJR0hUX0NFTlRFUixcbiAgQk9UVE9NX1JJR0hULFxuICBCT1RUT01fTEVGVCxcbiAgQk9UVE9NX0NFTlRFUixcbn1cblxuZXhwb3J0IGVudW0gTWFwVHlwZUlkIHtcbiAgLyoqIFRoaXMgbWFwIHR5cGUgZGlzcGxheXMgYSB0cmFuc3BhcmVudCBsYXllciBvZiBtYWpvciBzdHJlZXRzIG9uIHNhdGVsbGl0ZSBpbWFnZXMuICovXG4gIEhZQlJJRCxcbiAgLyoqIFRoaXMgbWFwIHR5cGUgZGlzcGxheXMgYSBub3JtYWwgc3RyZWV0IG1hcC4gKi9cbiAgUk9BRE1BUCxcbiAgLyoqIFRoaXMgbWFwIHR5cGUgZGlzcGxheXMgc2F0ZWxsaXRlIGltYWdlcy4gKi9cbiAgU0FURUxMSVRFLFxuICAvKiogVGhpcyBtYXAgdHlwZSBkaXNwbGF5cyBtYXBzIHdpdGggcGh5c2ljYWwgZmVhdHVyZXMgc3VjaCBhcyB0ZXJyYWluIGFuZCB2ZWdldGF0aW9uLiAqL1xuICBURVJSQUlOLFxufVxuXG4vKioqKiogQ29udHJvbHMgKioqKiovXG4vKiogT3B0aW9ucyBmb3IgdGhlIHJlbmRlcmluZyBvZiB0aGUgbWFwIHR5cGUgY29udHJvbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFwVHlwZUNvbnRyb2xPcHRpb25zIHtcbiAgLyoqIElEcyBvZiBtYXAgdHlwZXMgdG8gc2hvdyBpbiB0aGUgY29udHJvbC4gKi9cbiAgbWFwVHlwZUlkcz86IChNYXBUeXBlSWQgfCBzdHJpbmcpW107XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBpZC4gVXNlZCB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbCBvbiB0aGUgbWFwLlxuICAgKiBUaGUgZGVmYXVsdCBwb3NpdGlvbiBpcyBUT1BfUklHSFQuXG4gICAqL1xuICBwb3NpdGlvbj86IENvbnRyb2xQb3NpdGlvbjtcbiAgLyoqIFN0eWxlIGlkLiBVc2VkIHRvIHNlbGVjdCB3aGF0IHN0eWxlIG9mIG1hcCB0eXBlIGNvbnRyb2wgdG8gZGlzcGxheS4gKi9cbiAgc3R5bGU/OiBNYXBUeXBlQ29udHJvbFN0eWxlO1xufVxuXG5leHBvcnQgZW51bSBNYXBUeXBlQ29udHJvbFN0eWxlIHtcbiAgREVGQVVMVCA9IDAsXG4gIERST1BET1dOX01FTlUgPSAyLFxuICBIT1JJWk9OVEFMX0JBUiA9IDEsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcnZpZXdNYXBDb250cm9sT3B0aW9ucyB7XG4gIG9wZW5lZD86IGJvb2xlYW47XG59XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVuZGVyaW5nIG9mIHRoZSBwYW4gY29udHJvbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFuQ29udHJvbE9wdGlvbnMge1xuICAvKipcbiAgICogUG9zaXRpb24gaWQuIFVzZWQgdG8gc3BlY2lmeSB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbnRyb2wgb24gdGhlIG1hcC5cbiAgICogVGhlIGRlZmF1bHQgcG9zaXRpb24gaXMgVE9QX0xFRlQuXG4gICAqL1xuICBwb3NpdGlvbj86IENvbnRyb2xQb3NpdGlvbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZW5kZXJpbmcgb2YgdGhlIHJvdGF0ZSBjb250cm9sLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3RhdGVDb250cm9sT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBpZC4gVXNlZCB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbCBvbiB0aGUgbWFwLlxuICAgKiBUaGUgZGVmYXVsdCBwb3NpdGlvbiBpcyBUT1BfTEVGVC5cbiAgICovXG4gIHBvc2l0aW9uPzogQ29udHJvbFBvc2l0aW9uO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIHJlbmRlcmluZyBvZiB0aGUgc2NhbGUgY29udHJvbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NhbGVDb250cm9sT3B0aW9ucyB7XG4gIC8qKiBTdHlsZSBpZC4gVXNlZCB0byBzZWxlY3Qgd2hhdCBzdHlsZSBvZiBzY2FsZSBjb250cm9sIHRvIGRpc3BsYXkuICovXG4gIHN0eWxlPzogU2NhbGVDb250cm9sU3R5bGU7XG59XG5cbmV4cG9ydCBlbnVtIFNjYWxlQ29udHJvbFN0eWxlIHtcbiAgREVGQVVMVCxcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZW5kZXJpbmcgb2YgdGhlIFN0cmVldCBWaWV3IHBlZ21hbiBjb250cm9sIG9uIHRoZSBtYXAuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmVldFZpZXdDb250cm9sT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBpZC4gVXNlZCB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbCBvbiB0aGUgbWFwLiBUaGVcbiAgICogZGVmYXVsdCBwb3NpdGlvbiBpcyBlbWJlZGRlZCB3aXRoaW4gdGhlIG5hdmlnYXRpb24gKHpvb20gYW5kIHBhbikgY29udHJvbHMuXG4gICAqIElmIHRoaXMgcG9zaXRpb24gaXMgZW1wdHkgb3IgdGhlIHNhbWUgYXMgdGhhdCBzcGVjaWZpZWQgaW4gdGhlXG4gICAqIHpvb21Db250cm9sT3B0aW9ucyBvciBwYW5Db250cm9sT3B0aW9ucywgdGhlIFN0cmVldCBWaWV3IGNvbnRyb2wgd2lsbCBiZVxuICAgKiBkaXNwbGF5ZWQgYXMgcGFydCBvZiB0aGUgbmF2aWdhdGlvbiBjb250cm9scy4gT3RoZXJ3aXNlLCBpdCB3aWxsIGJlIGRpc3BsYXllZFxuICAgKiBzZXBhcmF0ZWx5LlxuICAgKi9cbiAgcG9zaXRpb24/OiBDb250cm9sUG9zaXRpb247XG59XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB6b29tIGNvbnRyb2wuICovXG5leHBvcnQgaW50ZXJmYWNlIFpvb21Db250cm9sT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBpZC4gVXNlZCB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbCBvbiB0aGUgbWFwLlxuICAgKiBUaGUgZGVmYXVsdCBwb3NpdGlvbiBpcyBUT1BfTEVGVC5cbiAgICovXG4gIHBvc2l0aW9uPzogQ29udHJvbFBvc2l0aW9uO1xuICBzdHlsZT86IFpvb21Db250cm9sU3R5bGU7XG59XG5cbmV4cG9ydCBlbnVtIFpvb21Db250cm9sU3R5bGUge1xuICBERUZBVUxULFxuICBMQVJHRSxcbiAgU01BTEwsXG59XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVuZGVyaW5nIG9mIHRoZSBmdWxsc2NyZWVuIGNvbnRyb2wuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGxzY3JlZW5Db250cm9sT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBpZC4gVXNlZCB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbCBvbiB0aGUgbWFwLlxuICAgKiBUaGUgZGVmYXVsdCBwb3NpdGlvbiBpcyBSSUdIVF9UT1AuXG4gICAqL1xuICBwb3NpdGlvbj86IENvbnRyb2xQb3NpdGlvbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZXN0cmljdGluZyB0aGUgYm91bmRzIG9mIHRoZSBtYXAuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hcFJlc3RyaWN0aW9uIHtcbiAgbGF0TG5nQm91bmRzOiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsO1xuICBzdHJpY3RCb3VuZHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb2NvZGVyIHtcbiAgZ2VvY29kZTogKHJlcXVlc3Q6IEdlb2NvZGVyUmVxdWVzdCwgZ29vZ2xlQ2FsbGJhY2s6IChyZXN1bHRzOiBHZW9jb2RlclJlc3VsdFtdLCBzdGF0dXM6IEdlb2NvZGVyU3RhdHVzKSA9PiB2b2lkKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb2NvZGVyQWRkcmVzc0NvbXBvbmVudCB7XG4gIGxvbmdfbmFtZTogc3RyaW5nO1xuICBzaG9ydF9uYW1lOiBzdHJpbmc7XG4gIHR5cGVzOiBzdHJpbmdbXTtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHJlc3RyaWN0aW5nIHRoZSBnZW9jb2RlciByZXN1bHRzICovXG5leHBvcnQgaW50ZXJmYWNlIEdlb2NvZGVyQ29tcG9uZW50UmVzdHJpY3Rpb25zIHtcbiAgYWRtaW5pc3RyYXRpdmVBcmVhPzogc3RyaW5nO1xuICBjb3VudHJ5Pzogc3RyaW5nO1xuICBsb2NhbGl0eT86IHN0cmluZztcbiAgcG9zdGFsQ29kZT86IHN0cmluZztcbiAgcm91dGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvY29kZXJHZW9tZXRyeSB7XG4gIGJvdW5kczogTGF0TG5nQm91bmRzO1xuICBsb2NhdGlvbjogTGF0TG5nO1xuICBsb2NhdGlvbl90eXBlOiBHZW9jb2RlckxvY2F0aW9uVHlwZTtcbiAgdmlld3BvcnQ6IExhdExuZ0JvdW5kcztcbn1cblxuZXhwb3J0IGVudW0gR2VvY29kZXJMb2NhdGlvblR5cGUge1xuICBBUFBST1hJTUFURSA9ICdBUFBST1hJTUFURScsXG4gIEdFT01FVFJJQ19DRU5URVIgPSAnR0VPTUVUUklDX0NFTlRFUicsXG4gIFJBTkdFX0lOVEVSUE9MQVRFRCA9ICdSQU5HRV9JTlRFUlBPTEFURUQnLFxuICBST09GVE9QID0gJ1JPT0ZUT1AnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb2NvZGVyUmVxdWVzdCB7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIGJvdW5kcz86IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWw7XG4gIGNvbXBvbmVudFJlc3RyaWN0aW9ucz86IEdlb2NvZGVyQ29tcG9uZW50UmVzdHJpY3Rpb25zO1xuICBsb2NhdGlvbj86IExhdExuZyB8IExhdExuZ0xpdGVyYWw7XG4gIHBsYWNlSWQ/OiBzdHJpbmc7XG4gIHJlZ2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9jb2RlclJlc3VsdCB7XG4gIGFkZHJlc3NfY29tcG9uZW50czogR2VvY29kZXJBZGRyZXNzQ29tcG9uZW50W107XG4gIGZvcm1hdHRlZF9hZGRyZXNzOiBzdHJpbmc7XG4gIGdlb21ldHJ5OiBHZW9jb2Rlckdlb21ldHJ5O1xuICBwYXJ0aWFsX21hdGNoOiBib29sZWFuO1xuICBwbGFjZV9pZDogc3RyaW5nO1xuICBwb3N0Y29kZV9sb2NhbGl0aWVzOiBzdHJpbmdbXTtcbiAgdHlwZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBHZW9jb2RlclN0YXR1cyB7XG4gIEVSUk9SID0gJ0VSUk9SJyxcbiAgSU5WQUxJRF9SRVFVRVNUID0gJ0lOVkFMSURfUkVRVUVTVCcsXG4gIE9LID0gJ09LJyxcbiAgT1ZFUl9RVUVSWV9MSU1JVCA9ICdPVkVSX1FVRVJZX0xJTUlUJyxcbiAgUkVRVUVTVF9ERU5JRUQgPSAnUkVRVUVTVF9ERU5JRUQnLFxuICBVTktOT1dOX0VSUk9SID0gJ1VOS05PV05fRVJST1InLFxuICBaRVJPX1JFU1VMVFMgPSAnWkVST19SRVNVTFRTJyxcbn1cbiJdfQ==
import * as tslib_1 from "tslib";
import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
import { Inject, Injectable, InjectionToken, LOCALE_ID, Optional } from '@angular/core';
import { DocumentRef, WindowRef } from '../../utils/browser-globals';

@@ -17,4 +17,5 @@ import { MapsAPILoader } from './maps-api-loader';

let LazyMapsAPILoader = class LazyMapsAPILoader extends MapsAPILoader {
constructor(config = null, w, d) {
constructor(config = null, w, d, localeId) {
super();
this.localeId = localeId;
this._SCRIPT_ID = 'agmGoogleMapsApiScript';

@@ -84,3 +85,3 @@ this.callbackName = `agmLazyMapsAPILoader`;

region: this._config.region,
language: this._config.language,
language: this._config.language || this.localeId !== 'en-US' ? this.localeId : null,
};

@@ -112,3 +113,4 @@ const params = Object.keys(queryParams)

{ type: WindowRef },
{ type: DocumentRef }
{ type: DocumentRef },
{ type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }
];

@@ -118,5 +120,6 @@ LazyMapsAPILoader = tslib_1.__decorate([

tslib_1.__param(0, Optional()), tslib_1.__param(0, Inject(LAZY_MAPS_API_CONFIG)),
tslib_1.__metadata("design:paramtypes", [Object, WindowRef, DocumentRef])
tslib_1.__param(3, Inject(LOCALE_ID)),
tslib_1.__metadata("design:paramtypes", [Object, WindowRef, DocumentRef, String])
], LazyMapsAPILoader);
export { LazyMapsAPILoader };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1tYXBzLWFwaS1sb2FkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9tYXBzLWFwaS1sb2FkZXIvbGF6eS1tYXBzLWFwaS1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxDQUFOLElBQVksd0JBSVg7QUFKRCxXQUFZLHdCQUF3QjtJQUNsQyx1RUFBUSxDQUFBO0lBQ1IseUVBQVMsQ0FBQTtJQUNULHVFQUFRLENBQUE7QUFDVixDQUFDLEVBSlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQUluQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUFpQywwQ0FBMEMsQ0FBQyxDQUFDO0FBaUVuSSxJQUFhLGlCQUFpQixHQUE5QixNQUFhLGlCQUFrQixTQUFRLGFBQWE7SUFRbEQsWUFBc0QsU0FBYyxJQUFJLEVBQUUsQ0FBWSxFQUFFLENBQWM7UUFDcEcsS0FBSyxFQUFFLENBQUM7UUFKUyxlQUFVLEdBQVcsd0JBQXdCLENBQUM7UUFDOUMsaUJBQVksR0FBVyxzQkFBc0IsQ0FBQztRQUkvRCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUk7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBUyxDQUFD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LEVBQUUsRUFBRTtZQUMzQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sR0FBRyxRQUFRLEtBQUssV0FBVyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQ2pELENBQUM7Q0FDRixDQUFBOzs0Q0FqR2MsUUFBUSxZQUFJLE1BQU0sU0FBQyxvQkFBb0I7WUFBeUIsU0FBUztZQUFLLFdBQVc7O0FBUjNGLGlCQUFpQjtJQUQ3QixVQUFVLEVBQUU7SUFTRSxtQkFBQSxRQUFRLEVBQUUsQ0FBQSxFQUFFLG1CQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO3FEQUF3QixTQUFTLEVBQUssV0FBVztHQVIzRixpQkFBaUIsQ0F5RzdCO1NBekdZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERvY3VtZW50UmVmLCBXaW5kb3dSZWYgfSBmcm9tICcuLi8uLi91dGlscy9icm93c2VyLWdsb2JhbHMnO1xuXG5pbXBvcnQgeyBNYXBzQVBJTG9hZGVyIH0gZnJvbSAnLi9tYXBzLWFwaS1sb2FkZXInO1xuXG5leHBvcnQgZW51bSBHb29nbGVNYXBzU2NyaXB0UHJvdG9jb2wge1xuICBIVFRQID0gMSxcbiAgSFRUUFMgPSAyLFxuICBBVVRPID0gMyxcbn1cblxuLyoqXG4gKiBUb2tlbiBmb3IgdGhlIGNvbmZpZyBvZiB0aGUgTGF6eU1hcHNBUElMb2FkZXIuIFBsZWFzZSBwcm92aWRlIGFuIG9iamVjdCBvZiB0eXBlIHtAbGlua1xuICogTGF6eU1hcHNBUElMb2FkZXJDb25maWd9LlxuICovXG5leHBvcnQgY29uc3QgTEFaWV9NQVBTX0FQSV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TGF6eU1hcHNBUElMb2FkZXJDb25maWdMaXRlcmFsPignYW5ndWxhci1nb29nbGUtbWFwcyBMQVpZX01BUFNfQVBJX0NPTkZJRycpO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB7QGxpbmsgTGF6eU1hcHNBUElMb2FkZXJ9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhenlNYXBzQVBJTG9hZGVyQ29uZmlnTGl0ZXJhbCB7XG4gIC8qKlxuICAgKiBUaGUgR29vZ2xlIE1hcHMgQVBJIEtleSAoc2VlOlxuICAgKiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9nZXQtYXBpLWtleSlcbiAgICovXG4gIGFwaUtleT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdvb2dsZSBNYXBzIGNsaWVudCBJRCAoZm9yIHByZW1pdW0gcGxhbnMpLlxuICAgKiBXaGVuIHlvdSBoYXZlIGEgR29vZ2xlIE1hcHMgQVBJcyBQcmVtaXVtIFBsYW4gbGljZW5zZSwgeW91IG11c3QgYXV0aGVudGljYXRlXG4gICAqIHlvdXIgYXBwbGljYXRpb24gd2l0aCBlaXRoZXIgYW4gQVBJIGtleSBvciBhIGNsaWVudCBJRC5cbiAgICogVGhlIEdvb2dsZSBNYXBzIEFQSSB3aWxsIGZhaWwgdG8gbG9hZCBpZiBib3RoIGEgY2xpZW50IElEIGFuZCBhbiBBUEkga2V5IGFyZSBpbmNsdWRlZC5cbiAgICovXG4gIGNsaWVudElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR29vZ2xlIE1hcHMgY2hhbm5lbCBuYW1lIChmb3IgcHJlbWl1bSBwbGFucykuXG4gICAqIEEgY2hhbm5lbCBwYXJhbWV0ZXIgaXMgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIHRoYXQgYWxsb3dzIHlvdSB0byB0cmFjayB1c2FnZSB1bmRlciB5b3VyIGNsaWVudFxuICAgKiBJRCBieSBhc3NpZ25pbmcgYSBkaXN0aW5jdCBjaGFubmVsIHRvIGVhY2ggb2YgeW91ciBhcHBsaWNhdGlvbnMuXG4gICAqL1xuICBjaGFubmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHb29nbGUgTWFwcyBBUEkgdmVyc2lvbi5cbiAgICovXG4gIGFwaVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvc3QgYW5kIFBhdGggdXNlZCBmb3IgdGhlIGA8c2NyaXB0PmAgdGFnLlxuICAgKi9cbiAgaG9zdEFuZFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb3RvY29sIHVzZWQgZm9yIHRoZSBgPHNjcmlwdD5gIHRhZy5cbiAgICovXG4gIHByb3RvY29sPzogR29vZ2xlTWFwc1NjcmlwdFByb3RvY29sO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHdoaWNoIEdvb2dsZSBNYXBzIGxpYnJhcmllcyBzaG91bGQgZ2V0IGxvYWRlZC5cbiAgICovXG4gIGxpYnJhcmllcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBiaWFzIGZvciB0aGUgbWFwIGJlaGF2aW9yIGlzIFVTLlxuICAgKiBJZiB5b3Ugd2lzaCB0byBhbHRlciB5b3VyIGFwcGxpY2F0aW9uIHRvIHNlcnZlIGRpZmZlcmVudCBtYXAgdGlsZXMgb3IgYmlhcyB0aGVcbiAgICogYXBwbGljYXRpb24sIHlvdSBjYW4gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIChVUykgYnkgZGVmaW5pbmcgYSBgcmVnaW9uYC5cbiAgICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L2Jhc2ljcyNSZWdpb25cbiAgICovXG4gIHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdvb2dsZSBNYXBzIEFQSSB1c2VzIHRoZSBicm93c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlIHdoZW4gZGlzcGxheWluZ1xuICAgKiB0ZXh0dWFsIGluZm9ybWF0aW9uLiBJZiB5b3Ugd2lzaCB0byBvdmVyd3JpdGUgdGhpcyBiZWhhdmlvciBhbmQgZm9yY2UgdGhlIEFQSVxuICAgKiB0byB1c2UgYSBnaXZlbiBsYW5ndWFnZSwgeW91IGNhbiB1c2UgdGhpcyBzZXR0aW5nLlxuICAgKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvYmFzaWNzI0xhbmd1YWdlXG4gICAqL1xuICBsYW5ndWFnZT86IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExhenlNYXBzQVBJTG9hZGVyIGV4dGVuZHMgTWFwc0FQSUxvYWRlciB7XG4gIHByb3RlY3RlZCBfc2NyaXB0TG9hZGluZ1Byb21pc2U6IFByb21pc2U8dm9pZD47XG4gIHByb3RlY3RlZCBfY29uZmlnOiBMYXp5TWFwc0FQSUxvYWRlckNvbmZpZ0xpdGVyYWw7XG4gIHByb3RlY3RlZCBfd2luZG93UmVmOiBXaW5kb3dSZWY7XG4gIHByb3RlY3RlZCBfZG9jdW1lbnRSZWY6IERvY3VtZW50UmVmO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX1NDUklQVF9JRDogc3RyaW5nID0gJ2FnbUdvb2dsZU1hcHNBcGlTY3JpcHQnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FsbGJhY2tOYW1lOiBzdHJpbmcgPSBgYWdtTGF6eU1hcHNBUElMb2FkZXJgO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTEFaWV9NQVBTX0FQSV9DT05GSUcpIGNvbmZpZzogYW55ID0gbnVsbCwgdzogV2luZG93UmVmLCBkOiBEb2N1bWVudFJlZikge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnIHx8IHt9O1xuICAgIHRoaXMuX3dpbmRvd1JlZiA9IHc7XG4gICAgdGhpcy5fZG9jdW1lbnRSZWYgPSBkO1xuICB9XG5cbiAgbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB3aW5kb3cgPSB0aGlzLl93aW5kb3dSZWYuZ2V0TmF0aXZlV2luZG93KCkgYXMgYW55O1xuICAgIGlmICh3aW5kb3cuZ29vZ2xlICYmIHdpbmRvdy5nb29nbGUubWFwcykge1xuICAgICAgLy8gR29vZ2xlIG1hcHMgYWxyZWFkeSBsb2FkZWQgb24gdGhlIHBhZ2UuXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3NjcmlwdExvYWRpbmdQcm9taXNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2NyaXB0TG9hZGluZ1Byb21pc2U7XG4gICAgfVxuXG4gICAgLy8gdGhpcyBjYW4gaGFwcGVuIGluIEhNUiBzaXR1YXRpb25zIG9yIFN0YWNrYmxpdHouaW8gZWRpdG9ycy5cbiAgICBjb25zdCBzY3JpcHRPblBhZ2UgPSB0aGlzLl9kb2N1bWVudFJlZi5nZXROYXRpdmVEb2N1bWVudCgpLmdldEVsZW1lbnRCeUlkKHRoaXMuX1NDUklQVF9JRCk7XG4gICAgaWYgKHNjcmlwdE9uUGFnZSkge1xuICAgICAgdGhpcy5fYXNzaWduU2NyaXB0TG9hZGluZ1Byb21pc2Uoc2NyaXB0T25QYWdlKTtcbiAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRMb2FkaW5nUHJvbWlzZTtcbiAgICB9XG5cbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLl9kb2N1bWVudFJlZi5nZXROYXRpdmVEb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICBzY3JpcHQuZGVmZXIgPSB0cnVlO1xuICAgIHNjcmlwdC5pZCA9IHRoaXMuX1NDUklQVF9JRDtcbiAgICBzY3JpcHQuc3JjID0gdGhpcy5fZ2V0U2NyaXB0U3JjKHRoaXMuY2FsbGJhY2tOYW1lKTtcbiAgICB0aGlzLl9hc3NpZ25TY3JpcHRMb2FkaW5nUHJvbWlzZShzY3JpcHQpO1xuICAgIHRoaXMuX2RvY3VtZW50UmVmLmdldE5hdGl2ZURvY3VtZW50KCkuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIHJldHVybiB0aGlzLl9zY3JpcHRMb2FkaW5nUHJvbWlzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnblNjcmlwdExvYWRpbmdQcm9taXNlKHNjcmlwdEVsZW06IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fc2NyaXB0TG9hZGluZ1Byb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgICh0aGlzLl93aW5kb3dSZWYuZ2V0TmF0aXZlV2luZG93KCkgYXMgYW55KVt0aGlzLmNhbGxiYWNrTmFtZV0gPSAoKSA9PiB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH07XG5cbiAgICAgIHNjcmlwdEVsZW0ub25lcnJvciA9IChlcnJvcjogRXZlbnQpID0+IHtcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2dldFNjcmlwdFNyYyhjYWxsYmFja05hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHByb3RvY29sVHlwZTogR29vZ2xlTWFwc1NjcmlwdFByb3RvY29sID1cbiAgICAgICAgKHRoaXMuX2NvbmZpZyAmJiB0aGlzLl9jb25maWcucHJvdG9jb2wpIHx8IEdvb2dsZU1hcHNTY3JpcHRQcm90b2NvbC5IVFRQUztcbiAgICBsZXQgcHJvdG9jb2w6IHN0cmluZztcblxuICAgIHN3aXRjaCAocHJvdG9jb2xUeXBlKSB7XG4gICAgICBjYXNlIEdvb2dsZU1hcHNTY3JpcHRQcm90b2NvbC5BVVRPOlxuICAgICAgICBwcm90b2NvbCA9ICcnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgR29vZ2xlTWFwc1NjcmlwdFByb3RvY29sLkhUVFA6XG4gICAgICAgIHByb3RvY29sID0gJ2h0dHA6JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEdvb2dsZU1hcHNTY3JpcHRQcm90b2NvbC5IVFRQUzpcbiAgICAgICAgcHJvdG9jb2wgPSAnaHR0cHM6JztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY29uc3QgaG9zdEFuZFBhdGg6IHN0cmluZyA9IHRoaXMuX2NvbmZpZy5ob3N0QW5kUGF0aCB8fCAnbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9qcyc7XG4gICAgY29uc3QgcXVlcnlQYXJhbXM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+fSA9IHtcbiAgICAgIHY6IHRoaXMuX2NvbmZpZy5hcGlWZXJzaW9uIHx8ICdxdWFydGVybHknLFxuICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrTmFtZSxcbiAgICAgIGtleTogdGhpcy5fY29uZmlnLmFwaUtleSxcbiAgICAgIGNsaWVudDogdGhpcy5fY29uZmlnLmNsaWVudElkLFxuICAgICAgY2hhbm5lbDogdGhpcy5fY29uZmlnLmNoYW5uZWwsXG4gICAgICBsaWJyYXJpZXM6IHRoaXMuX2NvbmZpZy5saWJyYXJpZXMsXG4gICAgICByZWdpb246IHRoaXMuX2NvbmZpZy5yZWdpb24sXG4gICAgICBsYW5ndWFnZTogdGhpcy5fY29uZmlnLmxhbmd1YWdlLFxuICAgIH07XG4gICAgY29uc3QgcGFyYW1zOiBzdHJpbmcgPSBPYmplY3Qua2V5cyhxdWVyeVBhcmFtcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChrOiBzdHJpbmcpID0+IHF1ZXJ5UGFyYW1zW2tdICE9IG51bGwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoazogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZW1vdmUgZW1wdHkgYXJyYXlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIUFycmF5LmlzQXJyYXkocXVlcnlQYXJhbXNba10pIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEFycmF5LmlzQXJyYXkocXVlcnlQYXJhbXNba10pICYmIHF1ZXJ5UGFyYW1zW2tdLmxlbmd0aCA+IDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoazogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBqb2luIGFycmF5cyBhcyBjb21tYSBzZXBlcmF0ZWQgc3RyaW5nc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGkgPSBxdWVyeVBhcmFtc1trXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7a2V5OiBrLCB2YWx1ZTogaS5qb2luKCcsJyl9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtrZXk6IGssIHZhbHVlOiBxdWVyeVBhcmFtc1trXX07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChlbnRyeToge2tleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2VudHJ5LmtleX09JHtlbnRyeS52YWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oJyYnKTtcbiAgICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RBbmRQYXRofT8ke3BhcmFtc31gO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1tYXBzLWFwaS1sb2FkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9tYXBzLWFwaS1sb2FkZXIvbGF6eS1tYXBzLWFwaS1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE1BQU0sQ0FBTixJQUFZLHdCQUlYO0FBSkQsV0FBWSx3QkFBd0I7SUFDbEMsdUVBQVEsQ0FBQTtJQUNSLHlFQUFTLENBQUE7SUFDVCx1RUFBUSxDQUFBO0FBQ1YsQ0FBQyxFQUpXLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFJbkM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBaUMsMENBQTBDLENBQUMsQ0FBQztBQWlFbkksSUFBYSxpQkFBaUIsR0FBOUIsTUFBYSxpQkFBa0IsU0FBUSxhQUFhO0lBUWxELFlBQXNELFNBQWMsSUFBSSxFQUFFLENBQVksRUFBRSxDQUFjLEVBQzFFLFFBQWdCO1FBQzFDLEtBQUssRUFBRSxDQUFDO1FBRGtCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFKekIsZUFBVSxHQUFXLHdCQUF3QixDQUFDO1FBQzlDLGlCQUFZLEdBQVcsc0JBQXNCLENBQUM7UUFLL0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJO1FBQ0Ys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QyxDQUFDO2FBQ3JDO1lBQ0QsT0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxDQUFDLEtBQW1DLEVBQUUsRUFBRTtZQUMzQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkMsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sR0FBRyxRQUFRLEtBQUssV0FBVyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQ2pELENBQUM7Q0FDRixDQUFBOzs0Q0FsR2MsUUFBUSxZQUFJLE1BQU0sU0FBQyxvQkFBb0I7WUFBeUIsU0FBUztZQUFLLFdBQVc7eUNBQ3BHLE1BQU0sU0FBQyxTQUFTOztBQVRQLGlCQUFpQjtJQUQ3QixVQUFVLEVBQUU7SUFTRSxtQkFBQSxRQUFRLEVBQUUsQ0FBQSxFQUFFLG1CQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQ25ELG1CQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtxREFEMEQsU0FBUyxFQUFLLFdBQVc7R0FSM0YsaUJBQWlCLENBMEc3QjtTQTFHWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBMT0NBTEVfSUQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IERvY3VtZW50UmVmLCBXaW5kb3dSZWYgfSBmcm9tICcuLi8uLi91dGlscy9icm93c2VyLWdsb2JhbHMnO1xuXG5pbXBvcnQgeyBNYXBzQVBJTG9hZGVyIH0gZnJvbSAnLi9tYXBzLWFwaS1sb2FkZXInO1xuXG5leHBvcnQgZW51bSBHb29nbGVNYXBzU2NyaXB0UHJvdG9jb2wge1xuICBIVFRQID0gMSxcbiAgSFRUUFMgPSAyLFxuICBBVVRPID0gMyxcbn1cblxuLyoqXG4gKiBUb2tlbiBmb3IgdGhlIGNvbmZpZyBvZiB0aGUgTGF6eU1hcHNBUElMb2FkZXIuIFBsZWFzZSBwcm92aWRlIGFuIG9iamVjdCBvZiB0eXBlIHtAbGlua1xuICogTGF6eU1hcHNBUElMb2FkZXJDb25maWd9LlxuICovXG5leHBvcnQgY29uc3QgTEFaWV9NQVBTX0FQSV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48TGF6eU1hcHNBUElMb2FkZXJDb25maWdMaXRlcmFsPignYW5ndWxhci1nb29nbGUtbWFwcyBMQVpZX01BUFNfQVBJX0NPTkZJRycpO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSB7QGxpbmsgTGF6eU1hcHNBUElMb2FkZXJ9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhenlNYXBzQVBJTG9hZGVyQ29uZmlnTGl0ZXJhbCB7XG4gIC8qKlxuICAgKiBUaGUgR29vZ2xlIE1hcHMgQVBJIEtleSAoc2VlOlxuICAgKiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9nZXQtYXBpLWtleSlcbiAgICovXG4gIGFwaUtleT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdvb2dsZSBNYXBzIGNsaWVudCBJRCAoZm9yIHByZW1pdW0gcGxhbnMpLlxuICAgKiBXaGVuIHlvdSBoYXZlIGEgR29vZ2xlIE1hcHMgQVBJcyBQcmVtaXVtIFBsYW4gbGljZW5zZSwgeW91IG11c3QgYXV0aGVudGljYXRlXG4gICAqIHlvdXIgYXBwbGljYXRpb24gd2l0aCBlaXRoZXIgYW4gQVBJIGtleSBvciBhIGNsaWVudCBJRC5cbiAgICogVGhlIEdvb2dsZSBNYXBzIEFQSSB3aWxsIGZhaWwgdG8gbG9hZCBpZiBib3RoIGEgY2xpZW50IElEIGFuZCBhbiBBUEkga2V5IGFyZSBpbmNsdWRlZC5cbiAgICovXG4gIGNsaWVudElkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR29vZ2xlIE1hcHMgY2hhbm5lbCBuYW1lIChmb3IgcHJlbWl1bSBwbGFucykuXG4gICAqIEEgY2hhbm5lbCBwYXJhbWV0ZXIgaXMgYW4gb3B0aW9uYWwgcGFyYW1ldGVyIHRoYXQgYWxsb3dzIHlvdSB0byB0cmFjayB1c2FnZSB1bmRlciB5b3VyIGNsaWVudFxuICAgKiBJRCBieSBhc3NpZ25pbmcgYSBkaXN0aW5jdCBjaGFubmVsIHRvIGVhY2ggb2YgeW91ciBhcHBsaWNhdGlvbnMuXG4gICAqL1xuICBjaGFubmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHb29nbGUgTWFwcyBBUEkgdmVyc2lvbi5cbiAgICovXG4gIGFwaVZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEhvc3QgYW5kIFBhdGggdXNlZCBmb3IgdGhlIGA8c2NyaXB0PmAgdGFnLlxuICAgKi9cbiAgaG9zdEFuZFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFByb3RvY29sIHVzZWQgZm9yIHRoZSBgPHNjcmlwdD5gIHRhZy5cbiAgICovXG4gIHByb3RvY29sPzogR29vZ2xlTWFwc1NjcmlwdFByb3RvY29sO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHdoaWNoIEdvb2dsZSBNYXBzIGxpYnJhcmllcyBzaG91bGQgZ2V0IGxvYWRlZC5cbiAgICovXG4gIGxpYnJhcmllcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBiaWFzIGZvciB0aGUgbWFwIGJlaGF2aW9yIGlzIFVTLlxuICAgKiBJZiB5b3Ugd2lzaCB0byBhbHRlciB5b3VyIGFwcGxpY2F0aW9uIHRvIHNlcnZlIGRpZmZlcmVudCBtYXAgdGlsZXMgb3IgYmlhcyB0aGVcbiAgICogYXBwbGljYXRpb24sIHlvdSBjYW4gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIChVUykgYnkgZGVmaW5pbmcgYSBgcmVnaW9uYC5cbiAgICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L2Jhc2ljcyNSZWdpb25cbiAgICovXG4gIHJlZ2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdvb2dsZSBNYXBzIEFQSSB1c2VzIHRoZSBicm93c2VyJ3MgcHJlZmVycmVkIGxhbmd1YWdlIHdoZW4gZGlzcGxheWluZ1xuICAgKiB0ZXh0dWFsIGluZm9ybWF0aW9uLiBJZiB5b3Ugd2lzaCB0byBvdmVyd3JpdGUgdGhpcyBiZWhhdmlvciBhbmQgZm9yY2UgdGhlIEFQSVxuICAgKiB0byB1c2UgYSBnaXZlbiBsYW5ndWFnZSwgeW91IGNhbiB1c2UgdGhpcyBzZXR0aW5nLlxuICAgKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvYmFzaWNzI0xhbmd1YWdlXG4gICAqL1xuICBsYW5ndWFnZT86IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExhenlNYXBzQVBJTG9hZGVyIGV4dGVuZHMgTWFwc0FQSUxvYWRlciB7XG4gIHByb3RlY3RlZCBfc2NyaXB0TG9hZGluZ1Byb21pc2U6IFByb21pc2U8dm9pZD47XG4gIHByb3RlY3RlZCBfY29uZmlnOiBMYXp5TWFwc0FQSUxvYWRlckNvbmZpZ0xpdGVyYWw7XG4gIHByb3RlY3RlZCBfd2luZG93UmVmOiBXaW5kb3dSZWY7XG4gIHByb3RlY3RlZCBfZG9jdW1lbnRSZWY6IERvY3VtZW50UmVmO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX1NDUklQVF9JRDogc3RyaW5nID0gJ2FnbUdvb2dsZU1hcHNBcGlTY3JpcHQnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FsbGJhY2tOYW1lOiBzdHJpbmcgPSBgYWdtTGF6eU1hcHNBUElMb2FkZXJgO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTEFaWV9NQVBTX0FQSV9DT05GSUcpIGNvbmZpZzogYW55ID0gbnVsbCwgdzogV2luZG93UmVmLCBkOiBEb2N1bWVudFJlZixcbiAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZUlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZyB8fCB7fTtcbiAgICB0aGlzLl93aW5kb3dSZWYgPSB3O1xuICAgIHRoaXMuX2RvY3VtZW50UmVmID0gZDtcbiAgfVxuXG4gIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgd2luZG93ID0gdGhpcy5fd2luZG93UmVmLmdldE5hdGl2ZVdpbmRvdygpIGFzIGFueTtcbiAgICBpZiAod2luZG93Lmdvb2dsZSAmJiB3aW5kb3cuZ29vZ2xlLm1hcHMpIHtcbiAgICAgIC8vIEdvb2dsZSBtYXBzIGFscmVhZHkgbG9hZGVkIG9uIHRoZSBwYWdlLlxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9zY3JpcHRMb2FkaW5nUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3NjcmlwdExvYWRpbmdQcm9taXNlO1xuICAgIH1cblxuICAgIC8vIHRoaXMgY2FuIGhhcHBlbiBpbiBITVIgc2l0dWF0aW9ucyBvciBTdGFja2JsaXR6LmlvIGVkaXRvcnMuXG4gICAgY29uc3Qgc2NyaXB0T25QYWdlID0gdGhpcy5fZG9jdW1lbnRSZWYuZ2V0TmF0aXZlRG9jdW1lbnQoKS5nZXRFbGVtZW50QnlJZCh0aGlzLl9TQ1JJUFRfSUQpO1xuICAgIGlmIChzY3JpcHRPblBhZ2UpIHtcbiAgICAgIHRoaXMuX2Fzc2lnblNjcmlwdExvYWRpbmdQcm9taXNlKHNjcmlwdE9uUGFnZSk7XG4gICAgICByZXR1cm4gdGhpcy5fc2NyaXB0TG9hZGluZ1Byb21pc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5fZG9jdW1lbnRSZWYuZ2V0TmF0aXZlRG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICBzY3JpcHQuaWQgPSB0aGlzLl9TQ1JJUFRfSUQ7XG4gICAgc2NyaXB0LnNyYyA9IHRoaXMuX2dldFNjcmlwdFNyYyh0aGlzLmNhbGxiYWNrTmFtZSk7XG4gICAgdGhpcy5fYXNzaWduU2NyaXB0TG9hZGluZ1Byb21pc2Uoc2NyaXB0KTtcbiAgICB0aGlzLl9kb2N1bWVudFJlZi5nZXROYXRpdmVEb2N1bWVudCgpLmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICByZXR1cm4gdGhpcy5fc2NyaXB0TG9hZGluZ1Byb21pc2U7XG4gIH1cblxuICBwcml2YXRlIF9hc3NpZ25TY3JpcHRMb2FkaW5nUHJvbWlzZShzY3JpcHRFbGVtOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuX3NjcmlwdExvYWRpbmdQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICAodGhpcy5fd2luZG93UmVmLmdldE5hdGl2ZVdpbmRvdygpIGFzIGFueSlbdGhpcy5jYWxsYmFja05hbWVdID0gKCkgPT4ge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuXG4gICAgICBzY3JpcHRFbGVtLm9uZXJyb3IgPSAoZXJyb3I6IEV2ZW50KSA9PiB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9nZXRTY3JpcHRTcmMoY2FsbGJhY2tOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBwcm90b2NvbFR5cGU6IEdvb2dsZU1hcHNTY3JpcHRQcm90b2NvbCA9XG4gICAgICAgICh0aGlzLl9jb25maWcgJiYgdGhpcy5fY29uZmlnLnByb3RvY29sKSB8fCBHb29nbGVNYXBzU2NyaXB0UHJvdG9jb2wuSFRUUFM7XG4gICAgbGV0IHByb3RvY29sOiBzdHJpbmc7XG5cbiAgICBzd2l0Y2ggKHByb3RvY29sVHlwZSkge1xuICAgICAgY2FzZSBHb29nbGVNYXBzU2NyaXB0UHJvdG9jb2wuQVVUTzpcbiAgICAgICAgcHJvdG9jb2wgPSAnJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEdvb2dsZU1hcHNTY3JpcHRQcm90b2NvbC5IVFRQOlxuICAgICAgICBwcm90b2NvbCA9ICdodHRwOic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBHb29nbGVNYXBzU2NyaXB0UHJvdG9jb2wuSFRUUFM6XG4gICAgICAgIHByb3RvY29sID0gJ2h0dHBzOic7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnN0IGhvc3RBbmRQYXRoOiBzdHJpbmcgPSB0aGlzLl9jb25maWcuaG9zdEFuZFBhdGggfHwgJ21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvanMnO1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiB7W2tleTogc3RyaW5nXTogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPn0gPSB7XG4gICAgICB2OiB0aGlzLl9jb25maWcuYXBpVmVyc2lvbiB8fCAncXVhcnRlcmx5JyxcbiAgICAgIGNhbGxiYWNrOiBjYWxsYmFja05hbWUsXG4gICAgICBrZXk6IHRoaXMuX2NvbmZpZy5hcGlLZXksXG4gICAgICBjbGllbnQ6IHRoaXMuX2NvbmZpZy5jbGllbnRJZCxcbiAgICAgIGNoYW5uZWw6IHRoaXMuX2NvbmZpZy5jaGFubmVsLFxuICAgICAgbGlicmFyaWVzOiB0aGlzLl9jb25maWcubGlicmFyaWVzLFxuICAgICAgcmVnaW9uOiB0aGlzLl9jb25maWcucmVnaW9uLFxuICAgICAgbGFuZ3VhZ2U6IHRoaXMuX2NvbmZpZy5sYW5ndWFnZSB8fCB0aGlzLmxvY2FsZUlkICE9PSAnZW4tVVMnID8gdGhpcy5sb2NhbGVJZCA6IG51bGwsXG4gICAgfTtcbiAgICBjb25zdCBwYXJhbXM6IHN0cmluZyA9IE9iamVjdC5rZXlzKHF1ZXJ5UGFyYW1zKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGs6IHN0cmluZykgPT4gcXVlcnlQYXJhbXNba10gIT0gbnVsbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKChrOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlbW92ZSBlbXB0eSBhcnJheXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhQXJyYXkuaXNBcnJheShxdWVyeVBhcmFtc1trXSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQXJyYXkuaXNBcnJheShxdWVyeVBhcmFtc1trXSkgJiYgcXVlcnlQYXJhbXNba10ubGVuZ3RoID4gMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChrOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGpvaW4gYXJyYXlzIGFzIGNvbW1hIHNlcGVyYXRlZCBzdHJpbmdzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaSA9IHF1ZXJ5UGFyYW1zW2tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtrZXk6IGssIHZhbHVlOiBpLmpvaW4oJywnKX07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge2tleTogaywgdmFsdWU6IHF1ZXJ5UGFyYW1zW2tdfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGVudHJ5OiB7a2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmd9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7ZW50cnkua2V5fT0ke2VudHJ5LnZhbHVlfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbignJicpO1xuICAgIHJldHVybiBgJHtwcm90b2NvbH0vLyR7aG9zdEFuZFBhdGh9PyR7cGFyYW1zfWA7XG4gIH1cbn1cbiJdfQ==

@@ -74,2 +74,6 @@ import * as tslib_1 from "tslib";

/**
* This event emitter gets emitted when the user clicks twice on the marker.
*/
this.markerDblClick = new EventEmitter();
/**
* This event is fired when the user rightclicks on the marker.

@@ -187,2 +191,6 @@ */

this._observableSubscriptions.push(cs);
var dcs = this._markerManager.createEventObservable('dblclick', this).subscribe(function () {
_this.markerDblClick.emit(null);
});
this._observableSubscriptions.push(dcs);
var rc = this._markerManager.createEventObservable('rightclick', this).subscribe(function () {

@@ -296,2 +304,6 @@ _this.markerRightClick.emit(null);

tslib_1.__metadata("design:type", EventEmitter)
], AgmMarker.prototype, "markerDblClick", void 0);
tslib_1.__decorate([
Output(),
tslib_1.__metadata("design:type", EventEmitter)
], AgmMarker.prototype, "markerRightClick", void 0);

@@ -339,2 +351,2 @@ tslib_1.__decorate([

export { AgmMarker };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFnbS9jb3JlLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9tYXJrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBb0IsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBd0IsTUFBTSxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFjLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLHdCQUF3QixDQUFDO0FBRTdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUVqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQVlIO0lBc0hFLG1CQUFvQixjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQWpHakQ7O1dBRUc7UUFDSCwyQ0FBMkM7UUFDakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQU81Qzs7V0FFRztRQUNNLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFeEI7O1dBRUc7UUFDTSxtQkFBYyxHQUFHLElBQUksQ0FBQztRQUUvQjs7V0FFRztRQUNNLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFFckI7Ozs7O1dBS0c7UUFDTSxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXBCOztXQUVHO1FBQ0gsMkNBQTJDO1FBQ2pCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFRM0M7Ozs7V0FJRztRQUNPLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUUxRDs7V0FFRztRQUNPLGdCQUFXLEdBQTRCLElBQUksWUFBWSxFQUFhLENBQUM7UUFFL0U7O1dBRUc7UUFDTyxxQkFBZ0IsR0FBdUIsSUFBSSxZ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ZUFBZSxDQUFDLGFBQWEsQ0FBQzswQ0FBYSxTQUFTO2lEQUFpRDtJQTlHM0YsU0FBUztRQVhyQixTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsWUFBWTtZQUN0QixTQUFTLEVBQUU7Z0JBQ1QsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsV0FBUyxFQUFULENBQVMsQ0FBQyxFQUFDO2FBQ3ZFO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxTQUFTO2dCQUNsRixnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxXQUFXO2FBQzlEO1lBQ0QsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUM7U0FDbEYsQ0FBQztpREF1SG9DLGFBQWE7T0F0SHRDLFNBQVMsQ0F3UXJCO0lBQUQsZ0JBQUM7Q0FBQSxBQXhRRCxJQXdRQztTQXhRWSxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgU2ltcGxlQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hcmtlckxhYmVsLCBNb3VzZUV2ZW50IH0gZnJvbSAnLi4vbWFwLXR5cGVzJztcbmltcG9ydCB7IEZpdEJvdW5kc0FjY2Vzc29yLCBGaXRCb3VuZHNEZXRhaWxzIH0gZnJvbSAnLi4vc2VydmljZXMvZml0LWJvdW5kcyc7XG5pbXBvcnQgKiBhcyBtYXBUeXBlcyBmcm9tICcuLi9zZXJ2aWNlcy9nb29nbGUtbWFwcy10eXBlcyc7XG5pbXBvcnQgeyBNYXJrZXJNYW5hZ2VyIH0gZnJvbSAnLi4vc2VydmljZXMvbWFuYWdlcnMvbWFya2VyLW1hbmFnZXInO1xuaW1wb3J0IHsgQWdtSW5mb1dpbmRvdyB9IGZyb20gJy4vaW5mby13aW5kb3cnO1xuXG5sZXQgbWFya2VySWQgPSAwO1xuXG4vKipcbiAqIEFnbU1hcmtlciByZW5kZXJzIGEgbWFwIG1hcmtlciBpbnNpZGUgYSB7QGxpbmsgQWdtTWFwfS5cbiAqXG4gKiAjIyMgRXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gKlxuICogQENvbXBvbmVudCh7XG4gKiAgc2VsZWN0b3I6ICdteS1tYXAtY21wJyxcbiAqICBzdHlsZXM6IFtgXG4gKiAgICAuYWdtLW1hcC1jb250YWluZXIge1xuICogICAgICBoZWlnaHQ6IDMwMHB4O1xuICogICAgfVxuICogYF0sXG4gKiAgdGVtcGxhdGU6IGBcbiAqICAgIDxhZ20tbWFwIFtsYXRpdHVkZV09XCJsYXRcIiBbbG9uZ2l0dWRlXT1cImxuZ1wiIFt6b29tXT1cInpvb21cIj5cbiAqICAgICAgPGFnbS1tYXJrZXIgW2xhdGl0dWRlXT1cImxhdFwiIFtsb25naXR1ZGVdPVwibG5nXCIgW2xhYmVsXT1cIidNJ1wiPlxuICogICAgICA8L2FnbS1tYXJrZXI+XG4gKiAgICA8L2FnbS1tYXA+XG4gKiAgYFxuICogfSlcbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhZ20tbWFya2VyJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge3Byb3ZpZGU6IEZpdEJvdW5kc0FjY2Vzc29yLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBZ21NYXJrZXIpfSxcbiAgXSxcbiAgaW5wdXRzOiBbXG4gICAgJ2xhdGl0dWRlJywgJ2xvbmdpdHVkZScsICd0aXRsZScsICdsYWJlbCcsICdkcmFnZ2FibGU6IG1hcmtlckRyYWdnYWJsZScsICdpY29uVXJsJyxcbiAgICAnb3BlbkluZm9XaW5kb3cnLCAnb3BhY2l0eScsICd2aXNpYmxlJywgJ3pJbmRleCcsICdhbmltYXRpb24nLFxuICBdLFxuICBvdXRwdXRzOiBbJ21hcmtlckNsaWNrJywgJ2RyYWdTdGFydCcsICdkcmFnJywgJ2RyYWdFbmQnLCAnbW91c2VPdmVyJywgJ21vdXNlT3V0J10sXG59KVxuZXhwb3J0IGNsYXNzIEFnbU1hcmtlciBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBGaXRCb3VuZHNBY2Nlc3NvciB7XG4gIC8qKlxuICAgKiBUaGUgbGF0aXR1ZGUgcG9zaXRpb24gb2YgdGhlIG1hcmtlci5cbiAgICovXG4gIEBJbnB1dCgpIGxhdGl0dWRlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBsb25naXR1ZGUgcG9zaXRpb24gb2YgdGhlIG1hcmtlci5cbiAgICovXG4gIEBJbnB1dCgpIGxvbmdpdHVkZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdGl0bGUgb2YgdGhlIG1hcmtlci5cbiAgICovXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCAoYSBzaW5nbGUgdXBwZXJjYXNlIGNoYXJhY3RlcikgZm9yIHRoZSBtYXJrZXIuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nIHwgTWFya2VyTGFiZWw7XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIHRoZSBtYXJrZXIgY2FuIGJlIGRyYWdnZWQuIERlZmF1bHQgdmFsdWUgaXMgZmFsc2UuXG4gICAqL1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnbWFya2VyRHJhZ2dhYmxlJykgZHJhZ2dhYmxlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEljb24gKHRoZSBVUkwgb2YgdGhlIGltYWdlKSBmb3IgdGhlIGZvcmVncm91bmQuXG4gICAqL1xuICBASW5wdXQoKSBpY29uVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIHRoZSBtYXJrZXIgaXMgdmlzaWJsZVxuICAgKi9cbiAgQElucHV0KCkgdmlzaWJsZSA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBvcGVuIHRoZSBjaGlsZCBpbmZvIHdpbmRvdyB3aGVuIHRoZSBtYXJrZXIgaXMgY2xpY2tlZC5cbiAgICovXG4gIEBJbnB1dCgpIG9wZW5JbmZvV2luZG93ID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhlIG1hcmtlcidzIG9wYWNpdHkgYmV0d2VlbiAwLjAgYW5kIDEuMC5cbiAgICovXG4gIEBJbnB1dCgpIG9wYWNpdHkgPSAxO1xuXG4gIC8qKlxuICAgKiBBbGwgbWFya2VycyBhcmUgZGlzcGxheWVkIG9uIHRoZSBtYXAgaW4gb3JkZXIgb2YgdGhlaXIgekluZGV4LCB3aXRoIGhpZ2hlciB2YWx1ZXMgZGlzcGxheWluZyBpblxuICAgKiBmcm9udCBvZiBtYXJrZXJzIHdpdGggbG93ZXIgdmFsdWVzLiBCeSBkZWZhdWx0LCBtYXJrZXJzIGFyZSBkaXNwbGF5ZWQgYWNjb3JkaW5nIHRvIHRoZWlyXG4gICAqIHZlcnRpY2FsIHBvc2l0aW9uIG9uIHNjcmVlbiwgd2l0aCBsb3dlciBtYXJrZXJzIGFwcGVhcmluZyBpbiBmcm9udCBvZiBtYXJrZXJzIGZ1cnRoZXIgdXAgdGhlXG4gICAqIHNjcmVlbi5cbiAgICovXG4gIEBJbnB1dCgpIHpJbmRleCA9IDE7XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIHRoZSBtYXJrZXIgY2FuIGJlIGNsaWNrZWQuIERlZmF1bHQgdmFsdWUgaXMgdHJ1ZS5cbiAgICovXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdtYXJrZXJDbGlja2FibGUnKSBjbGlja2FibGUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBXaGljaCBhbmltYXRpb24gdG8gcGxheSB3aGVuIG1hcmtlciBpcyBhZGRlZCB0byBhIG1hcC5cbiAgICogVGhpcyBjYW4gYmUgJ0JPVU5DRScgb3IgJ0RST1AnXG4gICAqL1xuICBASW5wdXQoKSBhbmltYXRpb246IEFuaW1hdGlvbjtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSBtYXJrZXIncyBhbmltYXRpb24gcHJvcGVydHkgY2hhbmdlcy5cbiAgICpcbiAgICogQG1lbWJlcm9mIEFnbU1hcmtlclxuICAgKi9cbiAgQE91dHB1dCgpIGFuaW1hdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QW5pbWF0aW9uPigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGVtaXR0ZXIgZ2V0cyBlbWl0dGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIG9uIHRoZSBtYXJrZXIuXG4gICAqL1xuICBAT3V0cHV0KCkgbWFya2VyQ2xpY2s6IEV2ZW50RW1pdHRlcjxBZ21NYXJrZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxBZ21NYXJrZXI+KCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciByaWdodGNsaWNrcyBvbiB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIG1hcmtlclJpZ2h0Q2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIHN0YXJ0cyBkcmFnZ2luZyB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIGRyYWdTdGFydDogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIHJlcGVhdGVkbHkgZmlyZWQgd2hpbGUgdGhlIHVzZXIgZHJhZ3MgdGhlIG1hcmtlci5cbiAgICovXG4gIEBPdXRwdXQoKSBkcmFnOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBzdG9wcyBkcmFnZ2luZyB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIGRyYWdFbmQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vdXNlcyBvdmVyIHRoZSBtYXJrZXIuXG4gICAqL1xuICBAT3V0cHV0KCkgbW91c2VPdmVyOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb3VzZXMgb3V0c2lkZSB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIG1vdXNlT3V0OiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAQ29udGVudENoaWxkcmVuKEFnbUluZm9XaW5kb3cpIGluZm9XaW5kb3c6IFF1ZXJ5TGlzdDxBZ21JbmZvV2luZG93PiA9IG5ldyBRdWVyeUxpc3Q8QWdtSW5mb1dpbmRvdz4oKTtcblxuICBwcml2YXRlIF9tYXJrZXJBZGRlZFRvTWFuZ2VyID0gZmFsc2U7XG4gIHByaXZhdGUgX2lkOiBzdHJpbmc7XG4gIHByaXZhdGUgX29ic2VydmFibGVTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfZml0Qm91bmRzRGV0YWlscyQ6IFJlcGxheVN1YmplY3Q8Rml0Qm91bmRzRGV0YWlscz4gPSBuZXcgUmVwbGF5U3ViamVjdDxGaXRCb3VuZHNEZXRhaWxzPigxKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9tYXJrZXJNYW5hZ2VyOiBNYXJrZXJNYW5hZ2VyKSB7IHRoaXMuX2lkID0gKG1hcmtlcklkKyspLnRvU3RyaW5nKCk7IH1cblxuICAvKiBAaW50ZXJuYWwgKi9cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuaGFuZGxlSW5mb1dpbmRvd1VwZGF0ZSgpO1xuICAgIHRoaXMuaW5mb1dpbmRvdy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmhhbmRsZUluZm9XaW5kb3dVcGRhdGUoKSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUluZm9XaW5kb3dVcGRhdGUoKSB7XG4gICAgaWYgKHRoaXMuaW5mb1dpbmRvdy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIG5vIG1vcmUgdGhhbiBvbmUgaW5mbyB3aW5kb3cuJyk7XG4gICAgfVxuICAgIHRoaXMuaW5mb1dpbmRvdy5mb3JFYWNoKG1hcmtlciA9PiB7XG4gICAgICBtYXJrZXIuaG9zdE1hcmtlciA9IHRoaXM7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IHtba2V5OiBzdHJpbmddOiBTaW1wbGVDaGFuZ2V9KSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmxhdGl0dWRlID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5sYXRpdHVkZSA9IE51bWJlcih0aGlzLmxhdGl0dWRlKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0aGlzLmxvbmdpdHVkZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMubG9uZ2l0dWRlID0gTnVtYmVyKHRoaXMubG9uZ2l0dWRlKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0aGlzLmxhdGl0dWRlICE9PSAnbnVtYmVyJyB8fCB0eXBlb2YgdGhpcy5sb25naXR1ZGUgIT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5fbWFya2VyQWRkZWRUb01hbmdlcikge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci5hZGRNYXJrZXIodGhpcyk7XG4gICAgICB0aGlzLl91cGRhdGVGaXRCb3VuZHNEZXRhaWxzKCk7XG4gICAgICB0aGlzLl9tYXJrZXJBZGRlZFRvTWFuZ2VyID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydsYXRpdHVkZSddIHx8IGNoYW5nZXNbJ2xvbmdpdHVkZSddKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLnVwZGF0ZU1hcmtlclBvc2l0aW9uKHRoaXMpO1xuICAgICAgdGhpcy5fdXBkYXRlRml0Qm91bmRzRGV0YWlscygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sndGl0bGUnXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVUaXRsZSh0aGlzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2xhYmVsJ10pIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIudXBkYXRlTGFiZWwodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydkcmFnZ2FibGUnXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVEcmFnZ2FibGUodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydpY29uVXJsJ10pIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIudXBkYXRlSWNvbih0aGlzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ29wYWNpdHknXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVPcGFjaXR5KHRoaXMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sndmlzaWJsZSddKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLnVwZGF0ZVZpc2libGUodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd6SW5kZXgnXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVaSW5kZXgodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydjbGlja2FibGUnXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVDbGlja2FibGUodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydhbmltYXRpb24nXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVBbmltYXRpb24odGhpcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXRGaXRCb3VuZHNEZXRhaWxzJCgpOiBPYnNlcnZhYmxlPEZpdEJvdW5kc0RldGFpbHM+IHtcbiAgICByZXR1cm4gdGhpcy5fZml0Qm91bmRzRGV0YWlscyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3VwZGF0ZUZpdEJvdW5kc0RldGFpbHMoKSB7XG4gICAgdGhpcy5fZml0Qm91bmRzRGV0YWlscyQubmV4dCh7bGF0TG5nOiB7bGF0OiB0aGlzLmxhdGl0dWRlLCBsbmc6IHRoaXMubG9uZ2l0dWRlfX0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYWRkRXZlbnRMaXN0ZW5lcnMoKSB7XG4gICAgY29uc3QgY3MgPSB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZSgnY2xpY2snLCB0aGlzKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMub3BlbkluZm9XaW5kb3cpIHtcbiAgICAgICAgdGhpcy5pbmZvV2luZG93LmZvckVhY2goaW5mb1dpbmRvdyA9PiBpbmZvV2luZG93Lm9wZW4oKSk7XG4gICAgICB9XG4gICAgICB0aGlzLm1hcmtlckNsaWNrLmVtaXQodGhpcyk7XG4gICAgfSk7XG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMucHVzaChjcyk7XG5cbiAgICBjb25zdCByYyA9IHRoaXMuX21hcmtlck1hbmFnZXIuY3JlYXRlRXZlbnRPYnNlcnZhYmxlKCdyaWdodGNsaWNrJywgdGhpcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubWFya2VyUmlnaHRDbGljay5lbWl0KG51bGwpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2gocmMpO1xuXG4gICAgY29uc3QgZHMgPVxuICAgICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZTxtYXBUeXBlcy5Nb3VzZUV2ZW50PignZHJhZ3N0YXJ0JywgdGhpcylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGU6IG1hcFR5cGVzLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5kcmFnU3RhcnQuZW1pdCh7Y29vcmRzOiB7bGF0OiBlLmxhdExuZy5sYXQoKSwgbG5nOiBlLmxhdExuZy5sbmcoKX19IGFzIE1vdXNlRXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMucHVzaChkcyk7XG5cbiAgICBjb25zdCBkID1cbiAgICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci5jcmVhdGVFdmVudE9ic2VydmFibGU8bWFwVHlwZXMuTW91c2VFdmVudD4oJ2RyYWcnLCB0aGlzKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZTogbWFwVHlwZXMuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmRyYWcuZW1pdCh7Y29vcmRzOiB7bGF0OiBlLmxhdExuZy5sYXQoKSwgbG5nOiBlLmxhdExuZy5sbmcoKX19IGFzIE1vdXNlRXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMucHVzaChkKTtcblxuICAgIGNvbnN0IGRlID1cbiAgICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci5jcmVhdGVFdmVudE9ic2VydmFibGU8bWFwVHlwZXMuTW91c2VFdmVudD4oJ2RyYWdlbmQnLCB0aGlzKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZTogbWFwVHlwZXMuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmRyYWdFbmQuZW1pdCh7Y29vcmRzOiB7bGF0OiBlLmxhdExuZy5sYXQoKSwgbG5nOiBlLmxhdExuZy5sbmcoKX19IGFzIE1vdXNlRXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMucHVzaChkZSk7XG5cbiAgICBjb25zdCBtb3ZlciA9XG4gICAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIuY3JlYXRlRXZlbnRPYnNlcnZhYmxlPG1hcFR5cGVzLk1vdXNlRXZlbnQ+KCdtb3VzZW92ZXInLCB0aGlzKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZTogbWFwVHlwZXMuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm1vdXNlT3Zlci5lbWl0KHtjb29yZHM6IHtsYXQ6IGUubGF0TG5nLmxhdCgpLCBsbmc6IGUubGF0TG5nLmxuZygpfX0gYXMgTW91c2VFdmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZhYmxlU3Vic2NyaXB0aW9ucy5wdXNoKG1vdmVyKTtcblxuICAgIGNvbnN0IG1vdXQgPVxuICAgICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZTxtYXBUeXBlcy5Nb3VzZUV2ZW50PignbW91c2VvdXQnLCB0aGlzKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZTogbWFwVHlwZXMuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLm1vdXNlT3V0LmVtaXQoe2Nvb3Jkczoge2xhdDogZS5sYXRMbmcubGF0KCksIGxuZzogZS5sYXRMbmcubG5nKCl9fSBhcyBNb3VzZUV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2gobW91dCk7XG5cbiAgICBjb25zdCBhbkNobmcgPVxuICAgICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZTx2b2lkPignYW5pbWF0aW9uX2NoYW5nZWQnLCB0aGlzKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uQ2hhbmdlLmVtaXQodGhpcy5hbmltYXRpb24pO1xuICAgICAgICAgICAgfSk7XG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMucHVzaChhbkNobmcpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBpZCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5faWQ7IH1cblxuICAvKiogQGludGVybmFsICovXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7IHJldHVybiAnQWdtTWFya2VyLScgKyB0aGlzLl9pZC50b1N0cmluZygpOyB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLmRlbGV0ZU1hcmtlcih0aGlzKTtcbiAgICAvLyB1bnN1YnNjcmliZSBhbGwgcmVnaXN0ZXJlZCBvYnNlcnZhYmxlIHN1YnNjcmlwdGlvbnNcbiAgICB0aGlzLl9vYnNlcnZhYmxlU3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzKSA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIEFuaW1hdGlvbiA9ICdCT1VOQ0UnIHwgJ0RST1AnIHwgbnVsbDtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFnbS9jb3JlLyIsInNvdXJjZXMiOlsiZGlyZWN0aXZlcy9tYXJrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBb0IsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBd0IsTUFBTSxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFjLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLHdCQUF3QixDQUFDO0FBRTdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlDLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQUVqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQVlIO0lBMkhFLG1CQUFvQixjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQXRHakQ7O1dBRUc7UUFDSCwyQ0FBMkM7UUFDakIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQU81Qzs7V0FFRztRQUNNLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFeEI7O1dBRUc7UUFDTSxtQkFBYyxHQUFHLElBQUksQ0FBQztRQUUvQjs7V0FFRztRQUNNLFlBQU8sR0FBRyxDQUFDLENBQUM7UUFFckI7Ozs7O1dBS0c7UUFDTSxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRXBCOztXQUVHO1FBQ0gsMkNBQTJDO1FBQ2pCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFRM0M7Ozs7V0FJRztRQUNPLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUUxRDs7V0FFRztRQUNPLGdCQUFXLEdBQTRCLElBQUksWUFBWSxFQUFhLENBQUM7UUFFL0U7O1dBRUc7UUFDTyxtQkFBYyxHQUE0QixJQUFJLFlB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RSxHQUNOLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQXNCLFdBQVcsRUFBRSxJQUFJLENBQUM7YUFDOUUsU0FBUyxDQUFDLFVBQUMsQ0FBc0I7WUFDaEMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFnQixDQUFDLENBQUM7UUFDOUYsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXZDLElBQU0sQ0FBQyxHQUNMLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQXNCLE1BQU0sRUFBRSxJQUFJLENBQUM7YUFDekUsU0FBUyxDQUFDLFVBQUMsQ0FBc0I7WUFDaEMsS0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFnQixDQUFDLENBQUM7UUFDekYsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRDLElBQU0sRUFBRSxHQUNOLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQXNCLFNBQVMsRUFBRSxJQUFJLENBQUM7YUFDNUUsU0FBUyxDQUFDLFVBQUMsQ0FBc0I7WUFDaEMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUs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RTswQ0FBYyxZQUFZO2tEQUE0QztJQUtyRTtRQUFULE1BQU0sRUFBRTswQ0FBaUIsWUFBWTtxREFBNEM7SUFLeEU7UUFBVCxNQUFNLEVBQUU7MENBQW1CLFlBQVk7dURBQWtDO0lBS2hFO1FBQVQsTUFBTSxFQUFFOzBDQUFZLFlBQVk7Z0RBQThDO0lBS3JFO1FBQVQsTUFBTSxFQUFFOzBDQUFPLFlBQVk7MkNBQThDO0lBS2hFO1FBQVQsTUFBTSxFQUFFOzBDQUFVLFlBQVk7OENBQThDO0lBS25FO1FBQVQsTUFBTSxFQUFFOzBDQUFZLFlBQVk7Z0RBQThDO0lBS3JFO1FBQVQsTUFBTSxFQUFFOzBDQUFXLFlBQVk7K0NBQThDO0lBRzlDO1FBQS9CLGVBQWUsQ0FBQyxhQUFhLENBQUM7MENBQWEsU0FBUztpREFBaUQ7SUFuSDNGLFNBQVM7UUFYckIsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLFlBQVk7WUFDdEIsU0FBUyxFQUFFO2dCQUNULEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLFdBQVMsRUFBVCxDQUFTLENBQUMsRUFBRTthQUN6RTtZQUNELE1BQU0sRUFBRTtnQkFDTixVQUFVLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsU0FBUztnQkFDbEYsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVzthQUM5RDtZQUNELE9BQU8sRUFBRSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDO1NBQ2xGLENBQUM7aURBNEhvQyxhQUFhO09BM0h0QyxTQUFTLENBa1JyQjtJQUFELGdCQUFDO0NBQUEsQUFsUkQsSUFrUkM7U0FsUlksU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3V0cHV0LCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNb3VzZUV2ZW50IH0gZnJvbSAnLi4vbWFwLXR5cGVzJztcbmltcG9ydCB7IEZpdEJvdW5kc0FjY2Vzc29yLCBGaXRCb3VuZHNEZXRhaWxzIH0gZnJvbSAnLi4vc2VydmljZXMvZml0LWJvdW5kcyc7XG5pbXBvcnQgKiBhcyBtYXBUeXBlcyBmcm9tICcuLi9zZXJ2aWNlcy9nb29nbGUtbWFwcy10eXBlcyc7XG5pbXBvcnQgeyBNYXJrZXJNYW5hZ2VyIH0gZnJvbSAnLi4vc2VydmljZXMvbWFuYWdlcnMvbWFya2VyLW1hbmFnZXInO1xuaW1wb3J0IHsgQWdtSW5mb1dpbmRvdyB9IGZyb20gJy4vaW5mby13aW5kb3cnO1xuXG5sZXQgbWFya2VySWQgPSAwO1xuXG4vKipcbiAqIEFnbU1hcmtlciByZW5kZXJzIGEgbWFwIG1hcmtlciBpbnNpZGUgYSB7QGxpbmsgQWdtTWFwfS5cbiAqXG4gKiAjIyMgRXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4gKlxuICogQENvbXBvbmVudCh7XG4gKiAgc2VsZWN0b3I6ICdteS1tYXAtY21wJyxcbiAqICBzdHlsZXM6IFtgXG4gKiAgICAuYWdtLW1hcC1jb250YWluZXIge1xuICogICAgICBoZWlnaHQ6IDMwMHB4O1xuICogICAgfVxuICogYF0sXG4gKiAgdGVtcGxhdGU6IGBcbiAqICAgIDxhZ20tbWFwIFtsYXRpdHVkZV09XCJsYXRcIiBbbG9uZ2l0dWRlXT1cImxuZ1wiIFt6b29tXT1cInpvb21cIj5cbiAqICAgICAgPGFnbS1tYXJrZXIgW2xhdGl0dWRlXT1cImxhdFwiIFtsb25naXR1ZGVdPVwibG5nXCIgW2xhYmVsXT1cIidNJ1wiPlxuICogICAgICA8L2FnbS1tYXJrZXI+XG4gKiAgICA8L2FnbS1tYXA+XG4gKiAgYFxuICogfSlcbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdhZ20tbWFya2VyJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGaXRCb3VuZHNBY2Nlc3NvciwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQWdtTWFya2VyKSB9LFxuICBdLFxuICBpbnB1dHM6IFtcbiAgICAnbGF0aXR1ZGUnLCAnbG9uZ2l0dWRlJywgJ3RpdGxlJywgJ2xhYmVsJywgJ2RyYWdnYWJsZTogbWFya2VyRHJhZ2dhYmxlJywgJ2ljb25VcmwnLFxuICAgICdvcGVuSW5mb1dpbmRvdycsICdvcGFjaXR5JywgJ3Zpc2libGUnLCAnekluZGV4JywgJ2FuaW1hdGlvbicsXG4gIF0sXG4gIG91dHB1dHM6IFsnbWFya2VyQ2xpY2snLCAnZHJhZ1N0YXJ0JywgJ2RyYWcnLCAnZHJhZ0VuZCcsICdtb3VzZU92ZXInLCAnbW91c2VPdXQnXSxcbn0pXG5leHBvcnQgY2xhc3MgQWdtTWFya2VyIGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIEZpdEJvdW5kc0FjY2Vzc29yIHtcbiAgLyoqXG4gICAqIFRoZSBsYXRpdHVkZSBwb3NpdGlvbiBvZiB0aGUgbWFya2VyLlxuICAgKi9cbiAgQElucHV0KCkgbGF0aXR1ZGU6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGxvbmdpdHVkZSBwb3NpdGlvbiBvZiB0aGUgbWFya2VyLlxuICAgKi9cbiAgQElucHV0KCkgbG9uZ2l0dWRlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0aXRsZSBvZiB0aGUgbWFya2VyLlxuICAgKi9cbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxhYmVsIChhIHNpbmdsZSB1cHBlcmNhc2UgY2hhcmFjdGVyKSBmb3IgdGhlIG1hcmtlci5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCBtYXBUeXBlcy5NYXJrZXJMYWJlbDtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIG1hcmtlciBjYW4gYmUgZHJhZ2dlZC4gRGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS5cbiAgICovXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdtYXJrZXJEcmFnZ2FibGUnKSBkcmFnZ2FibGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogSWNvbiAodGhlIFVSTCBvZiB0aGUgaW1hZ2UpIGZvciB0aGUgZm9yZWdyb3VuZC5cbiAgICovXG4gIEBJbnB1dCgpIGljb25Vcmw6IHN0cmluZztcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIG1hcmtlciBpcyB2aXNpYmxlXG4gICAqL1xuICBASW5wdXQoKSB2aXNpYmxlID0gdHJ1ZTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBhdXRvbWF0aWNhbGx5IG9wZW4gdGhlIGNoaWxkIGluZm8gd2luZG93IHdoZW4gdGhlIG1hcmtlciBpcyBjbGlja2VkLlxuICAgKi9cbiAgQElucHV0KCkgb3BlbkluZm9XaW5kb3cgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBUaGUgbWFya2VyJ3Mgb3BhY2l0eSBiZXR3ZWVuIDAuMCBhbmQgMS4wLlxuICAgKi9cbiAgQElucHV0KCkgb3BhY2l0eSA9IDE7XG5cbiAgLyoqXG4gICAqIEFsbCBtYXJrZXJzIGFyZSBkaXNwbGF5ZWQgb24gdGhlIG1hcCBpbiBvcmRlciBvZiB0aGVpciB6SW5kZXgsIHdpdGggaGlnaGVyIHZhbHVlcyBkaXNwbGF5aW5nIGluXG4gICAqIGZyb250IG9mIG1hcmtlcnMgd2l0aCBsb3dlciB2YWx1ZXMuIEJ5IGRlZmF1bHQsIG1hcmtlcnMgYXJlIGRpc3BsYXllZCBhY2NvcmRpbmcgdG8gdGhlaXJcbiAgICogdmVydGljYWwgcG9zaXRpb24gb24gc2NyZWVuLCB3aXRoIGxvd2VyIG1hcmtlcnMgYXBwZWFyaW5nIGluIGZyb250IG9mIG1hcmtlcnMgZnVydGhlciB1cCB0aGVcbiAgICogc2NyZWVuLlxuICAgKi9cbiAgQElucHV0KCkgekluZGV4ID0gMTtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgdGhlIG1hcmtlciBjYW4gYmUgY2xpY2tlZC4gRGVmYXVsdCB2YWx1ZSBpcyB0cnVlLlxuICAgKi9cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ21hcmtlckNsaWNrYWJsZScpIGNsaWNrYWJsZSA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFdoaWNoIGFuaW1hdGlvbiB0byBwbGF5IHdoZW4gbWFya2VyIGlzIGFkZGVkIHRvIGEgbWFwLlxuICAgKiBUaGlzIGNhbiBiZSAnQk9VTkNFJyBvciAnRFJPUCdcbiAgICovXG4gIEBJbnB1dCgpIGFuaW1hdGlvbjogQW5pbWF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIG1hcmtlcidzIGFuaW1hdGlvbiBwcm9wZXJ0eSBjaGFuZ2VzLlxuICAgKlxuICAgKiBAbWVtYmVyb2YgQWdtTWFya2VyXG4gICAqL1xuICBAT3V0cHV0KCkgYW5pbWF0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBbmltYXRpb24+KCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgZW1pdHRlciBnZXRzIGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBjbGlja3Mgb24gdGhlIG1hcmtlci5cbiAgICovXG4gIEBPdXRwdXQoKSBtYXJrZXJDbGljazogRXZlbnRFbWl0dGVyPEFnbU1hcmtlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFnbU1hcmtlcj4oKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBlbWl0dGVyIGdldHMgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyB0d2ljZSBvbiB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIG1hcmtlckRibENsaWNrOiBFdmVudEVtaXR0ZXI8QWdtTWFya2VyPiA9IG5ldyBFdmVudEVtaXR0ZXI8QWdtTWFya2VyPigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgcmlnaHRjbGlja3Mgb24gdGhlIG1hcmtlci5cbiAgICovXG4gIEBPdXRwdXQoKSBtYXJrZXJSaWdodENsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBzdGFydHMgZHJhZ2dpbmcgdGhlIG1hcmtlci5cbiAgICovXG4gIEBPdXRwdXQoKSBkcmFnU3RhcnQ6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAvKipcbiAgICogVGhpcyBldmVudCBpcyByZXBlYXRlZGx5IGZpcmVkIHdoaWxlIHRoZSB1c2VyIGRyYWdzIHRoZSBtYXJrZXIuXG4gICAqL1xuICBAT3V0cHV0KCkgZHJhZzogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgc3RvcHMgZHJhZ2dpbmcgdGhlIG1hcmtlci5cbiAgICovXG4gIEBPdXRwdXQoKSBkcmFnRW5kOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGUgdXNlciBtb3VzZXMgb3ZlciB0aGUgbWFya2VyLlxuICAgKi9cbiAgQE91dHB1dCgpIG1vdXNlT3ZlcjogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW91c2VzIG91dHNpZGUgdGhlIG1hcmtlci5cbiAgICovXG4gIEBPdXRwdXQoKSBtb3VzZU91dDogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihBZ21JbmZvV2luZG93KSBpbmZvV2luZG93OiBRdWVyeUxpc3Q8QWdtSW5mb1dpbmRvdz4gPSBuZXcgUXVlcnlMaXN0PEFnbUluZm9XaW5kb3c+KCk7XG5cbiAgcHJpdmF0ZSBfbWFya2VyQWRkZWRUb01hbmdlciA9IGZhbHNlO1xuICBwcml2YXRlIF9pZDogc3RyaW5nO1xuICBwcml2YXRlIF9vYnNlcnZhYmxlU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2ZpdEJvdW5kc0RldGFpbHMkOiBSZXBsYXlTdWJqZWN0PEZpdEJvdW5kc0RldGFpbHM+ID0gbmV3IFJlcGxheVN1YmplY3Q8Rml0Qm91bmRzRGV0YWlscz4oMSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbWFya2VyTWFuYWdlcjogTWFya2VyTWFuYWdlcikgeyB0aGlzLl9pZCA9IChtYXJrZXJJZCsrKS50b1N0cmluZygpOyB9XG5cbiAgLyogQGludGVybmFsICovXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmhhbmRsZUluZm9XaW5kb3dVcGRhdGUoKTtcbiAgICB0aGlzLmluZm9XaW5kb3cuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5oYW5kbGVJbmZvV2luZG93VXBkYXRlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbmZvV2luZG93VXBkYXRlKCkge1xuICAgIGlmICh0aGlzLmluZm9XaW5kb3cubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBubyBtb3JlIHRoYW4gb25lIGluZm8gd2luZG93LicpO1xuICAgIH1cbiAgICB0aGlzLmluZm9XaW5kb3cuZm9yRWFjaChtYXJrZXIgPT4ge1xuICAgICAgbWFya2VyLmhvc3RNYXJrZXIgPSB0aGlzO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7IFtrZXk6IHN0cmluZ106IFNpbXBsZUNoYW5nZSB9KSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLmxhdGl0dWRlID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5sYXRpdHVkZSA9IE51bWJlcih0aGlzLmxhdGl0dWRlKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0aGlzLmxvbmdpdHVkZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMubG9uZ2l0dWRlID0gTnVtYmVyKHRoaXMubG9uZ2l0dWRlKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0aGlzLmxhdGl0dWRlICE9PSAnbnVtYmVyJyB8fCB0eXBlb2YgdGhpcy5sb25naXR1ZGUgIT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghdGhpcy5fbWFya2VyQWRkZWRUb01hbmdlcikge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci5hZGRNYXJrZXIodGhpcyk7XG4gICAgICB0aGlzLl91cGRhdGVGaXRCb3VuZHNEZXRhaWxzKCk7XG4gICAgICB0aGlzLl9tYXJrZXJBZGRlZFRvTWFuZ2VyID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2FkZEV2ZW50TGlzdGVuZXJzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydsYXRpdHVkZSddIHx8IGNoYW5nZXNbJ2xvbmdpdHVkZSddKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLnVwZGF0ZU1hcmtlclBvc2l0aW9uKHRoaXMpO1xuICAgICAgdGhpcy5fdXBkYXRlRml0Qm91bmRzRGV0YWlscygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sndGl0bGUnXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVUaXRsZSh0aGlzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2xhYmVsJ10pIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIudXBkYXRlTGFiZWwodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydkcmFnZ2FibGUnXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVEcmFnZ2FibGUodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydpY29uVXJsJ10pIHtcbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIudXBkYXRlSWNvbih0aGlzKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ29wYWNpdHknXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVPcGFjaXR5KHRoaXMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sndmlzaWJsZSddKSB7XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLnVwZGF0ZVZpc2libGUodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd6SW5kZXgnXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVaSW5kZXgodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydjbGlja2FibGUnXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVDbGlja2FibGUodGhpcyk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydhbmltYXRpb24nXSkge1xuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci51cGRhdGVBbmltYXRpb24odGhpcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXRGaXRCb3VuZHNEZXRhaWxzJCgpOiBPYnNlcnZhYmxlPEZpdEJvdW5kc0RldGFpbHM+IHtcbiAgICByZXR1cm4gdGhpcy5fZml0Qm91bmRzRGV0YWlscyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX3VwZGF0ZUZpdEJvdW5kc0RldGFpbHMoKSB7XG4gICAgdGhpcy5fZml0Qm91bmRzRGV0YWlscyQubmV4dCh7IGxhdExuZzogeyBsYXQ6IHRoaXMubGF0aXR1ZGUsIGxuZzogdGhpcy5sb25naXR1ZGUgfSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZEV2ZW50TGlzdGVuZXJzKCkge1xuICAgIGNvbnN0IGNzID0gdGhpcy5fbWFya2VyTWFuYWdlci5jcmVhdGVFdmVudE9ic2VydmFibGUoJ2NsaWNrJywgdGhpcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLm9wZW5JbmZvV2luZG93KSB7XG4gICAgICAgIHRoaXMuaW5mb1dpbmRvdy5mb3JFYWNoKGluZm9XaW5kb3cgPT4gaW5mb1dpbmRvdy5vcGVuKCkpO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXJrZXJDbGljay5lbWl0KHRoaXMpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2goY3MpO1xuXG4gICAgY29uc3QgZGNzID0gdGhpcy5fbWFya2VyTWFuYWdlci5jcmVhdGVFdmVudE9ic2VydmFibGUoJ2RibGNsaWNrJywgdGhpcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubWFya2VyRGJsQ2xpY2suZW1pdChudWxsKTtcbiAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZhYmxlU3Vic2NyaXB0aW9ucy5wdXNoKGRjcyk7XG5cbiAgICBjb25zdCByYyA9IHRoaXMuX21hcmtlck1hbmFnZXIuY3JlYXRlRXZlbnRPYnNlcnZhYmxlKCdyaWdodGNsaWNrJywgdGhpcykuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMubWFya2VyUmlnaHRDbGljay5lbWl0KG51bGwpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2gocmMpO1xuXG4gICAgY29uc3QgZHMgPVxuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci5jcmVhdGVFdmVudE9ic2VydmFibGU8bWFwVHlwZXMuTW91c2VFdmVudD4oJ2RyYWdzdGFydCcsIHRoaXMpXG4gICAgICAgIC5zdWJzY3JpYmUoKGU6IG1hcFR5cGVzLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmRyYWdTdGFydC5lbWl0KHsgY29vcmRzOiB7IGxhdDogZS5sYXRMbmcubGF0KCksIGxuZzogZS5sYXRMbmcubG5nKCkgfSB9IGFzIE1vdXNlRXZlbnQpO1xuICAgICAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZhYmxlU3Vic2NyaXB0aW9ucy5wdXNoKGRzKTtcblxuICAgIGNvbnN0IGQgPVxuICAgICAgdGhpcy5fbWFya2VyTWFuYWdlci5jcmVhdGVFdmVudE9ic2VydmFibGU8bWFwVHlwZXMuTW91c2VFdmVudD4oJ2RyYWcnLCB0aGlzKVxuICAgICAgICAuc3Vic2NyaWJlKChlOiBtYXBUeXBlcy5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5kcmFnLmVtaXQoeyBjb29yZHM6IHsgbGF0OiBlLmxhdExuZy5sYXQoKSwgbG5nOiBlLmxhdExuZy5sbmcoKSB9IH0gYXMgTW91c2VFdmVudCk7XG4gICAgICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2goZCk7XG5cbiAgICBjb25zdCBkZSA9XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZTxtYXBUeXBlcy5Nb3VzZUV2ZW50PignZHJhZ2VuZCcsIHRoaXMpXG4gICAgICAgIC5zdWJzY3JpYmUoKGU6IG1hcFR5cGVzLk1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmRyYWdFbmQuZW1pdCh7IGNvb3JkczogeyBsYXQ6IGUubGF0TG5nLmxhdCgpLCBsbmc6IGUubGF0TG5nLmxuZygpIH0gfSBhcyBNb3VzZUV2ZW50KTtcbiAgICAgICAgfSk7XG4gICAgdGhpcy5fb2JzZXJ2YWJsZVN1YnNjcmlwdGlvbnMucHVzaChkZSk7XG5cbiAgICBjb25zdCBtb3ZlciA9XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZTxtYXBUeXBlcy5Nb3VzZUV2ZW50PignbW91c2VvdmVyJywgdGhpcylcbiAgICAgICAgLnN1YnNjcmliZSgoZTogbWFwVHlwZXMuTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMubW91c2VPdmVyLmVtaXQoeyBjb29yZHM6IHsgbGF0OiBlLmxhdExuZy5sYXQoKSwgbG5nOiBlLmxhdExuZy5sbmcoKSB9IH0gYXMgTW91c2VFdmVudCk7XG4gICAgICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLnB1c2gobW92ZXIpO1xuXG4gICAgY29uc3QgbW91dCA9XG4gICAgICB0aGlzLl9tYXJrZXJNYW5hZ2VyLmNyZWF0ZUV2ZW50T2JzZXJ2YWJsZTxtYXBUeXBlcy5Nb3VzZUV2ZW50PignbW91c2VvdXQnLCB0aGlzKVxuICAgICAgICAuc3Vic2NyaWJlKChlOiBtYXBUeXBlcy5Nb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5tb3VzZU91dC5lbWl0KHsgY29vcmRzOiB7IGxhdDogZS5sYXRMbmcubGF0KCksIGxuZzogZS5sYXRMbmcubG5nKCkgfSB9IGFzIE1vdXNlRXZlbnQpO1xuICAgICAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZhYmxlU3Vic2NyaXB0aW9ucy5wdXNoKG1vdXQpO1xuXG4gICAgY29uc3QgYW5DaG5nID1cbiAgICAgIHRoaXMuX21hcmtlck1hbmFnZXIuY3JlYXRlRXZlbnRPYnNlcnZhYmxlPHZvaWQ+KCdhbmltYXRpb25fY2hhbmdlZCcsIHRoaXMpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYW5pbWF0aW9uQ2hhbmdlLmVtaXQodGhpcy5hbmltYXRpb24pO1xuICAgICAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZhYmxlU3Vic2NyaXB0aW9ucy5wdXNoKGFuQ2huZyk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGlkKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLl9pZDsgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHsgcmV0dXJuICdBZ21NYXJrZXItJyArIHRoaXMuX2lkLnRvU3RyaW5nKCk7IH1cblxuICAvKiogQGludGVybmFsICovXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX21hcmtlck1hbmFnZXIuZGVsZXRlTWFya2VyKHRoaXMpO1xuICAgIC8vIHVuc3Vic2NyaWJlIGFsbCByZWdpc3RlcmVkIG9ic2VydmFibGUgc3Vic2NyaXB0aW9uc1xuICAgIHRoaXMuX29ic2VydmFibGVTdWJzY3JpcHRpb25zLmZvckVhY2goKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQW5pbWF0aW9uID0gJ0JPVU5DRScgfCAnRFJPUCcgfCBudWxsO1xuIl19
// main modules
export * from './directives';
export * from './services';
export * from './map-types';
// core module

@@ -8,2 +9,2 @@ // we explicitly export the module here to prevent this Ionic 2 bug:

export { AgmCoreModule } from './core.module';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFlO0FBQ2YsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFNM0IsY0FBYztBQUNkLG9FQUFvRTtBQUNwRSwyRUFBMkU7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIG1haW4gbW9kdWxlc1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAtdHlwZXMnO1xuXG4vLyBHb29nbGUgTWFwcyB0eXBlc1xuZXhwb3J0IHsgTGF0TG5nQm91bmRzLCBMYXRMbmcsIExhdExuZ0xpdGVyYWwsIE1hcFR5cGVTdHlsZSwgUGFkZGluZywgUG9seU1vdXNlRXZlbnQgfSBmcm9tICcuL3NlcnZpY2VzL2dvb2dsZS1tYXBzLXR5cGVzJztcblxuLy8gY29yZSBtb2R1bGVcbi8vIHdlIGV4cGxpY2l0bHkgZXhwb3J0IHRoZSBtb2R1bGUgaGVyZSB0byBwcmV2ZW50IHRoaXMgSW9uaWMgMiBidWc6XG4vLyBodHRwOi8vc3RldmVtaWNoZWxvdHRpLmNvbS9pbnRlZ3JhdGUtYW5ndWxhci0yLWdvb2dsZS1tYXBzLWludG8taW9uaWMtMi9cbmV4cG9ydCB7IEFnbUNvcmVNb2R1bGUgfSBmcm9tICcuL2NvcmUubW9kdWxlJztcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFlO0FBQ2YsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxhQUFhLENBQUM7QUFFNUIsY0FBYztBQUNkLG9FQUFvRTtBQUNwRSwyRUFBMkU7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIG1haW4gbW9kdWxlc1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tYXAtdHlwZXMnO1xuXG4vLyBjb3JlIG1vZHVsZVxuLy8gd2UgZXhwbGljaXRseSBleHBvcnQgdGhlIG1vZHVsZSBoZXJlIHRvIHByZXZlbnQgdGhpcyBJb25pYyAyIGJ1Zzpcbi8vIGh0dHA6Ly9zdGV2ZW1pY2hlbG90dGkuY29tL2ludGVncmF0ZS1hbmd1bGFyLTItZ29vZ2xlLW1hcHMtaW50by1pb25pYy0yL1xuZXhwb3J0IHsgQWdtQ29yZU1vZHVsZSB9IGZyb20gJy4vY29yZS5tb2R1bGUnO1xuIl19

@@ -1,1 +0,3 @@

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXR5cGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFnbS9jb3JlLyIsInNvdXJjZXMiOlsibWFwLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXRMbmdMaXRlcmFsIH0gZnJvbSAnLi9zZXJ2aWNlcy9nb29nbGUtbWFwcy10eXBlcyc7XG5cbi8vIGV4cG9ydGVkIG1hcCB0eXBlc1xuZXhwb3J0IHtcbiAgS21sTW91c2VFdmVudCxcbiAgRGF0YU1vdXNlRXZlbnQsXG4gIExhdExuZ0JvdW5kcyxcbiAgTGF0TG5nQm91bmRzTGl0ZXJhbCxcbiAgTGF0TG5nTGl0ZXJhbCxcbiAgUG9seU1vdXNlRXZlbnQsXG4gIE1hcmtlckxhYmVsLFxufSBmcm9tICcuL3NlcnZpY2VzL2dvb2dsZS1tYXBzLXR5cGVzJztcblxuLyoqXG4gKiBNb3VzZUV2ZW50IGdldHMgZW1pdHRlZCB3aGVuIHRoZSB1c2VyIHRyaWdnZXJzIG1vdXNlIGV2ZW50cyBvbiB0aGUgbWFwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vdXNlRXZlbnQge1xuICBjb29yZHM6IExhdExuZ0xpdGVyYWw7XG4gIHBsYWNlSWQ/OiBzdHJpbmc7XG59XG4iXX0=
// exported map types
export { GeocoderLocationType, GeocoderStatus, ControlPosition, MapTypeId, ScaleControlStyle, ZoomControlStyle, } from './services/google-maps-types';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXR5cGVzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFnbS9jb3JlLyIsInNvdXJjZXMiOlsibWFwLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLHFCQUFxQjtBQUNyQixPQUFPLEVBYUwsb0JBQW9CLEVBR3BCLGNBQWMsRUFHZCxlQUFlLEVBS2YsU0FBUyxFQUVULGlCQUFpQixFQUdqQixnQkFBZ0IsR0FZakIsTUFBTSw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhdExuZ0xpdGVyYWwgfSBmcm9tICcuL3NlcnZpY2VzL2dvb2dsZS1tYXBzLXR5cGVzJztcblxuLy8gZXhwb3J0ZWQgbWFwIHR5cGVzXG5leHBvcnQge1xuICBLbWxNb3VzZUV2ZW50LFxuICBEYXRhTW91c2VFdmVudCxcbiAgTGF0TG5nQm91bmRzLFxuICBMYXRMbmdCb3VuZHNMaXRlcmFsLFxuICBMYXRMbmcsXG4gIExhdExuZ0xpdGVyYWwsXG4gIFBvbHlNb3VzZUV2ZW50LFxuICBNYXJrZXJMYWJlbCxcbiAgR2VvY29kZXIsXG4gIEdlb2NvZGVyQWRkcmVzc0NvbXBvbmVudCxcbiAgR2VvY29kZXJDb21wb25lbnRSZXN0cmljdGlvbnMsXG4gIEdlb2NvZGVyR2VvbWV0cnksXG4gIEdlb2NvZGVyTG9jYXRpb25UeXBlLFxuICBHZW9jb2RlclJlcXVlc3QsXG4gIEdlb2NvZGVyUmVzdWx0LFxuICBHZW9jb2RlclN0YXR1cyxcbiAgTWFwVHlwZVN0eWxlLFxuICBQYWRkaW5nLFxuICBDb250cm9sUG9zaXRpb24sXG4gIE92ZXJ2aWV3TWFwQ29udHJvbE9wdGlvbnMsXG4gIFBhbkNvbnRyb2xPcHRpb25zLFxuICBSb3RhdGVDb250cm9sT3B0aW9ucyxcbiAgTWFwVHlwZUNvbnRyb2xPcHRpb25zLFxuICBNYXBUeXBlSWQsXG4gIFNjYWxlQ29udHJvbE9wdGlvbnMsXG4gIFNjYWxlQ29udHJvbFN0eWxlLFxuICBTdHJlZXRWaWV3Q29udHJvbE9wdGlvbnMsXG4gIFpvb21Db250cm9sT3B0aW9ucyxcbiAgWm9vbUNvbnRyb2xTdHlsZSxcbiAgRnVsbHNjcmVlbkNvbnRyb2xPcHRpb25zLFxuICBDaXJjbGVPcHRpb25zLFxuICBDaXJjbGUsXG4gIFBvbHlsaW5lLFxuICBQb2x5bGluZU9wdGlvbnMsXG4gIFBvbHlnb24sXG4gIFBvbHlnb25PcHRpb25zLFxuICBSZWN0YW5nbGUsXG4gIFJlY3RhbmdsZU9wdGlvbnMsXG4gIE1hcmtlcixcbiAgTWFya2VyT3B0aW9ucyxcbn0gZnJvbSAnLi9zZXJ2aWNlcy9nb29nbGUtbWFwcy10eXBlcyc7XG5cbi8qKlxuICogTW91c2VFdmVudCBnZXRzIGVtaXR0ZWQgd2hlbiB0aGUgdXNlciB0cmlnZ2VycyBtb3VzZSBldmVudHMgb24gdGhlIG1hcC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb3VzZUV2ZW50IHtcbiAgY29vcmRzOiBMYXRMbmdMaXRlcmFsO1xuICBwbGFjZUlkPzogc3RyaW5nO1xufVxuIl19
export { CircleManager } from './services/managers/circle-manager';
export { DataLayerManager } from './services/managers/data-layer-manager';
export { FitBoundsAccessor } from './services/fit-bounds';
export { AgmGeocoder } from './services/geocoder-service';
export { GoogleMapsAPIWrapper } from './services/google-maps-api-wrapper';

@@ -15,2 +16,2 @@ export { GoogleMapsScriptProtocol, LAZY_MAPS_API_CONFIG, LazyMapsAPILoader, } from './services/maps-api-loader/lazy-maps-api-loader';

export { RectangleManager } from './services/managers/rectangle-manager';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLGlCQUFpQixHQUVsQixNQUFNLGlEQUFpRCxDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNwRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ2lyY2xlTWFuYWdlciB9IGZyb20gJy4vc2VydmljZXMvbWFuYWdlcnMvY2lyY2xlLW1hbmFnZXInO1xuZXhwb3J0IHsgRGF0YUxheWVyTWFuYWdlciB9IGZyb20gJy4vc2VydmljZXMvbWFuYWdlcnMvZGF0YS1sYXllci1tYW5hZ2VyJztcbmV4cG9ydCB7IEZpdEJvdW5kc0FjY2Vzc29yLCBGaXRCb3VuZHNEZXRhaWxzIH0gZnJvbSAnLi9zZXJ2aWNlcy9maXQtYm91bmRzJztcbmV4cG9ydCB7IEdvb2dsZU1hcHNBUElXcmFwcGVyIH0gZnJvbSAnLi9zZXJ2aWNlcy9nb29nbGUtbWFwcy1hcGktd3JhcHBlcic7XG5leHBvcnQge1xuICBHb29nbGVNYXBzU2NyaXB0UHJvdG9jb2wsXG4gIExBWllfTUFQU19BUElfQ09ORklHLFxuICBMYXp5TWFwc0FQSUxvYWRlcixcbiAgTGF6eU1hcHNBUElMb2FkZXJDb25maWdMaXRlcmFsLFxufSBmcm9tICcuL3NlcnZpY2VzL21hcHMtYXBpLWxvYWRlci9sYXp5LW1hcHMtYXBpLWxvYWRlcic7XG5leHBvcnQgeyBJbmZvV2luZG93TWFuYWdlciB9IGZyb20gJy4vc2VydmljZXMvbWFuYWdlcnMvaW5mby13aW5kb3ctbWFuYWdlcic7XG5leHBvcnQgeyBLbWxMYXllck1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL2ttbC1sYXllci1tYW5hZ2VyJztcbmV4cG9ydCB7IExheWVyTWFuYWdlciB9IGZyb20gJy4vc2VydmljZXMvbWFuYWdlcnMvbGF5ZXItbWFuYWdlcic7XG5leHBvcnQgeyBNYXBzQVBJTG9hZGVyIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYXBzLWFwaS1sb2FkZXIvbWFwcy1hcGktbG9hZGVyJztcbmV4cG9ydCB7IE1hcmtlck1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL21hcmtlci1tYW5hZ2VyJztcbmV4cG9ydCB7IE5vT3BNYXBzQVBJTG9hZGVyIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYXBzLWFwaS1sb2FkZXIvbm9vcC1tYXBzLWFwaS1sb2FkZXInO1xuZXhwb3J0IHsgUG9seWdvbk1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL3BvbHlnb24tbWFuYWdlcic7XG5leHBvcnQgeyBQb2x5bGluZU1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL3BvbHlsaW5lLW1hbmFnZXInO1xuZXhwb3J0IHsgUmVjdGFuZ2xlTWFuYWdlciB9IGZyb20gJy4vc2VydmljZXMvbWFuYWdlcnMvcmVjdGFuZ2xlLW1hbmFnZXInO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFvQixNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixpQkFBaUIsR0FFbEIsTUFBTSxpREFBaUQsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IENpcmNsZU1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL2NpcmNsZS1tYW5hZ2VyJztcbmV4cG9ydCB7IERhdGFMYXllck1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL2RhdGEtbGF5ZXItbWFuYWdlcic7XG5leHBvcnQgeyBGaXRCb3VuZHNBY2Nlc3NvciwgRml0Qm91bmRzRGV0YWlscyB9IGZyb20gJy4vc2VydmljZXMvZml0LWJvdW5kcyc7XG5leHBvcnQgeyBBZ21HZW9jb2RlciB9IGZyb20gJy4vc2VydmljZXMvZ2VvY29kZXItc2VydmljZSc7XG5leHBvcnQgeyBHb29nbGVNYXBzQVBJV3JhcHBlciB9IGZyb20gJy4vc2VydmljZXMvZ29vZ2xlLW1hcHMtYXBpLXdyYXBwZXInO1xuZXhwb3J0IHtcbiAgR29vZ2xlTWFwc1NjcmlwdFByb3RvY29sLFxuICBMQVpZX01BUFNfQVBJX0NPTkZJRyxcbiAgTGF6eU1hcHNBUElMb2FkZXIsXG4gIExhenlNYXBzQVBJTG9hZGVyQ29uZmlnTGl0ZXJhbCxcbn0gZnJvbSAnLi9zZXJ2aWNlcy9tYXBzLWFwaS1sb2FkZXIvbGF6eS1tYXBzLWFwaS1sb2FkZXInO1xuZXhwb3J0IHsgSW5mb1dpbmRvd01hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL2luZm8td2luZG93LW1hbmFnZXInO1xuZXhwb3J0IHsgS21sTGF5ZXJNYW5hZ2VyIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYW5hZ2Vycy9rbWwtbGF5ZXItbWFuYWdlcic7XG5leHBvcnQgeyBMYXllck1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL2xheWVyLW1hbmFnZXInO1xuZXhwb3J0IHsgTWFwc0FQSUxvYWRlciB9IGZyb20gJy4vc2VydmljZXMvbWFwcy1hcGktbG9hZGVyL21hcHMtYXBpLWxvYWRlcic7XG5leHBvcnQgeyBNYXJrZXJNYW5hZ2VyIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYW5hZ2Vycy9tYXJrZXItbWFuYWdlcic7XG5leHBvcnQgeyBOb09wTWFwc0FQSUxvYWRlciB9IGZyb20gJy4vc2VydmljZXMvbWFwcy1hcGktbG9hZGVyL25vb3AtbWFwcy1hcGktbG9hZGVyJztcbmV4cG9ydCB7IFBvbHlnb25NYW5hZ2VyIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYW5hZ2Vycy9wb2x5Z29uLW1hbmFnZXInO1xuZXhwb3J0IHsgUG9seWxpbmVNYW5hZ2VyIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYW5hZ2Vycy9wb2x5bGluZS1tYW5hZ2VyJztcbmV4cG9ydCB7IFJlY3RhbmdsZU1hbmFnZXIgfSBmcm9tICcuL3NlcnZpY2VzL21hbmFnZXJzL3JlY3RhbmdsZS1tYW5hZ2VyJztcbiJdfQ==

@@ -28,3 +28,6 @@ import * as tslib_1 from "tslib";

GoogleMapsAPIWrapper.prototype.setMapOptions = function (options) {
this._map.then(function (m) { m.setOptions(options); });
var _this = this;
return this._zone.runOutsideAngular(function () {
_this._map.then(function (m) { m.setOptions(options); });
});
};

@@ -35,13 +38,19 @@ /**

GoogleMapsAPIWrapper.prototype.createMarker = function (options, addToMap) {
var _this = this;
if (options === void 0) { options = {}; }
if (addToMap === void 0) { addToMap = true; }
return this._map.then(function (map) {
if (addToMap) {
options.map = map;
}
return new google.maps.Marker(options);
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) {
if (addToMap) {
options.map = map;
}
return new google.maps.Marker(options);
});
});
};
GoogleMapsAPIWrapper.prototype.createInfoWindow = function (options) {
return this._map.then(function () { return new google.maps.InfoWindow(options); });
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function () { return new google.maps.InfoWindow(options); });
});
};

@@ -52,8 +61,11 @@ /**

GoogleMapsAPIWrapper.prototype.createCircle = function (options) {
return this._map.then(function (map) {
if (typeof options.strokePosition === 'string') {
options.strokePosition = google.maps.StrokePosition[options.strokePosition];
}
options.map = map;
return new google.maps.Circle(options);
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) {
if (typeof options.strokePosition === 'string') {
options.strokePosition = google.maps.StrokePosition[options.strokePosition];
}
options.map = map;
return new google.maps.Circle(options);
});
});

@@ -65,19 +77,28 @@ };

GoogleMapsAPIWrapper.prototype.createRectangle = function (options) {
return this._map.then(function (map) {
options.map = map;
return new google.maps.Rectangle(options);
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) {
options.map = map;
return new google.maps.Rectangle(options);
});
});
};
GoogleMapsAPIWrapper.prototype.createPolyline = function (options) {
return this.getNativeMap().then(function (map) {
var line = new google.maps.Polyline(options);
line.setMap(map);
return line;
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this.getNativeMap().then(function (map) {
var line = new google.maps.Polyline(options);
line.setMap(map);
return line;
});
});
};
GoogleMapsAPIWrapper.prototype.createPolygon = function (options) {
return this.getNativeMap().then(function (map) {
var polygon = new google.maps.Polygon(options);
polygon.setMap(map);
return polygon;
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this.getNativeMap().then(function (map) {
var polygon = new google.maps.Polygon(options);
polygon.setMap(map);
return polygon;
});
});

@@ -89,6 +110,9 @@ };

GoogleMapsAPIWrapper.prototype.createDataLayer = function (options) {
return this._map.then(function (m) {
var data = new google.maps.Data(options);
data.setMap(m);
return data;
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (m) {
var data = new google.maps.Data(options);
data.setMap(m);
return data;
});
});

@@ -102,6 +126,9 @@ };

GoogleMapsAPIWrapper.prototype.createTransitLayer = function (options) {
return this._map.then(function (map) {
var newLayer = new google.maps.TransitLayer();
newLayer.setMap(options.visible ? map : null);
return newLayer;
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) {
var newLayer = new google.maps.TransitLayer();
newLayer.setMap(options.visible ? map : null);
return newLayer;
});
});

@@ -115,6 +142,9 @@ };

GoogleMapsAPIWrapper.prototype.createBicyclingLayer = function (options) {
return this._map.then(function (map) {
var newLayer = new google.maps.BicyclingLayer();
newLayer.setMap(options.visible ? map : null);
return newLayer;
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) {
var newLayer = new google.maps.BicyclingLayer();
newLayer.setMap(options.visible ? map : null);
return newLayer;
});
});

@@ -137,33 +167,68 @@ };

GoogleMapsAPIWrapper.prototype.clearInstanceListeners = function () {
this._map.then(function (map) {
google.maps.event.clearInstanceListeners(map);
var _this = this;
return this._zone.runOutsideAngular(function () {
_this._map.then(function (map) {
google.maps.event.clearInstanceListeners(map);
});
});
};
GoogleMapsAPIWrapper.prototype.setCenter = function (latLng) {
return this._map.then(function (map) { return map.setCenter(latLng); });
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) { return map.setCenter(latLng); });
});
};
GoogleMapsAPIWrapper.prototype.getZoom = function () { return this._map.then(function (map) { return map.getZoom(); }); };
GoogleMapsAPIWrapper.prototype.getZoom = function () {
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) { return map.getZoom(); });
});
};
GoogleMapsAPIWrapper.prototype.getBounds = function () {
return this._map.then(function (map) { return map.getBounds(); });
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) { return map.getBounds(); });
});
};
GoogleMapsAPIWrapper.prototype.getMapTypeId = function () {
return this._map.then(function (map) { return map.getMapTypeId(); });
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) { return map.getMapTypeId(); });
});
};
GoogleMapsAPIWrapper.prototype.setZoom = function (zoom) {
return this._map.then(function (map) { return map.setZoom(zoom); });
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) { return map.setZoom(zoom); });
});
};
GoogleMapsAPIWrapper.prototype.getCenter = function () {
return this._map.then(function (map) { return map.getCenter(); });
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) { return map.getCenter(); });
});
};
GoogleMapsAPIWrapper.prototype.panTo = function (latLng) {
return this._map.then(function (map) { return map.panTo(latLng); });
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) { return map.panTo(latLng); });
});
};
GoogleMapsAPIWrapper.prototype.panBy = function (x, y) {
return this._map.then(function (map) { return map.panBy(x, y); });
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) { return map.panBy(x, y); });
});
};
GoogleMapsAPIWrapper.prototype.fitBounds = function (latLng, padding) {
return this._map.then(function (map) { return map.fitBounds(latLng, padding); });
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) { return map.fitBounds(latLng, padding); });
});
};
GoogleMapsAPIWrapper.prototype.panToBounds = function (latLng, padding) {
return this._map.then(function (map) { return map.panToBounds(latLng, padding); });
var _this = this;
return this._zone.runOutsideAngular(function () {
return _this._map.then(function (map) { return map.panToBounds(latLng, padding); });
});
};

@@ -191,2 +256,2 @@ /**

export { GoogleMapsAPIWrapper };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtYXBpLXdyYXBwZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9nb29nbGUtbWFwcy1hcGktd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUk1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFLbEU7OztHQUdHO0FBRUg7SUFJRSw4QkFBb0IsT0FBc0IsRUFBVSxLQUFhO1FBQWpFLGlCQUdDO1FBSG1CLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQy9ELElBQUksQ0FBQyxJQUFJO1lBQ0wsSUFBSSxPQUFPLENBQXFCLFVBQUMsT0FBbUIsSUFBTyxLQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCx3Q0FBUyxHQUFULFVBQVUsRUFBZSxFQUFFLFVBQStCO1FBQTFELGlCQVFDO1FBUEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFFO1lBQ25DLE9BQU8sS0FBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0JBQzlCLElBQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNoRCxLQUFJLENBQUMsWUFBWSxDQUFDLEdBQXlCLENBQUMsQ0FBQztnQkFDN0MsT0FBTztZQUNULENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNENBQWEsR0FBYixVQUFjLE9BQTRCO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENB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SSxDQUFDLElBQUksQ0FBQyxVQUFDLEdBQUcsSUFBSyxPQUFBLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFoQyxDQUFnQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsMkNBQVksR0FBWixjQUE4QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRWpFOztPQUVHO0lBQ0gsOENBQWUsR0FBZixVQUFnQixTQUFpQjtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBdkMsQ0FBdUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7O2dCQXJMNEIsYUFBYTtnQkFBaUIsTUFBTTs7SUFKdEQsb0JBQW9CO1FBRGhDLFVBQVUsRUFBRTtpREFLa0IsYUFBYSxFQUFpQixNQUFNO09BSnRELG9CQUFvQixDQTBMaEM7SUFBRCwyQkFBQztDQUFBLEFBMUxELElBMExDO1NBMUxZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0ICogYXMgbWFwVHlwZXMgZnJvbSAnLi9nb29nbGUtbWFwcy10eXBlcyc7XG5pbXBvcnQgeyBQb2x5bGluZSwgUG9seWxpbmVPcHRpb25zIH0gZnJvbSAnLi9nb29nbGUtbWFwcy10eXBlcyc7XG5pbXBvcnQgeyBNYXBzQVBJTG9hZGVyIH0gZnJvbSAnLi9tYXBzLWFwaS1sb2FkZXIvbWFwcy1hcGktbG9hZGVyJztcblxuLy8gdG9kbzogYWRkIHR5cGVzIGZvciB0aGlzXG5kZWNsYXJlIHZhciBnb29nbGU6IGFueTtcblxuLyoqXG4gKiBXcmFwcGVyIGNsYXNzIHRoYXQgaGFuZGxlcyB0aGUgY29tbXVuaWNhdGlvbiB3aXRoIHRoZSBHb29nbGUgTWFwcyBKYXZhc2NyaXB0XG4gKiBBUEkgdjNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdvb2dsZU1hcHNBUElXcmFwcGVyIHtcbiAgcHJpdmF0ZSBfbWFwOiBQcm9taXNlPG1hcFR5cGVzLkdvb2dsZU1hcD47XG4gIHByaXZhdGUgX21hcFJlc29sdmVyOiAodmFsdWU/OiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbG9hZGVyOiBNYXBzQVBJTG9hZGVyLCBwcml2YXRlIF96b25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLl9tYXAgPVxuICAgICAgICBuZXcgUHJvbWlzZTxtYXBUeXBlcy5Hb29nbGVNYXA+KChyZXNvbHZlOiAoKSA9PiB2b2lkKSA9PiB7IHRoaXMuX21hcFJlc29sdmVyID0gcmVzb2x2ZTsgfSk7XG4gIH1cblxuICBjcmVhdGVNYXAoZWw6IEhUTUxFbGVtZW50LCBtYXBPcHRpb25zOiBtYXBUeXBlcy5NYXBPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9sb2FkZXIubG9hZCgpLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBtYXAgPSBuZXcgZ29vZ2xlLm1hcHMuTWFwKGVsLCBtYXBPcHRpb25zKTtcbiAgICAgICAgdGhpcy5fbWFwUmVzb2x2ZXIobWFwIGFzIG1hcFR5cGVzLkdvb2dsZU1hcCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0TWFwT3B0aW9ucyhvcHRpb25zOiBtYXBUeXBlcy5NYXBPcHRpb25zKSB7XG4gICAgdGhpcy5fbWFwLnRoZW4oKG06IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4geyBtLnNldE9wdGlvbnMob3B0aW9ucyk7IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBnb29nbGUgbWFwIG1hcmtlciB3aXRoIHRoZSBtYXAgY29udGV4dFxuICAgKi9cbiAgY3JlYXRlTWFya2VyKG9wdGlvbnM6IG1hcFR5cGVzLk1hcmtlck9wdGlvbnMgPSB7fSBhcyBtYXBUeXBlcy5NYXJrZXJPcHRpb25zLCBhZGRUb01hcDogYm9vbGVhbiA9IHRydWUpOlxuICAgICAgUHJvbWlzZTxtYXBUeXBlcy5NYXJrZXI+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiB7XG4gICAgICBpZiAoYWRkVG9NYXApIHtcbiAgICAgICAgb3B0aW9ucy5tYXAgPSBtYXA7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV3IGdvb2dsZS5tYXBzLk1hcmtlcihvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUluZm9XaW5kb3cob3B0aW9ucz86IG1hcFR5cGVzLkluZm9XaW5kb3dPcHRpb25zKTogUHJvbWlzZTxtYXBUeXBlcy5JbmZvV2luZG93PiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKCgpID0+IHsgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5JbmZvV2luZG93KG9wdGlvbnMpOyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZ29vZ2xlLm1hcC5DaXJjbGUgZm9yIHRoZSBjdXJyZW50IG1hcC5cbiAgICovXG4gIGNyZWF0ZUNpcmNsZShvcHRpb25zOiBtYXBUeXBlcy5DaXJjbGVPcHRpb25zKTogUHJvbWlzZTxtYXBUeXBlcy5DaXJjbGU+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuc3Ryb2tlUG9zaXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIG9wdGlvbnMuc3Ryb2tlUG9zaXRpb24gPSBnb29nbGUubWFwcy5TdHJva2VQb3NpdGlvbltvcHRpb25zLnN0cm9rZVBvc2l0aW9uXTtcbiAgICAgIH1cbiAgICAgIG9wdGlvbnMubWFwID0gbWFwO1xuICAgICAgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5DaXJjbGUob3B0aW9ucyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGdvb2dsZS5tYXAuUmVjdGFuZ2xlIGZvciB0aGUgY3VycmVudCBtYXAuXG4gICAqL1xuICBjcmVhdGVSZWN0YW5nbGUob3B0aW9uczogbWFwVHlwZXMuUmVjdGFuZ2xlT3B0aW9ucyk6IFByb21pc2U8bWFwVHlwZXMuUmVjdGFuZ2xlPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgb3B0aW9ucy5tYXAgPSBtYXA7XG4gICAgICByZXR1cm4gbmV3IGdvb2dsZS5tYXBzLlJlY3RhbmdsZShvcHRpb25zKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVBvbHlsaW5lKG9wdGlvbnM6IFBvbHlsaW5lT3B0aW9ucyk6IFByb21pc2U8UG9seWxpbmU+IHtcbiAgICByZXR1cm4gdGhpcy5nZXROYXRpdmVNYXAoKS50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgbGV0IGxpbmUgPSBuZXcgZ29vZ2xlLm1hcHMuUG9seWxpbmUob3B0aW9ucyk7XG4gICAgICBsaW5lLnNldE1hcChtYXApO1xuICAgICAgcmV0dXJuIGxpbmU7XG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVQb2x5Z29uKG9wdGlvbnM6IG1hcFR5cGVzLlBvbHlnb25PcHRpb25zKTogUHJvbWlzZTxtYXBUeXBlcy5Qb2x5Z29uPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TmF0aXZlTWFwKCkudGhlbigobWFwOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHtcbiAgICAgIGxldCBwb2x5Z29uID0gbmV3IGdvb2dsZS5tYXBzLlBvbHlnb24ob3B0aW9ucyk7XG4gICAgICBwb2x5Z29uLnNldE1hcChtYXApO1xuICAgICAgcmV0dXJuIHBvbHlnb247XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBnb29nbGUubWFwLkRhdGEgbGF5ZXIgZm9yIHRoZSBjdXJyZW50IG1hcFxuICAgKi9cbiAgY3JlYXRlRGF0YUxheWVyKG9wdGlvbnM/OiBtYXBUeXBlcy5EYXRhT3B0aW9ucyk6IFByb21pc2U8bWFwVHlwZXMuRGF0YT4ge1xuICAgIHJldHVybiB0aGlzLl9tYXAudGhlbihtID0+IHtcbiAgICAgIGxldCBkYXRhID0gbmV3IGdvb2dsZS5tYXBzLkRhdGEob3B0aW9ucyk7XG4gICAgICBkYXRhLnNldE1hcChtKTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUcmFuc2l0TGF5ZXIgaW5zdGFuY2UgZm9yIGEgbWFwXG4gICAqIEBwYXJhbSB7VHJhbnNpdExheWVyT3B0aW9uc30gb3B0aW9ucyAtIHVzZWQgZm9yIHNldHRpbmcgbGF5ZXIgb3B0aW9uc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUcmFuc2l0TGF5ZXI+fSBhIG5ldyB0cmFuc2l0IGxheWVyIG9iamVjdFxuICAgKi9cbiAgY3JlYXRlVHJhbnNpdExheWVyKG9wdGlvbnM6IG1hcFR5cGVzLlRyYW5zaXRMYXllck9wdGlvbnMpOiBQcm9taXNlPG1hcFR5cGVzLlRyYW5zaXRMYXllcj57XG4gICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgbGV0IG5ld0xheWVyOiBtYXBUeXBlcy5UcmFuc2l0TGF5ZXIgPSBuZXcgZ29vZ2xlLm1hcHMuVHJhbnNpdExheWVyKCk7XG4gICAgICBuZXdMYXllci5zZXRNYXAob3B0aW9ucy52aXNpYmxlID8gbWFwIDogbnVsbCk7XG4gICAgICByZXR1cm4gbmV3TGF5ZXI7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIEJpY3ljbGluZ0xheWVyIGluc3RhbmNlIGZvciBhIG1hcFxuICAgKiBAcGFyYW0ge0JpY3ljbGluZ0xheWVyT3B0aW9uc30gb3B0aW9ucyAtIHVzZWQgZm9yIHNldHRpbmcgbGF5ZXIgb3B0aW9uc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxCaWN5Y2xpbmdMYXllcj59IGEgbmV3IGJpY3ljbGluZyBsYXllciBvYmplY3RcbiAgICovXG4gIGNyZWF0ZUJpY3ljbGluZ0xheWVyKG9wdGlvbnM6IG1hcFR5cGVzLkJpY3ljbGluZ0xheWVyT3B0aW9ucyk6IFByb21pc2U8bWFwVHlwZXMuQmljeWNsaW5nTGF5ZXI+e1xuICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHtcbiAgICAgIGxldCBuZXdMYXllcjogbWFwVHlwZXMuQmljeWNsaW5nTGF5ZXIgPSBuZXcgZ29vZ2xlLm1hcHMuQmljeWNsaW5nTGF5ZXIoKTtcbiAgICAgIG5ld0xheWVyLnNldE1hcChvcHRpb25zLnZpc2libGUgPyBtYXAgOiBudWxsKTtcbiAgICAgIHJldHVybiBuZXdMYXllcjtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGdpdmVuIGNvb3JkaW5hdGVzIGFyZSBpbnNpdGUgYSBQb2x5Z29uIHBhdGguXG4gICAqL1xuICBjb250YWluc0xvY2F0aW9uKGxhdExuZzogbWFwVHlwZXMuTGF0TG5nTGl0ZXJhbCwgcG9seWdvbjogbWFwVHlwZXMuUG9seWdvbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBnb29nbGUubWFwcy5nZW9tZXRyeS5wb2x5LmNvbnRhaW5zTG9jYXRpb24obGF0TG5nLCBwb2x5Z29uKTtcbiAgfVxuXG4gIHN1YnNjcmliZVRvTWFwRXZlbnQ8RT4oZXZlbnROYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEU+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxFPikgPT4ge1xuICAgICAgdGhpcy5fbWFwLnRoZW4oKG06IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgICBtLmFkZExpc3RlbmVyKGV2ZW50TmFtZSwgKGFyZzogRSkgPT4geyB0aGlzLl96b25lLnJ1bigoKSA9PiBvYnNlcnZlci5uZXh0KGFyZykpOyB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgY2xlYXJJbnN0YW5jZUxpc3RlbmVycygpIHtcbiAgICB0aGlzLl9tYXAudGhlbigobWFwOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHtcbiAgICAgIGdvb2dsZS5tYXBzLmV2ZW50LmNsZWFySW5zdGFuY2VMaXN0ZW5lcnMobWFwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldENlbnRlcihsYXRMbmc6IG1hcFR5cGVzLkxhdExuZ0xpdGVyYWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiBtYXAuc2V0Q2VudGVyKGxhdExuZykpO1xuICB9XG5cbiAgZ2V0Wm9vbSgpOiBQcm9taXNlPG51bWJlcj4geyByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiBtYXAuZ2V0Wm9vbSgpKTsgfVxuXG4gIGdldEJvdW5kcygpOiBQcm9taXNlPG1hcFR5cGVzLkxhdExuZ0JvdW5kcz4ge1xuICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IG1hcC5nZXRCb3VuZHMoKSk7XG4gIH1cblxuICBnZXRNYXBUeXBlSWQoKTogUHJvbWlzZTxtYXBUeXBlcy5NYXBUeXBlSWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiBtYXAuZ2V0TWFwVHlwZUlkKCkpO1xuICB9XG5cbiAgc2V0Wm9vbSh6b29tOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiBtYXAuc2V0Wm9vbSh6b29tKSk7XG4gIH1cblxuICBnZXRDZW50ZXIoKTogUHJvbWlzZTxtYXBUeXBlcy5MYXRMbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiBtYXAuZ2V0Q2VudGVyKCkpO1xuICB9XG5cbiAgcGFuVG8obGF0TG5nOiBtYXBUeXBlcy5MYXRMbmcgfCBtYXBUeXBlcy5MYXRMbmdMaXRlcmFsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXApID0+IG1hcC5wYW5UbyhsYXRMbmcpKTtcbiAgfVxuXG4gIHBhbkJ5KHg6IG51bWJlciwgeTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXApID0+IG1hcC5wYW5CeSh4LCB5KSk7XG4gIH1cblxuICBmaXRCb3VuZHMobGF0TG5nOiBtYXBUeXBlcy5MYXRMbmdCb3VuZHMgfCBtYXBUeXBlcy5MYXRMbmdCb3VuZHNMaXRlcmFsLCBwYWRkaW5nPzogbnVtYmVyIHwgbWFwVHlwZXMuUGFkZGluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwKSA9PiBtYXAuZml0Qm91bmRzKGxhdExuZywgcGFkZGluZykpO1xuICB9XG5cbiAgcGFuVG9Cb3VuZHMobGF0TG5nOiBtYXBUeXBlcy5MYXRMbmdCb3VuZHMgfCBtYXBUeXBlcy5MYXRMbmdCb3VuZHNMaXRlcmFsLCBwYWRkaW5nPzogbnVtYmVyIHwgbWFwVHlwZXMuUGFkZGluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwKSA9PiBtYXAucGFuVG9Cb3VuZHMobGF0TG5nLCBwYWRkaW5nKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgbmF0aXZlIEdvb2dsZSBNYXBzIE1hcCBpbnN0YW5jZS4gQmUgY2FyZWZ1bCB3aGVuIHVzaW5nIHRoaXMgaW5zdGFuY2UgZGlyZWN0bHkuXG4gICAqL1xuICBnZXROYXRpdmVNYXAoKTogUHJvbWlzZTxtYXBUeXBlcy5Hb29nbGVNYXA+IHsgcmV0dXJuIHRoaXMuX21hcDsgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyB0aGUgZ2l2ZW4gZXZlbnQgbmFtZSBvbiB0aGUgbWFwIGluc3RhbmNlLlxuICAgKi9cbiAgdHJpZ2dlck1hcEV2ZW50KGV2ZW50TmFtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtKSA9PiBnb29nbGUubWFwcy5ldmVudC50cmlnZ2VyKG0sIGV2ZW50TmFtZSkpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtYXBpLXdyYXBwZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9nb29nbGUtbWFwcy1hcGktd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUk1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFLbEU7OztHQUdHO0FBRUg7SUFJRSw4QkFBb0IsT0FBc0IsRUFBVSxLQUFhO1FBQWpFLGlCQUdDO1FBSG1CLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFBVSxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQy9ELElBQUksQ0FBQyxJQUFJO1lBQ0wsSUFBSSxPQUFPLENBQXFCLFVBQUMsT0FBbUIsSUFBTyxLQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFRCx3Q0FBUyxHQUFULFVBQVUsRUFBZSxFQUFFLFVBQStCO1FBQTFELGlCQVFDO1FBUEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1lBQ2xDLE9BQU8sS0FBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7Z0JBQzlCLElBQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNoRCxLQUFJLENBQUMsWUFBWSxDQUFDLEdBQXlCLENBQUMsQ0FBQztnQkFDN0MsT0FBTztZQUNULENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNENBQWEsR0FBYixVQUFjLE9BQTRCO1FBQTFDLGlCQUlDO1FBSEMsT0FBTyxJ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QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsRUFBdkMsQ0FBdUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7O2dCQWpPNEIsYUFBYTtnQkFBaUIsTUFBTTs7SUFKdEQsb0JBQW9CO1FBRGhDLFVBQVUsRUFBRTtpREFLa0IsYUFBYSxFQUFpQixNQUFNO09BSnRELG9CQUFvQixDQXNPaEM7SUFBRCwyQkFBQztDQUFBLEFBdE9ELElBc09DO1NBdE9ZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0ICogYXMgbWFwVHlwZXMgZnJvbSAnLi9nb29nbGUtbWFwcy10eXBlcyc7XG5pbXBvcnQgeyBQb2x5bGluZSwgUG9seWxpbmVPcHRpb25zIH0gZnJvbSAnLi9nb29nbGUtbWFwcy10eXBlcyc7XG5pbXBvcnQgeyBNYXBzQVBJTG9hZGVyIH0gZnJvbSAnLi9tYXBzLWFwaS1sb2FkZXIvbWFwcy1hcGktbG9hZGVyJztcblxuLy8gdG9kbzogYWRkIHR5cGVzIGZvciB0aGlzXG5kZWNsYXJlIHZhciBnb29nbGU6IGFueTtcblxuLyoqXG4gKiBXcmFwcGVyIGNsYXNzIHRoYXQgaGFuZGxlcyB0aGUgY29tbXVuaWNhdGlvbiB3aXRoIHRoZSBHb29nbGUgTWFwcyBKYXZhc2NyaXB0XG4gKiBBUEkgdjNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdvb2dsZU1hcHNBUElXcmFwcGVyIHtcbiAgcHJpdmF0ZSBfbWFwOiBQcm9taXNlPG1hcFR5cGVzLkdvb2dsZU1hcD47XG4gIHByaXZhdGUgX21hcFJlc29sdmVyOiAodmFsdWU/OiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfbG9hZGVyOiBNYXBzQVBJTG9hZGVyLCBwcml2YXRlIF96b25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLl9tYXAgPVxuICAgICAgICBuZXcgUHJvbWlzZTxtYXBUeXBlcy5Hb29nbGVNYXA+KChyZXNvbHZlOiAoKSA9PiB2b2lkKSA9PiB7IHRoaXMuX21hcFJlc29sdmVyID0gcmVzb2x2ZTsgfSk7XG4gIH1cblxuICBjcmVhdGVNYXAoZWw6IEhUTUxFbGVtZW50LCBtYXBPcHRpb25zOiBtYXBUeXBlcy5NYXBPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlci5sb2FkKCkudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcCA9IG5ldyBnb29nbGUubWFwcy5NYXAoZWwsIG1hcE9wdGlvbnMpO1xuICAgICAgICB0aGlzLl9tYXBSZXNvbHZlcihtYXAgYXMgbWFwVHlwZXMuR29vZ2xlTWFwKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBzZXRNYXBPcHRpb25zKG9wdGlvbnM6IG1hcFR5cGVzLk1hcE9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLl9tYXAudGhlbigobTogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiB7IG0uc2V0T3B0aW9ucyhvcHRpb25zKTsgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGdvb2dsZSBtYXAgbWFya2VyIHdpdGggdGhlIG1hcCBjb250ZXh0XG4gICAqL1xuICBjcmVhdGVNYXJrZXIob3B0aW9uczogbWFwVHlwZXMuTWFya2VyT3B0aW9ucyA9IHt9IGFzIG1hcFR5cGVzLk1hcmtlck9wdGlvbnMsIGFkZFRvTWFwOiBib29sZWFuID0gdHJ1ZSk6XG4gICAgICBQcm9taXNlPG1hcFR5cGVzLk1hcmtlcj4ge1xuICAgIHJldHVybiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHtcbiAgICAgICAgaWYgKGFkZFRvTWFwKSB7XG4gICAgICAgICAgb3B0aW9ucy5tYXAgPSBtYXA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5NYXJrZXIob3B0aW9ucyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZUluZm9XaW5kb3cob3B0aW9ucz86IG1hcFR5cGVzLkluZm9XaW5kb3dPcHRpb25zKTogUHJvbWlzZTxtYXBUeXBlcy5JbmZvV2luZG93PiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKCgpID0+IHsgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5JbmZvV2luZG93KG9wdGlvbnMpOyB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZ29vZ2xlLm1hcC5DaXJjbGUgZm9yIHRoZSBjdXJyZW50IG1hcC5cbiAgICovXG4gIGNyZWF0ZUNpcmNsZShvcHRpb25zOiBtYXBUeXBlcy5DaXJjbGVPcHRpb25zKTogUHJvbWlzZTxtYXBUeXBlcy5DaXJjbGU+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5zdHJva2VQb3NpdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBvcHRpb25zLnN0cm9rZVBvc2l0aW9uID0gZ29vZ2xlLm1hcHMuU3Ryb2tlUG9zaXRpb25bb3B0aW9ucy5zdHJva2VQb3NpdGlvbl07XG4gICAgICAgIH1cbiAgICAgICAgb3B0aW9ucy5tYXAgPSBtYXA7XG4gICAgICAgIHJldHVybiBuZXcgZ29vZ2xlLm1hcHMuQ2lyY2xlKG9wdGlvbnMpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGdvb2dsZS5tYXAuUmVjdGFuZ2xlIGZvciB0aGUgY3VycmVudCBtYXAuXG4gICAqL1xuICBjcmVhdGVSZWN0YW5nbGUob3B0aW9uczogbWFwVHlwZXMuUmVjdGFuZ2xlT3B0aW9ucyk6IFByb21pc2U8bWFwVHlwZXMuUmVjdGFuZ2xlPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgICBvcHRpb25zLm1hcCA9IG1hcDtcbiAgICAgICAgcmV0dXJuIG5ldyBnb29nbGUubWFwcy5SZWN0YW5nbGUob3B0aW9ucyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVBvbHlsaW5lKG9wdGlvbnM6IFBvbHlsaW5lT3B0aW9ucyk6IFByb21pc2U8UG9seWxpbmU+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5nZXROYXRpdmVNYXAoKS50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgICBsZXQgbGluZSA9IG5ldyBnb29nbGUubWFwcy5Qb2x5bGluZShvcHRpb25zKTtcbiAgICAgICAgbGluZS5zZXRNYXAobWFwKTtcbiAgICAgICAgcmV0dXJuIGxpbmU7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNyZWF0ZVBvbHlnb24ob3B0aW9uczogbWFwVHlwZXMuUG9seWdvbk9wdGlvbnMpOiBQcm9taXNlPG1hcFR5cGVzLlBvbHlnb24+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5nZXROYXRpdmVNYXAoKS50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgICBsZXQgcG9seWdvbiA9IG5ldyBnb29nbGUubWFwcy5Qb2x5Z29uKG9wdGlvbnMpO1xuICAgICAgICBwb2x5Z29uLnNldE1hcChtYXApO1xuICAgICAgICByZXR1cm4gcG9seWdvbjtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgZ29vZ2xlLm1hcC5EYXRhIGxheWVyIGZvciB0aGUgY3VycmVudCBtYXBcbiAgICovXG4gIGNyZWF0ZURhdGFMYXllcihvcHRpb25zPzogbWFwVHlwZXMuRGF0YU9wdGlvbnMpOiBQcm9taXNlPG1hcFR5cGVzLkRhdGE+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4obSA9PiB7XG4gICAgICAgIGxldCBkYXRhID0gbmV3IGdvb2dsZS5tYXBzLkRhdGEob3B0aW9ucyk7XG4gICAgICAgIGRhdGEuc2V0TWFwKG0pO1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBUcmFuc2l0TGF5ZXIgaW5zdGFuY2UgZm9yIGEgbWFwXG4gICAqIEBwYXJhbSB7VHJhbnNpdExheWVyT3B0aW9uc30gb3B0aW9ucyAtIHVzZWQgZm9yIHNldHRpbmcgbGF5ZXIgb3B0aW9uc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUcmFuc2l0TGF5ZXI+fSBhIG5ldyB0cmFuc2l0IGxheWVyIG9iamVjdFxuICAgKi9cbiAgY3JlYXRlVHJhbnNpdExheWVyKG9wdGlvbnM6IG1hcFR5cGVzLlRyYW5zaXRMYXllck9wdGlvbnMpOiBQcm9taXNlPG1hcFR5cGVzLlRyYW5zaXRMYXllcj57XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgICBsZXQgbmV3TGF5ZXI6IG1hcFR5cGVzLlRyYW5zaXRMYXllciA9IG5ldyBnb29nbGUubWFwcy5UcmFuc2l0TGF5ZXIoKTtcbiAgICAgICAgbmV3TGF5ZXIuc2V0TWFwKG9wdGlvbnMudmlzaWJsZSA/IG1hcCA6IG51bGwpO1xuICAgICAgICByZXR1cm4gbmV3TGF5ZXI7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQmljeWNsaW5nTGF5ZXIgaW5zdGFuY2UgZm9yIGEgbWFwXG4gICAqIEBwYXJhbSB7QmljeWNsaW5nTGF5ZXJPcHRpb25zfSBvcHRpb25zIC0gdXNlZCBmb3Igc2V0dGluZyBsYXllciBvcHRpb25zXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEJpY3ljbGluZ0xheWVyPn0gYSBuZXcgYmljeWNsaW5nIGxheWVyIG9iamVjdFxuICAgKi9cbiAgY3JlYXRlQmljeWNsaW5nTGF5ZXIob3B0aW9uczogbWFwVHlwZXMuQmljeWNsaW5nTGF5ZXJPcHRpb25zKTogUHJvbWlzZTxtYXBUeXBlcy5CaWN5Y2xpbmdMYXllcj57XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4ge1xuICAgICAgICBsZXQgbmV3TGF5ZXI6IG1hcFR5cGVzLkJpY3ljbGluZ0xheWVyID0gbmV3IGdvb2dsZS5tYXBzLkJpY3ljbGluZ0xheWVyKCk7XG4gICAgICAgIG5ld0xheWVyLnNldE1hcChvcHRpb25zLnZpc2libGUgPyBtYXAgOiBudWxsKTtcbiAgICAgICAgcmV0dXJuIG5ld0xheWVyO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBnaXZlbiBjb29yZGluYXRlcyBhcmUgaW5zaXRlIGEgUG9seWdvbiBwYXRoLlxuICAgKi9cbiAgY29udGFpbnNMb2NhdGlvbihsYXRMbmc6IG1hcFR5cGVzLkxhdExuZ0xpdGVyYWwsIHBvbHlnb246IG1hcFR5cGVzLlBvbHlnb24pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gZ29vZ2xlLm1hcHMuZ2VvbWV0cnkucG9seS5jb250YWluc0xvY2F0aW9uKGxhdExuZywgcG9seWdvbik7XG4gIH1cblxuICBzdWJzY3JpYmVUb01hcEV2ZW50PEU+KGV2ZW50TmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxFPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8RT4pID0+IHtcbiAgICAgIHRoaXMuX21hcC50aGVuKChtOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IHtcbiAgICAgICAgbS5hZGRMaXN0ZW5lcihldmVudE5hbWUsIChhcmc6IEUpID0+IHsgdGhpcy5fem9uZS5ydW4oKCkgPT4gb2JzZXJ2ZXIubmV4dChhcmcpKTsgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFySW5zdGFuY2VMaXN0ZW5lcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiB7XG4gICAgICAgIGdvb2dsZS5tYXBzLmV2ZW50LmNsZWFySW5zdGFuY2VMaXN0ZW5lcnMobWFwKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0Q2VudGVyKGxhdExuZzogbWFwVHlwZXMuTGF0TG5nTGl0ZXJhbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwOiBtYXBUeXBlcy5Hb29nbGVNYXApID0+IG1hcC5zZXRDZW50ZXIobGF0TG5nKSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRab29tKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4gbWFwLmdldFpvb20oKSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRCb3VuZHMoKTogUHJvbWlzZTxtYXBUeXBlcy5MYXRMbmdCb3VuZHM+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcDogbWFwVHlwZXMuR29vZ2xlTWFwKSA9PiBtYXAuZ2V0Qm91bmRzKCkpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TWFwVHlwZUlkKCk6IFByb21pc2U8bWFwVHlwZXMuTWFwVHlwZUlkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4gbWFwLmdldE1hcFR5cGVJZCgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNldFpvb20oem9vbTogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4gbWFwLnNldFpvb20oem9vbSkpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2VudGVyKCk6IFByb21pc2U8bWFwVHlwZXMuTGF0TG5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX21hcC50aGVuKChtYXA6IG1hcFR5cGVzLkdvb2dsZU1hcCkgPT4gbWFwLmdldENlbnRlcigpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhblRvKGxhdExuZzogbWFwVHlwZXMuTGF0TG5nIHwgbWFwVHlwZXMuTGF0TG5nTGl0ZXJhbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwKSA9PiBtYXAucGFuVG8obGF0TG5nKSk7XG4gICAgfSk7XG4gIH1cblxuICBwYW5CeSh4OiBudW1iZXIsIHk6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobWFwKSA9PiBtYXAucGFuQnkoeCwgeSkpO1xuICAgIH0pO1xuICB9XG5cbiAgZml0Qm91bmRzKGxhdExuZzogbWFwVHlwZXMuTGF0TG5nQm91bmRzIHwgbWFwVHlwZXMuTGF0TG5nQm91bmRzTGl0ZXJhbCwgcGFkZGluZz86IG51bWJlciB8IG1hcFR5cGVzLlBhZGRpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcCkgPT4gbWFwLmZpdEJvdW5kcyhsYXRMbmcsIHBhZGRpbmcpKTtcbiAgICB9KTtcbiAgfVxuXG4gIHBhblRvQm91bmRzKGxhdExuZzogbWFwVHlwZXMuTGF0TG5nQm91bmRzIHwgbWFwVHlwZXMuTGF0TG5nQm91bmRzTGl0ZXJhbCwgcGFkZGluZz86IG51bWJlciB8IG1hcFR5cGVzLlBhZGRpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fbWFwLnRoZW4oKG1hcCkgPT4gbWFwLnBhblRvQm91bmRzKGxhdExuZywgcGFkZGluZykpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIG5hdGl2ZSBHb29nbGUgTWFwcyBNYXAgaW5zdGFuY2UuIEJlIGNhcmVmdWwgd2hlbiB1c2luZyB0aGlzIGluc3RhbmNlIGRpcmVjdGx5LlxuICAgKi9cbiAgZ2V0TmF0aXZlTWFwKCk6IFByb21pc2U8bWFwVHlwZXMuR29vZ2xlTWFwPiB7IHJldHVybiB0aGlzLl9tYXA7IH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgdGhlIGdpdmVuIGV2ZW50IG5hbWUgb24gdGhlIG1hcCBpbnN0YW5jZS5cbiAgICovXG4gIHRyaWdnZXJNYXBFdmVudChldmVudE5hbWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9tYXAudGhlbigobSkgPT4gZ29vZ2xlLm1hcHMuZXZlbnQudHJpZ2dlcihtLCBldmVudE5hbWUpKTtcbiAgfVxufVxuIl19

@@ -44,4 +44,4 @@ export var google;

MapTypeControlStyle[MapTypeControlStyle["DEFAULT"] = 0] = "DEFAULT";
MapTypeControlStyle[MapTypeControlStyle["DROPDOWN_MENU"] = 1] = "DROPDOWN_MENU";
MapTypeControlStyle[MapTypeControlStyle["HORIZONTAL_BAR"] = 2] = "HORIZONTAL_BAR";
MapTypeControlStyle[MapTypeControlStyle["DROPDOWN_MENU"] = 2] = "DROPDOWN_MENU";
MapTypeControlStyle[MapTypeControlStyle["HORIZONTAL_BAR"] = 1] = "HORIZONTAL_BAR";
})(MapTypeControlStyle || (MapTypeControlStyle = {}));

@@ -58,2 +58,19 @@ export var ScaleControlStyle;

})(ZoomControlStyle || (ZoomControlStyle = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtdHlwZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9nb29nbGUtbWFwcy10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBSSxNQUFXLENBQUM7QUFrVHZCLE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIsNkVBQXlCLENBQUE7SUFDekIseUVBQXVCLENBQUE7SUFDdkIsK0NBQVUsQ0FBQTtJQUNWLDJFQUF3QixDQUFBO0lBQ3hCLHVFQUFzQixDQUFBO0FBQ3hCLENBQUMsRUFOVyxVQUFVLEtBQVYsVUFBVSxRQU1yQjtBQXNNRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFOLElBQVksZUFhWDtBQWJELFdBQVksZUFBZTtJQUN6QixxRUFBWSxDQUFBO0lBQ1osNkRBQVEsQ0FBQTtJQUNSLGlFQUFVLENBQUE7SUFDViwrREFBUyxDQUFBO0lBQ1QsbUVBQVcsQ0FBQTtJQUNYLDZEQUFRLENBQUE7SUFDUixtRUFBVyxDQUFBO0lBQ1gsK0RBQVMsQ0FBQTtJQUNULHFFQUFZLENBQUE7SUFDWixxRUFBWSxDQUFBO0lBQ1osb0VBQVcsQ0FBQTtJQUNYLHdFQUFhLENBQUE7QUFDZixDQUFDLEVBYlcsZUFBZSxLQUFmLGVBQWUsUUFhMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQVNYO0FBVEQsV0FBWSxTQUFTO0lBQ25CLHVGQUF1RjtJQUN2Riw2Q0FBTSxDQUFBO0lBQ04sa0RBQWtEO0lBQ2xELCtDQUFPLENBQUE7SUFDUCwrQ0FBK0M7SUFDL0MsbURBQVMsQ0FBQTtJQUNULHlGQUF5RjtJQUN6RiwrQ0FBTyxDQUFBO0FBQ1QsQ0FBQyxFQVRXLFNBQVMsS0FBVCxTQUFTLFFBU3BCO0FBZ0JELE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0IsbUVBQU8sQ0FBQTtJQUNQLCtFQUFhLENBQUE7SUFDYixpRkFBYyxDQUFBO0FBQ2hCLENBQUMsRUFKVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSTlCO0FBOEJELE1BQU0sQ0FBTixJQUFZLGlCQUVYO0FBRkQsV0FBWSxpQkFBaUI7SUFDM0IsK0RBQU8sQ0FBQTtBQUNULENBQUMsRUFGVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRTVCO0FBeUJELE1BQU0sQ0FBTixJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsNkRBQU8sQ0FBQTtJQUNQLHlEQUFLLENBQUE7SUFDTCx5REFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUpXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFJM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIGdvb2dsZTogYW55O1xuXG5leHBvcnQgaW50ZXJmYWNlIE1WQ09iamVjdCB7XG4gIGFkZExpc3RlbmVyKGV2ZW50TmFtZTogc3RyaW5nLCBoYW5kbGVyOiBGdW5jdGlvbik6IE1hcHNFdmVudExpc3RlbmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1WQ0FycmF5PFQ+IGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgY2xlYXIoKTogdm9pZDtcbiAgZ2V0QXJyYXkoKTogQXJyYXk8VD47XG4gIGdldEF0KGk6IG51bWJlcik6IFQ7XG4gIGdldExlbmd0aCgpOiBudW1iZXI7XG4gIGluc2VydEF0KGk6IG51bWJlciwgZWxlbTogVCk6IHZvaWQ7XG4gIHBvcCgpOiBUO1xuICBwdXNoKGVsZW06IFQpOiBudW1iZXI7XG4gIHJlbW92ZUF0KGk6IG51bWJlcik6IFQ7XG4gIHNldEF0KGk6IG51bWJlciwgZWxlbTogVCk6IHZvaWQ7XG4gIC8qIHRzbGludDpkaXNhYmxlICovXG4gIC8qXG4gICogVHNsaW50IGNvbmZpZ3VyYXRpb24gY2hlY2stcGFyYW1ldGVycyB3aWxsIHByb21wdCBlcnJvcnMgZm9yIHRoZXNlIGxpbmVzIG9mIGNvZGUuXG4gICogaHR0cHM6Ly9wYWxhbnRpci5naXRodWIuaW8vdHNsaW50L3J1bGVzL25vLXVudXNlZC12YXJpYWJsZS9cbiAgKi9cbiAgZm9yRWFjaChjYWxsYmFjazogKGVsZW06IFQsIGk6IG51bWJlcikgPT4gdm9pZCk6IHZvaWQ7XG4gIC8qIHRzbGludDplbmFibGUgKi9cbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVNYXAgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBkYXRhPzogRGF0YTtcbiAgcGFuVG8obGF0TG5nOiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsKTogdm9pZDtcbiAgcGFuQnkoeDogbnVtYmVyLCB5OiBudW1iZXIpOiB2b2lkO1xuICBzZXRab29tKHpvb206IG51bWJlcik6IHZvaWQ7XG4gIGdldENlbnRlcigpOiBMYXRMbmc7XG4gIHNldENlbnRlcihsYXRMbmc6IExhdExuZyB8IExhdExuZ0xpdGVyYWwpOiB2b2lkO1xuICBnZXRCb3VuZHMoKTogTGF0TG5nQm91bmRzO1xuICBnZXRNYXBUeXBlSWQoKTogTWFwVHlwZUlkO1xuICBnZXRab29tKCk6IG51bWJlcjtcbiAgc2V0T3B0aW9ucyhvcHRpb25zOiBNYXBPcHRpb25zKTogdm9pZDtcbiAgcGFuVG9Cb3VuZHMobGF0TG5nQm91bmRzOiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsLCBwYWRkaW5nPzogbnVtYmVyIHwgUGFkZGluZyk6IHZvaWQ7XG4gIGZpdEJvdW5kcyhib3VuZHM6IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWwsIHBhZGRpbmc/OiBudW1iZXIgfCBQYWRkaW5nKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXRMbmcge1xuICBsYXQoKTogbnVtYmVyO1xuICBsbmcoKTogbnVtYmVyO1xuICB0b0pTT04oKTogYW55O1xuICB0b1N0cmluZygpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFya2VyIGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgc2V0TWFwKG1hcDogR29vZ2xlTWFwKTogdm9pZDtcbiAgc2V0UG9zaXRpb24obGF0TG5nOiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsKTogdm9pZDtcbiAgc2V0VGl0bGUodGl0bGU6IHN0cmluZyk6IHZvaWQ7XG4gIHNldExhYmVsKGxhYmVsOiBzdHJpbmcgfCBNYXJrZXJMYWJlbCk6IHZvaWQ7XG4gIHNldERyYWdnYWJsZShkcmFnZ2FibGU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRJY29uKGljb246IHN0cmluZyk6IHZvaWQ7XG4gIHNldE9wYWNpdHkob3BhY2l0eTogbnVtYmVyKTogdm9pZDtcbiAgc2V0VmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0WkluZGV4KHpJbmRleDogbnVtYmVyKTogdm9pZDtcbiAgc2V0QW5pbWF0aW9uKGFuaW1hdGlvbjogYW55KTogdm9pZDtcbiAgZ2V0TGFiZWwoKTogTWFya2VyTGFiZWw7XG4gIHNldENsaWNrYWJsZShjbGlja2FibGU6IGJvb2xlYW4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcmtlck9wdGlvbnMge1xuICBwb3NpdGlvbjogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbDtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgbGFiZWw/OiBzdHJpbmcgfCBNYXJrZXJMYWJlbDtcbiAgZHJhZ2dhYmxlPzogYm9vbGVhbjtcbiAgaWNvbj86IHN0cmluZztcbiAgb3BhY2l0eT86IG51bWJlcjtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIHpJbmRleD86IG51bWJlcjtcbiAgY2xpY2thYmxlOiBib29sZWFuO1xuICBhbmltYXRpb24/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFya2VyTGFiZWwge1xuICBjb2xvcjogc3RyaW5nO1xuICBmb250RmFtaWx5OiBzdHJpbmc7XG4gIGZvbnRTaXplOiBzdHJpbmc7XG4gIGZvbnRXZWlnaHQ6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENpcmNsZSBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGdldEJvdW5kcygpOiBMYXRMbmdCb3VuZHM7XG4gIGdldENlbnRlcigpOiBMYXRMbmc7XG4gIGdldERyYWdnYWJsZSgpOiBib29sZWFuO1xuICBnZXRFZGl0YWJsZSgpOiBib29sZWFuO1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBnZXRSYWRpdXMoKTogbnVtYmVyO1xuICBnZXRWaXNpYmxlKCk6IGJvb2xlYW47XG4gIHNldENlbnRlcihjZW50ZXI6IExhdExuZyB8IExhdExuZ0xpdGVyYWwpOiB2b2lkO1xuICBzZXREcmFnZ2FibGUoZHJhZ2dhYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0RWRpdGFibGUoZWRpdGFibGU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRNYXAobWFwOiBHb29nbGVNYXApOiB2b2lkO1xuICBzZXRPcHRpb25zKG9wdGlvbnM6IENpcmNsZU9wdGlvbnMpOiB2b2lkO1xuICBzZXRSYWRpdXMocmFkaXVzOiBudW1iZXIpOiB2b2lkO1xuICBzZXRWaXNpYmxlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENpcmNsZU9wdGlvbnMge1xuICBjZW50ZXI/OiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsO1xuICBjbGlja2FibGU/OiBib29sZWFuO1xuICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG4gIGZpbGxDb2xvcj86IHN0cmluZztcbiAgZmlsbE9wYWNpdHk/OiBudW1iZXI7XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgcmFkaXVzPzogbnVtYmVyO1xuICBzdHJva2VDb2xvcj86IHN0cmluZztcbiAgc3Ryb2tlT3BhY2l0eT86IG51bWJlcjtcbiAgc3Ryb2tlUG9zaXRpb24/OiAnQ0VOVEVSJyB8ICdJTlNJREUnIHwgJ09VVFNJREUnO1xuICBzdHJva2VXZWlnaHQ/OiBudW1iZXI7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjdGFuZ2xlIGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgZ2V0Qm91bmRzKCk6IExhdExuZ0JvdW5kcztcbiAgZ2V0RHJhZ2dhYmxlKCk6IGJvb2xlYW47XG4gIGdldEVkaXRhYmxlKCk6IGJvb2xlYW47XG4gIGdldE1hcCgpOiBHb29nbGVNYXA7XG4gIGdldFZpc2libGUoKTogYm9vbGVhbjtcbiAgc2V0Qm91bmRzKGJvdW5kczogTGF0TG5nQm91bmRzIHwgTGF0TG5nQm91bmRzTGl0ZXJhbCk6IHZvaWQ7XG4gIHNldERyYWdnYWJsZShkcmFnZ2FibGU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRFZGl0YWJsZShlZGl0YWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG4gIHNldE9wdGlvbnMob3B0aW9uczogUmVjdGFuZ2xlT3B0aW9ucyk6IHZvaWQ7XG4gIHNldFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjdGFuZ2xlT3B0aW9ucyB7XG4gIGJvdW5kcz86IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWw7XG4gIGNsaWNrYWJsZT86IGJvb2xlYW47XG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gIGVkaXRhYmxlPzogYm9vbGVhbjtcbiAgZmlsbENvbG9yPzogc3RyaW5nO1xuICBmaWxsT3BhY2l0eT86IG51bWJlcjtcbiAgbWFwPzogR29vZ2xlTWFwO1xuICBzdHJva2VDb2xvcj86IHN0cmluZztcbiAgc3Ryb2tlT3BhY2l0eT86IG51bWJlcjtcbiAgc3Ryb2tlUG9zaXRpb24/OiAnQ0VOVEVSJyB8ICdJTlNJREUnIHwgJ09VVFNJREUnO1xuICBzdHJva2VXZWlnaHQ/OiBudW1iZXI7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF0TG5nQm91bmRzIHtcbiAgY29udGFpbnMobGF0TG5nOiBMYXRMbmcpOiBib29sZWFuO1xuICBlcXVhbHMob3RoZXI6IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWwpOiBib29sZWFuO1xuICBleHRlbmQocG9pbnQ6IExhdExuZyB8IExhdExuZ0xpdGVyYWwpOiB2b2lkO1xuICBnZXRDZW50ZXIoKTogTGF0TG5nO1xuICBnZXROb3J0aEVhc3QoKTogTGF0TG5nO1xuICBnZXRTb3V0aFdlc3QoKTogTGF0TG5nO1xuICBpbnRlcnNlY3RzKG90aGVyOiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsKTogYm9vbGVhbjtcbiAgaXNFbXB0eSgpOiBib29sZWFuO1xuICB0b0pTT04oKTogTGF0TG5nQm91bmRzTGl0ZXJhbDtcbiAgdG9TcGFuKCk6IExhdExuZztcbiAgdG9TdHJpbmcoKTogc3RyaW5nO1xuICB0b1VybFZhbHVlKHByZWNpc2lvbj86IG51bWJlcik6IHN0cmluZztcbiAgdW5pb24ob3RoZXI6IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWwpOiBMYXRMbmdCb3VuZHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFkZGluZyB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIHJpZ2h0OiBudW1iZXI7XG4gIGJvdHRvbTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhdExuZ0JvdW5kc0xpdGVyYWwge1xuICBlYXN0OiBudW1iZXI7XG4gIG5vcnRoOiBudW1iZXI7XG4gIHNvdXRoOiBudW1iZXI7XG4gIHdlc3Q6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXRMbmdMaXRlcmFsIHtcbiAgbGF0OiBudW1iZXI7XG4gIGxuZzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1vdXNlRXZlbnQgeyBsYXRMbmc6IExhdExuZzsgfVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcE9wdGlvbnMge1xuICBjZW50ZXI/OiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsO1xuICB6b29tPzogbnVtYmVyO1xuICBtaW5ab29tPzogbnVtYmVyO1xuICBtYXhab29tPzogbnVtYmVyO1xuICBjb250cm9sU2l6ZT86IG51bWJlcjtcbiAgZGlzYWJsZURvdWJsZUNsaWNrWm9vbT86IGJvb2xlYW47XG4gIGRpc2FibGVEZWZhdWx0VUk/OiBib29sZWFuO1xuICBzY3JvbGx3aGVlbD86IGJvb2xlYW47XG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgZHJhZ2dhYmxlPzogYm9vbGVhbjtcbiAgZHJhZ2dhYmxlQ3Vyc29yPzogc3RyaW5nO1xuICBkcmFnZ2luZ0N1cnNvcj86IHN0cmluZztcbiAga2V5Ym9hcmRTaG9ydGN1dHM/OiBib29sZWFuO1xuICBzdHlsZXM/OiBNYXBUeXBlU3R5bGVbXTtcbiAgem9vbUNvbnRyb2w/OiBib29sZWFuO1xuICB6b29tQ29udHJvbE9wdGlvbnM/OiBab29tQ29udHJvbE9wdGlvbnM7XG4gIHN0cmVldFZpZXdDb250cm9sPzogYm9vbGVhbjtcbiAgc3RyZWV0Vmlld0NvbnRyb2xPcHRpb25zPzogU3RyZWV0Vmlld0NvbnRyb2xPcHRpb25zO1xuICBzY2FsZUNvbnRyb2w/OiBib29sZWFuO1xuICBzY2FsZUNvbnRyb2xPcHRpb25zPzogU2NhbGVDb250cm9sT3B0aW9ucztcbiAgbWFwVHlwZUNvbnRyb2w/OiBib29sZWFuO1xuICBtYXBUeXBlQ29udHJvbE9wdGlvbnM/OiBNYXBUeXBlQ29udHJvbE9wdGlvbnM7XG4gIHBhbkNvbnRyb2w/OiBib29sZWFuO1xuICBwYW5Db250cm9sT3B0aW9ucz86IFBhbkNvbnRyb2xPcHRpb25zO1xuICByb3RhdGVDb250cm9sPzogYm9vbGVhbjtcbiAgcm90YXRlQ29udHJvbE9wdGlvbnM/OiBSb3RhdGVDb250cm9sT3B0aW9ucztcbiAgZnVsbHNjcmVlbkNvbnRyb2w/OiBib29sZWFuO1xuICBmdWxsc2NyZWVuQ29udHJvbE9wdGlvbnM/OiBGdWxsc2NyZWVuQ29udHJvbE9wdGlvbnM7XG4gIG1hcFR5cGVJZD86IHN0cmluZyB8IE1hcFR5cGVJZDtcbiAgY2xpY2thYmxlSWNvbnM/OiBib29sZWFuO1xuICBnZXN0dXJlSGFuZGxpbmc/OiAnY29vcGVyYXRpdmUnIHwgJ2dyZWVkeScgfCAnbm9uZScgfCAnYXV0byc7XG4gIHRpbHQ/OiBudW1iZXI7XG4gIHJlc3RyaWN0aW9uPzogTWFwUmVzdHJpY3Rpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwVHlwZVN0eWxlIHtcbiAgZWxlbWVudFR5cGU/OiAnYWxsJyB8ICdnZW9tZXRyeScgfCAnZ2VvbWV0cnkuZmlsbCcgfCAnZ2VvbWV0cnkuc3Ryb2tlJyB8ICdsYWJlbHMnIHwgJ2xhYmVscy5pY29uJyB8XG4gICAgICAnbGFiZWxzLnRleHQnIHwgJ2xhYmVscy50ZXh0LmZpbGwnIHwgJ2xhYmVscy50ZXh0LnN0cm9rZSc7XG4gIGZlYXR1cmVUeXBlPzogJ2FkbWluaXN0cmF0aXZlJyB8ICdhZG1pbmlzdHJhdGl2ZS5jb3VudHJ5JyB8ICdhZG1pbmlzdHJhdGl2ZS5sYW5kX3BhcmNlbCcgfFxuICAgICAgJ2FkbWluaXN0cmF0aXZlLmxvY2FsaXR5JyB8ICdhZG1pbmlzdHJhdGl2ZS5uZWlnaGJvcmhvb2QnIHwgJ2FkbWluaXN0cmF0aXZlLnByb3ZpbmNlJyB8ICdhbGwnIHxcbiAgICAgICdsYW5kc2NhcGUnIHwgJ2xhbmRzY2FwZS5tYW5fbWFkZScgfCAnbGFuZHNjYXBlLm5hdHVyYWwnIHwgJ2xhbmRzY2FwZS5uYXR1cmFsLmxhbmRjb3ZlcicgfFxuICAgICAgJ2xhbmRzY2FwZS5uYXR1cmFsLnRlcnJhaW4nIHwgJ3BvaScgfCAncG9pLmF0dHJhY3Rpb24nIHwgJ3BvaS5idXNpbmVzcycgfCAncG9pLmdvdmVybm1lbnQnIHxcbiAgICAgICdwb2kubWVkaWNhbCcgfCAncG9pLnBhcmsnIHwgJ3BvaS5wbGFjZV9vZl93b3JzaGlwJyB8ICdwb2kuc2Nob29sJyB8ICdwb2kuc3BvcnRzX2NvbXBsZXgnIHwgJ3JvYWQnIHxcbiAgICAgICdyb2FkLmFydGVyaWFsJyB8ICdyb2FkLmhpZ2h3YXknIHwgJ3JvYWQuaGlnaHdheS5jb250cm9sbGVkX2FjY2VzcycgfCAncm9hZC5sb2NhbCcgfCAndHJhbnNpdCcgfFxuICAgICAgJ3RyYW5zaXQubGluZScgfCAndHJhbnNpdC5zdGF0aW9uJyB8ICd0cmFuc2l0LnN0YXRpb24uYWlycG9ydCcgfCAndHJhbnNpdC5zdGF0aW9uLmJ1cycgfFxuICAgICAgJ3RyYW5zaXQuc3RhdGlvbi5yYWlsJyB8ICd3YXRlcic7XG4gIHN0eWxlcnM6IE1hcFR5cGVTdHlsZXJbXTtcbn1cblxuLyoqXG4gKiAgSWYgbW9yZSB0aGFuIG9uZSBrZXkgaXMgc3BlY2lmaWVkIGluIGEgc2luZ2xlIE1hcFR5cGVTdHlsZXIsIGFsbCBidXQgb25lIHdpbGwgYmUgaWdub3JlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXBUeXBlU3R5bGVyIHtcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGdhbW1hPzogbnVtYmVyO1xuICBodWU/OiBzdHJpbmc7XG4gIGludmVydF9saWdodG5lc3M/OiBib29sZWFuO1xuICBsaWdodG5lc3M/OiBudW1iZXI7XG4gIHNhdHVyYXRpb24/OiBudW1iZXI7XG4gIHZpc2liaWxpdHk/OiBzdHJpbmc7XG4gIHdlaWdodD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmZvV2luZG93IGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgY2xvc2UoKTogdm9pZDtcbiAgZ2V0Q29udGVudCgpOiBzdHJpbmcgfCBOb2RlO1xuICBnZXRQb3NpdGlvbigpOiBMYXRMbmc7XG4gIGdldFpJbmRleCgpOiBudW1iZXI7XG4gIG9wZW4obWFwPzogR29vZ2xlTWFwLCBhbmNob3I/OiBNVkNPYmplY3QpOiB2b2lkO1xuICBzZXRDb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IE5vZGUpOiB2b2lkO1xuICBzZXRPcHRpb25zKG9wdGlvbnM6IEluZm9XaW5kb3dPcHRpb25zKTogdm9pZDtcbiAgc2V0UG9zaXRpb24ocG9zaXRpb246IExhdExuZyB8IExhdExuZ0xpdGVyYWwpOiB2b2lkO1xuICBzZXRaSW5kZXgoekluZGV4OiBudW1iZXIpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcHNFdmVudExpc3RlbmVyIHsgcmVtb3ZlKCk6IHZvaWQ7IH1cblxuZXhwb3J0IGludGVyZmFjZSBTaXplIHtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGVxdWFscyhvdGhlcjogU2l6ZSk6IGJvb2xlYW47XG4gIHRvU3RyaW5nKCk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmZvV2luZG93T3B0aW9ucyB7XG4gIGNvbnRlbnQ/OiBzdHJpbmcgfCBOb2RlO1xuICBkaXNhYmxlQXV0b1Bhbj86IGJvb2xlYW47XG4gIG1heFdpZHRoPzogbnVtYmVyO1xuICBwaXhlbE9mZnNldD86IFNpemU7XG4gIHBvc2l0aW9uPzogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbDtcbiAgekluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50IHtcbiAgeDogbnVtYmVyO1xuICB5OiBudW1iZXI7XG4gIGVxdWFscyhvdGhlcjogUG9pbnQpOiBib29sZWFuO1xuICB0b1N0cmluZygpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlU3ltYm9sIHtcbiAgYW5jaG9yPzogUG9pbnQ7XG4gIGZpbGxDb2xvcj86IHN0cmluZztcbiAgZmlsbE9wYWNpdHk/OiBudW1iZXI7XG4gIGxhYmVsT3JpZ2luPzogUG9pbnQ7XG4gIHBhdGg/OiBzdHJpbmcgfCBTeW1ib2xQYXRoO1xuICByb3RhdGlvbj86IG51bWJlcjtcbiAgc2NhbGU/OiBudW1iZXI7XG4gIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICBzdHJva2VPcGFjaXR5PzogbnVtYmVyO1xuICBzdHJva2VXZWlnaHQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNvblNlcXVlbmNlIHtcbiAgZml4ZWRSb3RhdGlvbj86IGJvb2xlYW47XG4gIGljb24/OiBHb29nbGVTeW1ib2w7XG4gIG9mZnNldD86IHN0cmluZztcbiAgcmVwZWF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBTeW1ib2xQYXRoIHtcbiAgQkFDS1dBUkRfQ0xPU0VEX0FSUk9XID0gMyxcbiAgQkFDS1dBUkRfT1BFTl9BUlJPVyA9IDQsXG4gIENJUkNMRSA9IDAsXG4gIEZPUldBUkRfQ0xPU0VEX0FSUk9XID0gMSxcbiAgRk9SV0FSRF9PUEVOX0FSUk9XID0gMixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2x5bGluZU9wdGlvbnMge1xuICBjbGlja2FibGU/OiBib29sZWFuO1xuICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG4gIGdlb2Rlc2ljPzogYm9vbGVhbjtcbiAgaWNvbnM/OiBBcnJheTxJY29uU2VxdWVuY2U+O1xuICBtYXA/OiBHb29nbGVNYXA7XG4gIHBhdGg/OiBBcnJheTxMYXRMbmc+IHwgQXJyYXk8TGF0TG5nIHwgTGF0TG5nTGl0ZXJhbD47XG4gIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICBzdHJva2VPcGFjaXR5PzogbnVtYmVyO1xuICBzdHJva2VXZWlnaHQ/OiBudW1iZXI7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9seWxpbmUgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBnZXREcmFnZ2FibGUoKTogYm9vbGVhbjtcbiAgZ2V0RWRpdGFibGUoKTogYm9vbGVhbjtcbiAgZ2V0TWFwKCk6IEdvb2dsZU1hcDtcbiAgZ2V0UGF0aCgpOiBNVkNBcnJheTxMYXRMbmc+O1xuICBnZXRWaXNpYmxlKCk6IGJvb2xlYW47XG4gIHNldERyYWdnYWJsZShkcmFnZ2FibGU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRFZGl0YWJsZShlZGl0YWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG4gIHNldE9wdGlvbnMob3B0aW9uczogUG9seWxpbmVPcHRpb25zKTogdm9pZDtcbiAgc2V0UGF0aChwYXRoOiBBcnJheTxMYXRMbmcgfCBMYXRMbmdMaXRlcmFsPik6IHZvaWQ7XG4gIHNldFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQ7XG59XG5cbi8qKlxuICogUG9seU1vdXNlRXZlbnQgZ2V0cyBlbWl0dGVkIHdoZW4gdGhlIHVzZXIgdHJpZ2dlcnMgbW91c2UgZXZlbnRzIG9uIGEgcG9seWxpbmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9seU1vdXNlRXZlbnQgZXh0ZW5kcyBNb3VzZUV2ZW50IHtcbiAgZWRnZTogbnVtYmVyO1xuICBwYXRoOiBudW1iZXI7XG4gIHZlcnRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvbHlnb25PcHRpb25zIHtcbiAgY2xpY2thYmxlPzogYm9vbGVhbjtcbiAgZHJhZ2dhYmxlPzogYm9vbGVhbjtcbiAgZWRpdGFibGU/OiBib29sZWFuO1xuICBmaWxsQ29sb3I/OiBzdHJpbmc7XG4gIGZpbGxPcGFjaXR5PzogbnVtYmVyO1xuICBnZW9kZXNpYz86IGJvb2xlYW47XG4gIGljb24/OiBBcnJheTxJY29uU2VxdWVuY2U+O1xuICBtYXA/OiBHb29nbGVNYXA7XG4gIHBhdGhzPzogQXJyYXk8TGF0TG5nIHwgTGF0TG5nTGl0ZXJhbD4gfCBBcnJheTxBcnJheTxMYXRMbmcgfCBMYXRMbmdMaXRlcmFsPj47XG4gIHN0cm9rZUNvbG9yPzogc3RyaW5nO1xuICBzdHJva2VPcGFjaXR5PzogbnVtYmVyO1xuICBzdHJva2VXZWlnaHQ/OiBudW1iZXI7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9seWdvbiBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGdldERyYWdnYWJsZSgpOiBib29sZWFuO1xuICBnZXRFZGl0YWJsZSgpOiBib29sZWFuO1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBnZXRQYXRoKCk6IE1WQ0FycmF5PExhdExuZz47XG4gIGdldFBhdGhzKCk6IE1WQ0FycmF5PE1WQ0FycmF5PExhdExuZz4+O1xuICBnZXRWaXNpYmxlKCk6IGJvb2xlYW47XG4gIHNldERyYWdnYWJsZShkcmFnZ2FibGU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRFZGl0YWJsZShlZGl0YWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG4gIHNldFBhdGgocGF0aDogQXJyYXk8TGF0TG5nPiB8IEFycmF5PExhdExuZyB8IExhdExuZ0xpdGVyYWw+KTogdm9pZDtcbiAgc2V0T3B0aW9ucyhvcHRpb25zOiBQb2x5Z29uT3B0aW9ucyk6IHZvaWQ7XG4gIHNldFBhdGhzKHBhdGhzOiBBcnJheTxBcnJheTxMYXRMbmcgfCBMYXRMbmdMaXRlcmFsPj4gfCBBcnJheTxMYXRMbmcgfCBMYXRMbmdMaXRlcmFsPik6IHZvaWQ7XG4gIHNldFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS21sTGF5ZXIgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBnZXREZWZhdWx0Vmlld3BvcnQoKTogTGF0TG5nQm91bmRzO1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBnZXRNZXRhZGF0YSgpOiBLbWxMYXllck1ldGFkYXRhO1xuICBnZXRTdGF0dXMoKTogS21sTGF5ZXJTdGF0dXM7XG4gIGdldFVybCgpOiBzdHJpbmc7XG4gIGdldFpJbmRleCgpOiBudW1iZXI7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG4gIHNldE9wdGlvbnMob3B0aW9uczogS21sTGF5ZXJPcHRpb25zKTogdm9pZDtcbiAgc2V0VXJsKHVybDogc3RyaW5nKTogdm9pZDtcbiAgc2V0WkluZGV4KHpJbmRleDogbnVtYmVyKTogdm9pZDtcbn1cblxuLyoqXG4gKiBTZWU6IGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L3JlZmVyZW5jZT9obD1kZSNLbWxMYXllclN0YXR1c1xuICovXG5leHBvcnQgdHlwZSBLbWxMYXllclN0YXR1cyA9ICdET0NVTUVOVF9OT1RfRk9VTkQnIHxcbiAgICAnRE9DVU1FTlRfVE9PX0xBUkdFJyB8wqAnRkVUQ0hfRVJST1InIHzCoCdJTlZBTElEX0RPQ1VNRU5UJyB8ICdJTlZBTElEX1JFUVVFU1QnIHxcbiAgICAnTElNSVRTX0VYQ0VFREVEJyB8ICdPSycgfMKgJ1RJTUVEX09VVCcgfCAnVU5LTk9XTic7XG5cbi8qKlxuICogU2VlOiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9yZWZlcmVuY2U/aGw9ZGUjS21sTGF5ZXJNZXRhZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEttbExheWVyTWV0YWRhdGEge1xuICBhdXRob3I6IEttbEF1dGhvcjtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaGFzU2NyZWVuT3ZlcmxheXM6IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgc25pcHBldDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEttbEF1dGhvciB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdXJpOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS21sTGF5ZXJPcHRpb25zIHtcbiAgY2xpY2thYmxlPzogYm9vbGVhbjtcbiAgbWFwPzogR29vZ2xlTWFwO1xuICBwcmVzZXJ2ZVZpZXdwb3J0PzogYm9vbGVhbjtcbiAgc2NyZWVuT3ZlcmxheXM/OiBib29sZWFuO1xuICBzdXBwcmVzc0luZm9XaW5kb3dzPzogYm9vbGVhbjtcbiAgdXJsPzogc3RyaW5nO1xuICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS21sRmVhdHVyZURhdGEge1xuICBhdXRob3I6IEttbEF1dGhvcjtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbiAgaW5mb1dpbmRvd0h0bWw6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBzbmlwcGV0OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS21sTW91c2VFdmVudCBleHRlbmRzIE1vdXNlRXZlbnQge1xuICBmZWF0dXJlRGF0YTogS21sRmVhdHVyZURhdGE7XG4gIHBpeGVsT2Zmc2V0OiBTaXplO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zaXRMYXllciBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGdldE1hcCgpOiBHb29nbGVNYXA7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNpdExheWVyT3B0aW9ucyB7XG4gIHZpc2libGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmljeWNsaW5nTGF5ZXIgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBzZXRNYXAobWFwOiBHb29nbGVNYXApOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpY3ljbGluZ0xheWVyT3B0aW9ucyB7XG4gIHZpc2libGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YSBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGZlYXR1cmVzOiBGZWF0dXJlW107XG4gIGFkZEdlb0pzb24oZ2VvSnNvbjogT2JqZWN0LCBvcHRpb25zPzogR2VvSnNvbk9wdGlvbnMpOiBGZWF0dXJlW107XG4gIHJlbW92ZShmZWF0dXJlOiBGZWF0dXJlKTogdm9pZDtcbiAgc2V0Q29udHJvbFBvc2l0aW9uKGNvbnRyb2xQb3NpdGlvbjogQ29udHJvbFBvc2l0aW9uKTogdm9pZDtcbiAgc2V0Q29udHJvbHMoY29udHJvbHM6IHN0cmluZ1tdKTogdm9pZDtcbiAgc2V0RHJhd2luZ01vZGUoZHJhd2luZ01vZGU6IHN0cmluZyk6IHZvaWQ7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG4gIC8qIHRzbGludDpkaXNhYmxlICovXG4gIC8qXG4gICogVHNsaW50IGNvbmZpZ3VyYXRpb24gY2hlY2stcGFyYW1ldGVycyB3aWxsIHByb21wdCBlcnJvcnMgZm9yIHRoZXNlIGxpbmVzIG9mIGNvZGUuXG4gICogaHR0cHM6Ly9wYWxhbnRpci5naXRodWIuaW8vdHNsaW50L3J1bGVzL25vLXVudXNlZC12YXJpYWJsZS9cbiAgKi9cbiAgc2V0U3R5bGUoc3R5bGU6ICgpID0+IHZvaWQpOiB2b2lkO1xuICBmb3JFYWNoKGNhbGxiYWNrOiAoZmVhdHVyZTogRmVhdHVyZSkgPT4gdm9pZCk6IHZvaWQ7XG4gIGxvYWRHZW9Kc29uKHVybDogc3RyaW5nLCBvcHRpb25zPzogR2VvSnNvbk9wdGlvbnMsIGNhbGxiYWNrPzogKGZlYXRzOiBGZWF0dXJlW10pID0+IHZvaWQpOiB2b2lkO1xuICAvKiB0c2xpbnQ6ZW5hYmxlICovXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZSBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGlkPzogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBnZW9tZXRyeTogR2VvbWV0cnk7XG4gIHByb3BlcnRpZXM6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhT3B0aW9ucyB7XG4gIGNvbnRyb2xQb3NpdGlvbj86IENvbnRyb2xQb3NpdGlvbjtcbiAgY29udHJvbHM/OiBzdHJpbmdbXTtcbiAgZHJhd2luZ01vZGU/OiBzdHJpbmc7XG4gIGZlYXR1cmVGYWN0b3J5PzogKGdlb21ldHJ5OiBHZW9tZXRyeSkgPT4gRmVhdHVyZTtcbiAgbWFwPzogR29vZ2xlTWFwO1xuICBzdHlsZT86ICgpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YU1vdXNlRXZlbnQgZXh0ZW5kcyBNb3VzZUV2ZW50IHtcbiAgZmVhdHVyZTogRmVhdHVyZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9Kc29uT3B0aW9ucyB7XG4gIGlkUHJvcGVydHlOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvbWV0cnkge1xuICB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSWRlbnRpZmllcnMgdXNlZCB0byBzcGVjaWZ5IHRoZSBwbGFjZW1lbnQgb2YgY29udHJvbHMgb24gdGhlIG1hcC4gQ29udHJvbHMgYXJlXG4gKiBwb3NpdGlvbmVkIHJlbGF0aXZlIHRvIG90aGVyIGNvbnRyb2xzIGluIHRoZSBzYW1lIGxheW91dCBwb3NpdGlvbi4gQ29udHJvbHMgdGhhdFxuICogYXJlIGFkZGVkIGZpcnN0IGFyZSBwb3NpdGlvbmVkIGNsb3NlciB0byB0aGUgZWRnZSBvZiB0aGUgbWFwLlxuICovXG5leHBvcnQgZW51bSBDb250cm9sUG9zaXRpb24ge1xuICBSSUdIVF9CT1RUT00sXG4gIFRPUF9MRUZULFxuICBUT1BfQ0VOVEVSLFxuICBUT1BfUklHSFQsXG4gIExFRlRfQ0VOVEVSLFxuICBMRUZUX1RPUCxcbiAgTEVGVF9CT1RUT00sXG4gIFJJR0hUX1RPUCxcbiAgUklHSFRfQ0VOVEVSLFxuICBCT1RUT01fUklHSFQsXG4gIEJPVFRPTV9MRUZULFxuICBCT1RUT01fQ0VOVEVSLFxufVxuXG5leHBvcnQgZW51bSBNYXBUeXBlSWQge1xuICAvKiogVGhpcyBtYXAgdHlwZSBkaXNwbGF5cyBhIHRyYW5zcGFyZW50IGxheWVyIG9mIG1ham9yIHN0cmVldHMgb24gc2F0ZWxsaXRlIGltYWdlcy4gKi9cbiAgSFlCUklELFxuICAvKiogVGhpcyBtYXAgdHlwZSBkaXNwbGF5cyBhIG5vcm1hbCBzdHJlZXQgbWFwLiAqL1xuICBST0FETUFQLFxuICAvKiogVGhpcyBtYXAgdHlwZSBkaXNwbGF5cyBzYXRlbGxpdGUgaW1hZ2VzLiAqL1xuICBTQVRFTExJVEUsXG4gIC8qKiBUaGlzIG1hcCB0eXBlIGRpc3BsYXlzIG1hcHMgd2l0aCBwaHlzaWNhbCBmZWF0dXJlcyBzdWNoIGFzIHRlcnJhaW4gYW5kIHZlZ2V0YXRpb24uICovXG4gIFRFUlJBSU4sXG59XG5cbi8qKioqKiBDb250cm9scyAqKioqKi9cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVuZGVyaW5nIG9mIHRoZSBtYXAgdHlwZSBjb250cm9sLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXBUeXBlQ29udHJvbE9wdGlvbnMge1xuICAvKiogSURzIG9mIG1hcCB0eXBlcyB0byBzaG93IGluIHRoZSBjb250cm9sLiAqL1xuICBtYXBUeXBlSWRzPzogKE1hcFR5cGVJZCB8IHN0cmluZylbXTtcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGlkLiBVc2VkIHRvIHNwZWNpZnkgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250cm9sIG9uIHRoZSBtYXAuXG4gICAqIFRoZSBkZWZhdWx0IHBvc2l0aW9uIGlzIFRPUF9SSUdIVC5cbiAgICovXG4gIHBvc2l0aW9uPzogQ29udHJvbFBvc2l0aW9uO1xuICAvKiogU3R5bGUgaWQuIFVzZWQgdG8gc2VsZWN0IHdoYXQgc3R5bGUgb2YgbWFwIHR5cGUgY29udHJvbCB0byBkaXNwbGF5LiAqL1xuICBzdHlsZT86IE1hcFR5cGVDb250cm9sU3R5bGU7XG59XG5cbmV4cG9ydCBlbnVtIE1hcFR5cGVDb250cm9sU3R5bGUge1xuICBERUZBVUxULFxuICBEUk9QRE9XTl9NRU5VLFxuICBIT1JJWk9OVEFMX0JBUixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPdmVydmlld01hcENvbnRyb2xPcHRpb25zIHtcbiAgb3BlbmVkPzogYm9vbGVhbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZW5kZXJpbmcgb2YgdGhlIHBhbiBjb250cm9sLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYW5Db250cm9sT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBpZC4gVXNlZCB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbCBvbiB0aGUgbWFwLlxuICAgKiBUaGUgZGVmYXVsdCBwb3NpdGlvbiBpcyBUT1BfTEVGVC5cbiAgICovXG4gIHBvc2l0aW9uPzogQ29udHJvbFBvc2l0aW9uO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIHJlbmRlcmluZyBvZiB0aGUgcm90YXRlIGNvbnRyb2wuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvdGF0ZUNvbnRyb2xPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGlkLiBVc2VkIHRvIHNwZWNpZnkgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250cm9sIG9uIHRoZSBtYXAuXG4gICAqIFRoZSBkZWZhdWx0IHBvc2l0aW9uIGlzIFRPUF9MRUZULlxuICAgKi9cbiAgcG9zaXRpb24/OiBDb250cm9sUG9zaXRpb247XG59XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVuZGVyaW5nIG9mIHRoZSBzY2FsZSBjb250cm9sLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2FsZUNvbnRyb2xPcHRpb25zIHtcbiAgLyoqIFN0eWxlIGlkLiBVc2VkIHRvIHNlbGVjdCB3aGF0IHN0eWxlIG9mIHNjYWxlIGNvbnRyb2wgdG8gZGlzcGxheS4gKi9cbiAgc3R5bGU/OiBTY2FsZUNvbnRyb2xTdHlsZTtcbn1cblxuZXhwb3J0IGVudW0gU2NhbGVDb250cm9sU3R5bGUge1xuICBERUZBVUxULFxufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIHJlbmRlcmluZyBvZiB0aGUgU3RyZWV0IFZpZXcgcGVnbWFuIGNvbnRyb2wgb24gdGhlIG1hcC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyZWV0Vmlld0NvbnRyb2xPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGlkLiBVc2VkIHRvIHNwZWNpZnkgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250cm9sIG9uIHRoZSBtYXAuIFRoZVxuICAgKiBkZWZhdWx0IHBvc2l0aW9uIGlzIGVtYmVkZGVkIHdpdGhpbiB0aGUgbmF2aWdhdGlvbiAoem9vbSBhbmQgcGFuKSBjb250cm9scy5cbiAgICogSWYgdGhpcyBwb3NpdGlvbiBpcyBlbXB0eSBvciB0aGUgc2FtZSBhcyB0aGF0IHNwZWNpZmllZCBpbiB0aGVcbiAgICogem9vbUNvbnRyb2xPcHRpb25zIG9yIHBhbkNvbnRyb2xPcHRpb25zLCB0aGUgU3RyZWV0IFZpZXcgY29udHJvbCB3aWxsIGJlXG4gICAqIGRpc3BsYXllZCBhcyBwYXJ0IG9mIHRoZSBuYXZpZ2F0aW9uIGNvbnRyb2xzLiBPdGhlcndpc2UsIGl0IHdpbGwgYmUgZGlzcGxheWVkXG4gICAqIHNlcGFyYXRlbHkuXG4gICAqL1xuICBwb3NpdGlvbj86IENvbnRyb2xQb3NpdGlvbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZW5kZXJpbmcgb2YgdGhlIHpvb20gY29udHJvbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWm9vbUNvbnRyb2xPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGlkLiBVc2VkIHRvIHNwZWNpZnkgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250cm9sIG9uIHRoZSBtYXAuXG4gICAqIFRoZSBkZWZhdWx0IHBvc2l0aW9uIGlzIFRPUF9MRUZULlxuICAgKi9cbiAgcG9zaXRpb24/OiBDb250cm9sUG9zaXRpb247XG4gIHN0eWxlPzogWm9vbUNvbnRyb2xTdHlsZTtcbn1cblxuZXhwb3J0IGVudW0gWm9vbUNvbnRyb2xTdHlsZSB7XG4gIERFRkFVTFQsXG4gIExBUkdFLFxuICBTTUFMTCxcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZW5kZXJpbmcgb2YgdGhlIGZ1bGxzY3JlZW4gY29udHJvbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbHNjcmVlbkNvbnRyb2xPcHRpb25zIHtcbiAgLyoqXG4gICAqIFBvc2l0aW9uIGlkLiBVc2VkIHRvIHNwZWNpZnkgdGhlIHBvc2l0aW9uIG9mIHRoZSBjb250cm9sIG9uIHRoZSBtYXAuXG4gICAqIFRoZSBkZWZhdWx0IHBvc2l0aW9uIGlzIFJJR0hUX1RPUC5cbiAgICovXG4gIHBvc2l0aW9uPzogQ29udHJvbFBvc2l0aW9uO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIHJlc3RyaWN0aW5nIHRoZSBib3VuZHMgb2YgdGhlIG1hcC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFwUmVzdHJpY3Rpb24ge1xuICBsYXRMbmdCb3VuZHM6IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWw7XG4gIHN0cmljdEJvdW5kcz86IGJvb2xlYW47XG59XG4iXX0=
export var GeocoderLocationType;
(function (GeocoderLocationType) {
GeocoderLocationType["APPROXIMATE"] = "APPROXIMATE";
GeocoderLocationType["GEOMETRIC_CENTER"] = "GEOMETRIC_CENTER";
GeocoderLocationType["RANGE_INTERPOLATED"] = "RANGE_INTERPOLATED";
GeocoderLocationType["ROOFTOP"] = "ROOFTOP";
})(GeocoderLocationType || (GeocoderLocationType = {}));
export var GeocoderStatus;
(function (GeocoderStatus) {
GeocoderStatus["ERROR"] = "ERROR";
GeocoderStatus["INVALID_REQUEST"] = "INVALID_REQUEST";
GeocoderStatus["OK"] = "OK";
GeocoderStatus["OVER_QUERY_LIMIT"] = "OVER_QUERY_LIMIT";
GeocoderStatus["REQUEST_DENIED"] = "REQUEST_DENIED";
GeocoderStatus["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
GeocoderStatus["ZERO_RESULTS"] = "ZERO_RESULTS";
})(GeocoderStatus || (GeocoderStatus = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1hcHMtdHlwZXMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9nb29nbGUtbWFwcy10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBSSxNQUFXLENBQUM7QUFrVHZCLE1BQU0sQ0FBTixJQUFZLFVBTVg7QUFORCxXQUFZLFVBQVU7SUFDcEIsNkVBQXlCLENBQUE7SUFDekIseUVBQXVCLENBQUE7SUFDdkIsK0NBQVUsQ0FBQTtJQUNWLDJFQUF3QixDQUFBO0lBQ3hCLHVFQUFzQixDQUFBO0FBQ3hCLENBQUMsRUFOVyxVQUFVLEtBQVYsVUFBVSxRQU1yQjtBQXNNRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFOLElBQVksZUFhWDtBQWJELFdBQVksZUFBZTtJQUN6QixxRUFBWSxDQUFBO0lBQ1osNkRBQVEsQ0FBQTtJQUNSLGlFQUFVLENBQUE7SUFDViwrREFBUyxDQUFBO0lBQ1QsbUVBQVcsQ0FBQTtJQUNYLDZEQUFRLENBQUE7SUFDUixtRUFBVyxDQUFBO0lBQ1gsK0RBQVMsQ0FBQTtJQUNULHFFQUFZLENBQUE7SUFDWixxRUFBWSxDQUFBO0lBQ1osb0VBQVcsQ0FBQTtJQUNYLHdFQUFhLENBQUE7QUFDZixDQUFDLEVBYlcsZUFBZSxLQUFmLGVBQWUsUUFhMUI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQVNYO0FBVEQsV0FBWSxTQUFTO0lBQ25CLHVGQUF1RjtJQUN2Riw2Q0FBTSxDQUFBO0lBQ04sa0RBQWtEO0lBQ2xELCtDQUFPLENBQUE7SUFDUCwrQ0FBK0M7SUFDL0MsbURBQVMsQ0FBQTtJQUNULHlGQUF5RjtJQUN6RiwrQ0FBTyxDQUFBO0FBQ1QsQ0FBQyxFQVRXLFNBQVMsS0FBVCxTQUFTLFFBU3BCO0FBZ0JELE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0IsbUVBQVcsQ0FBQTtJQUNYLCtFQUFpQixDQUFBO0lBQ2pCLGlGQUFrQixDQUFBO0FBQ3BCLENBQUMsRUFKVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBSTlCO0FBOEJELE1BQU0sQ0FBTixJQUFZLGlCQUVYO0FBRkQsV0FBWSxpQkFBaUI7SUFDM0IsK0RBQU8sQ0FBQTtBQUNULENBQUMsRUFGVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRTVCO0FBeUJELE1BQU0sQ0FBTixJQUFZLGdCQUlYO0FBSkQsV0FBWSxnQkFBZ0I7SUFDMUIsNkRBQU8sQ0FBQTtJQUNQLHlEQUFLLENBQUE7SUFDTCx5REFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUpXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFJM0I7QUEyQ0QsTUFBTSxDQUFOLElBQVksb0JBS1g7QUFMRCxXQUFZLG9CQUFvQjtJQUM5QixtREFBMkIsQ0FBQTtJQUMzQiw2REFBcUMsQ0FBQTtJQUNyQyxpRUFBeUMsQ0FBQTtJQUN6QywyQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUsvQjtBQXFCRCxNQUFNLENBQU4sSUFBWSxjQVFYO0FBUkQsV0FBWSxjQUFjO0lBQ3hCLGlDQUFlLENBQUE7SUFDZixxREFBbUMsQ0FBQTtJQUNuQywyQkFBUyxDQUFBO0lBQ1QsdURBQXFDLENBQUE7SUFDckMsbURBQWlDLENBQUE7SUFDakMsaURBQStCLENBQUE7SUFDL0IsK0NBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQVJXLGNBQWMsS0FBZCxjQUFjLFFBUXpCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHZhciBnb29nbGU6IGFueTtcblxuZXhwb3J0IGludGVyZmFjZSBNVkNPYmplY3Qge1xuICBhZGRMaXN0ZW5lcihldmVudE5hbWU6IHN0cmluZywgaGFuZGxlcjogRnVuY3Rpb24pOiBNYXBzRXZlbnRMaXN0ZW5lcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNVkNBcnJheTxUPiBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGNsZWFyKCk6IHZvaWQ7XG4gIGdldEFycmF5KCk6IEFycmF5PFQ+O1xuICBnZXRBdChpOiBudW1iZXIpOiBUO1xuICBnZXRMZW5ndGgoKTogbnVtYmVyO1xuICBpbnNlcnRBdChpOiBudW1iZXIsIGVsZW06IFQpOiB2b2lkO1xuICBwb3AoKTogVDtcbiAgcHVzaChlbGVtOiBUKTogbnVtYmVyO1xuICByZW1vdmVBdChpOiBudW1iZXIpOiBUO1xuICBzZXRBdChpOiBudW1iZXIsIGVsZW06IFQpOiB2b2lkO1xuICAvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuICAvKlxuICAqIFRzbGludCBjb25maWd1cmF0aW9uIGNoZWNrLXBhcmFtZXRlcnMgd2lsbCBwcm9tcHQgZXJyb3JzIGZvciB0aGVzZSBsaW5lcyBvZiBjb2RlLlxuICAqIGh0dHBzOi8vcGFsYW50aXIuZ2l0aHViLmlvL3RzbGludC9ydWxlcy9uby11bnVzZWQtdmFyaWFibGUvXG4gICovXG4gIGZvckVhY2goY2FsbGJhY2s6IChlbGVtOiBULCBpOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkO1xuICAvKiB0c2xpbnQ6ZW5hYmxlICovXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlTWFwIGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgZGF0YT86IERhdGE7XG4gIHBhblRvKGxhdExuZzogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbCk6IHZvaWQ7XG4gIHBhbkJ5KHg6IG51bWJlciwgeTogbnVtYmVyKTogdm9pZDtcbiAgc2V0Wm9vbSh6b29tOiBudW1iZXIpOiB2b2lkO1xuICBnZXRDZW50ZXIoKTogTGF0TG5nO1xuICBzZXRDZW50ZXIobGF0TG5nOiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsKTogdm9pZDtcbiAgZ2V0Qm91bmRzKCk6IExhdExuZ0JvdW5kcztcbiAgZ2V0TWFwVHlwZUlkKCk6IE1hcFR5cGVJZDtcbiAgZ2V0Wm9vbSgpOiBudW1iZXI7XG4gIHNldE9wdGlvbnMob3B0aW9uczogTWFwT3B0aW9ucyk6IHZvaWQ7XG4gIHBhblRvQm91bmRzKGxhdExuZ0JvdW5kczogTGF0TG5nQm91bmRzIHwgTGF0TG5nQm91bmRzTGl0ZXJhbCwgcGFkZGluZz86IG51bWJlciB8IFBhZGRpbmcpOiB2b2lkO1xuICBmaXRCb3VuZHMoYm91bmRzOiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsLCBwYWRkaW5nPzogbnVtYmVyIHwgUGFkZGluZyk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF0TG5nIHtcbiAgbGF0KCk6IG51bWJlcjtcbiAgbG5nKCk6IG51bWJlcjtcbiAgdG9KU09OKCk6IGFueTtcbiAgdG9TdHJpbmcoKTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcmtlciBleHRlbmRzIE1WQ09iamVjdCB7XG4gIHNldE1hcChtYXA6IEdvb2dsZU1hcCk6IHZvaWQ7XG4gIHNldFBvc2l0aW9uKGxhdExuZzogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbCk6IHZvaWQ7XG4gIHNldFRpdGxlKHRpdGxlOiBzdHJpbmcpOiB2b2lkO1xuICBzZXRMYWJlbChsYWJlbDogc3RyaW5nIHwgTWFya2VyTGFiZWwpOiB2b2lkO1xuICBzZXREcmFnZ2FibGUoZHJhZ2dhYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0SWNvbihpY29uOiBzdHJpbmcpOiB2b2lkO1xuICBzZXRPcGFjaXR5KG9wYWNpdHk6IG51bWJlcik6IHZvaWQ7XG4gIHNldFZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldFpJbmRleCh6SW5kZXg6IG51bWJlcik6IHZvaWQ7XG4gIHNldEFuaW1hdGlvbihhbmltYXRpb246IGFueSk6IHZvaWQ7XG4gIGdldExhYmVsKCk6IE1hcmtlckxhYmVsO1xuICBzZXRDbGlja2FibGUoY2xpY2thYmxlOiBib29sZWFuKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXJrZXJPcHRpb25zIHtcbiAgcG9zaXRpb246IExhdExuZyB8IExhdExuZ0xpdGVyYWw7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBtYXA/OiBHb29nbGVNYXA7XG4gIGxhYmVsPzogc3RyaW5nIHwgTWFya2VyTGFiZWw7XG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gIGljb24/OiBzdHJpbmc7XG4gIG9wYWNpdHk/OiBudW1iZXI7XG4gIHZpc2libGU/OiBib29sZWFuO1xuICB6SW5kZXg/OiBudW1iZXI7XG4gIGNsaWNrYWJsZTogYm9vbGVhbjtcbiAgYW5pbWF0aW9uPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcmtlckxhYmVsIHtcbiAgY29sb3I6IHN0cmluZztcbiAgZm9udEZhbWlseTogc3RyaW5nO1xuICBmb250U2l6ZTogc3RyaW5nO1xuICBmb250V2VpZ2h0OiBzdHJpbmc7XG4gIHRleHQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaXJjbGUgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBnZXRCb3VuZHMoKTogTGF0TG5nQm91bmRzO1xuICBnZXRDZW50ZXIoKTogTGF0TG5nO1xuICBnZXREcmFnZ2FibGUoKTogYm9vbGVhbjtcbiAgZ2V0RWRpdGFibGUoKTogYm9vbGVhbjtcbiAgZ2V0TWFwKCk6IEdvb2dsZU1hcDtcbiAgZ2V0UmFkaXVzKCk6IG51bWJlcjtcbiAgZ2V0VmlzaWJsZSgpOiBib29sZWFuO1xuICBzZXRDZW50ZXIoY2VudGVyOiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsKTogdm9pZDtcbiAgc2V0RHJhZ2dhYmxlKGRyYWdnYWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldEVkaXRhYmxlKGVkaXRhYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0TWFwKG1hcDogR29vZ2xlTWFwKTogdm9pZDtcbiAgc2V0T3B0aW9ucyhvcHRpb25zOiBDaXJjbGVPcHRpb25zKTogdm9pZDtcbiAgc2V0UmFkaXVzKHJhZGl1czogbnVtYmVyKTogdm9pZDtcbiAgc2V0VmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaXJjbGVPcHRpb25zIHtcbiAgY2VudGVyPzogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbDtcbiAgY2xpY2thYmxlPzogYm9vbGVhbjtcbiAgZHJhZ2dhYmxlPzogYm9vbGVhbjtcbiAgZWRpdGFibGU/OiBib29sZWFuO1xuICBmaWxsQ29sb3I/OiBzdHJpbmc7XG4gIGZpbGxPcGFjaXR5PzogbnVtYmVyO1xuICBtYXA/OiBHb29nbGVNYXA7XG4gIHJhZGl1cz86IG51bWJlcjtcbiAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gIHN0cm9rZU9wYWNpdHk/OiBudW1iZXI7XG4gIHN0cm9rZVBvc2l0aW9uPzogJ0NFTlRFUicgfCAnSU5TSURFJyB8ICdPVVRTSURFJztcbiAgc3Ryb2tlV2VpZ2h0PzogbnVtYmVyO1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgekluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY3RhbmdsZSBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGdldEJvdW5kcygpOiBMYXRMbmdCb3VuZHM7XG4gIGdldERyYWdnYWJsZSgpOiBib29sZWFuO1xuICBnZXRFZGl0YWJsZSgpOiBib29sZWFuO1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBnZXRWaXNpYmxlKCk6IGJvb2xlYW47XG4gIHNldEJvdW5kcyhib3VuZHM6IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWwpOiB2b2lkO1xuICBzZXREcmFnZ2FibGUoZHJhZ2dhYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0RWRpdGFibGUoZWRpdGFibGU6IGJvb2xlYW4pOiB2b2lkO1xuICBzZXRNYXAobWFwOiBHb29nbGVNYXApOiB2b2lkO1xuICBzZXRPcHRpb25zKG9wdGlvbnM6IFJlY3RhbmdsZU9wdGlvbnMpOiB2b2lkO1xuICBzZXRWaXNpYmxlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlY3RhbmdsZU9wdGlvbnMge1xuICBib3VuZHM/OiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsO1xuICBjbGlja2FibGU/OiBib29sZWFuO1xuICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG4gIGZpbGxDb2xvcj86IHN0cmluZztcbiAgZmlsbE9wYWNpdHk/OiBudW1iZXI7XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gIHN0cm9rZU9wYWNpdHk/OiBudW1iZXI7XG4gIHN0cm9rZVBvc2l0aW9uPzogJ0NFTlRFUicgfCAnSU5TSURFJyB8ICdPVVRTSURFJztcbiAgc3Ryb2tlV2VpZ2h0PzogbnVtYmVyO1xuICB2aXNpYmxlPzogYm9vbGVhbjtcbiAgekluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhdExuZ0JvdW5kcyB7XG4gIGNvbnRhaW5zKGxhdExuZzogTGF0TG5nKTogYm9vbGVhbjtcbiAgZXF1YWxzKG90aGVyOiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsKTogYm9vbGVhbjtcbiAgZXh0ZW5kKHBvaW50OiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsKTogdm9pZDtcbiAgZ2V0Q2VudGVyKCk6IExhdExuZztcbiAgZ2V0Tm9ydGhFYXN0KCk6IExhdExuZztcbiAgZ2V0U291dGhXZXN0KCk6IExhdExuZztcbiAgaW50ZXJzZWN0cyhvdGhlcjogTGF0TG5nQm91bmRzIHwgTGF0TG5nQm91bmRzTGl0ZXJhbCk6IGJvb2xlYW47XG4gIGlzRW1wdHkoKTogYm9vbGVhbjtcbiAgdG9KU09OKCk6IExhdExuZ0JvdW5kc0xpdGVyYWw7XG4gIHRvU3BhbigpOiBMYXRMbmc7XG4gIHRvU3RyaW5nKCk6IHN0cmluZztcbiAgdG9VcmxWYWx1ZShwcmVjaXNpb24/OiBudW1iZXIpOiBzdHJpbmc7XG4gIHVuaW9uKG90aGVyOiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsKTogTGF0TG5nQm91bmRzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhZGRpbmcge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICByaWdodDogbnVtYmVyO1xuICBib3R0b206IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXRMbmdCb3VuZHNMaXRlcmFsIHtcbiAgZWFzdDogbnVtYmVyO1xuICBub3J0aDogbnVtYmVyO1xuICBzb3V0aDogbnVtYmVyO1xuICB3ZXN0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF0TG5nTGl0ZXJhbCB7XG4gIGxhdDogbnVtYmVyO1xuICBsbmc6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNb3VzZUV2ZW50IHsgbGF0TG5nOiBMYXRMbmc7IH1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBPcHRpb25zIHtcbiAgY2VudGVyPzogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbDtcbiAgem9vbT86IG51bWJlcjtcbiAgbWluWm9vbT86IG51bWJlcjtcbiAgbWF4Wm9vbT86IG51bWJlcjtcbiAgY29udHJvbFNpemU/OiBudW1iZXI7XG4gIGRpc2FibGVEb3VibGVDbGlja1pvb20/OiBib29sZWFuO1xuICBkaXNhYmxlRGVmYXVsdFVJPzogYm9vbGVhbjtcbiAgc2Nyb2xsd2hlZWw/OiBib29sZWFuO1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gIGRyYWdnYWJsZUN1cnNvcj86IHN0cmluZztcbiAgZHJhZ2dpbmdDdXJzb3I/OiBzdHJpbmc7XG4gIGtleWJvYXJkU2hvcnRjdXRzPzogYm9vbGVhbjtcbiAgc3R5bGVzPzogTWFwVHlwZVN0eWxlW107XG4gIHpvb21Db250cm9sPzogYm9vbGVhbjtcbiAgem9vbUNvbnRyb2xPcHRpb25zPzogWm9vbUNvbnRyb2xPcHRpb25zO1xuICBzdHJlZXRWaWV3Q29udHJvbD86IGJvb2xlYW47XG4gIHN0cmVldFZpZXdDb250cm9sT3B0aW9ucz86IFN0cmVldFZpZXdDb250cm9sT3B0aW9ucztcbiAgc2NhbGVDb250cm9sPzogYm9vbGVhbjtcbiAgc2NhbGVDb250cm9sT3B0aW9ucz86IFNjYWxlQ29udHJvbE9wdGlvbnM7XG4gIG1hcFR5cGVDb250cm9sPzogYm9vbGVhbjtcbiAgbWFwVHlwZUNvbnRyb2xPcHRpb25zPzogTWFwVHlwZUNvbnRyb2xPcHRpb25zO1xuICBwYW5Db250cm9sPzogYm9vbGVhbjtcbiAgcGFuQ29udHJvbE9wdGlvbnM/OiBQYW5Db250cm9sT3B0aW9ucztcbiAgcm90YXRlQ29udHJvbD86IGJvb2xlYW47XG4gIHJvdGF0ZUNvbnRyb2xPcHRpb25zPzogUm90YXRlQ29udHJvbE9wdGlvbnM7XG4gIGZ1bGxzY3JlZW5Db250cm9sPzogYm9vbGVhbjtcbiAgZnVsbHNjcmVlbkNvbnRyb2xPcHRpb25zPzogRnVsbHNjcmVlbkNvbnRyb2xPcHRpb25zO1xuICBtYXBUeXBlSWQ/OiBzdHJpbmcgfCBNYXBUeXBlSWQ7XG4gIGNsaWNrYWJsZUljb25zPzogYm9vbGVhbjtcbiAgZ2VzdHVyZUhhbmRsaW5nPzogJ2Nvb3BlcmF0aXZlJyB8ICdncmVlZHknIHwgJ25vbmUnIHwgJ2F1dG8nO1xuICB0aWx0PzogbnVtYmVyO1xuICByZXN0cmljdGlvbj86IE1hcFJlc3RyaWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcFR5cGVTdHlsZSB7XG4gIGVsZW1lbnRUeXBlPzogJ2FsbCcgfCAnZ2VvbWV0cnknIHwgJ2dlb21ldHJ5LmZpbGwnIHwgJ2dlb21ldHJ5LnN0cm9rZScgfCAnbGFiZWxzJyB8ICdsYWJlbHMuaWNvbicgfFxuICAnbGFiZWxzLnRleHQnIHwgJ2xhYmVscy50ZXh0LmZpbGwnIHwgJ2xhYmVscy50ZXh0LnN0cm9rZSc7XG4gIGZlYXR1cmVUeXBlPzogJ2FkbWluaXN0cmF0aXZlJyB8ICdhZG1pbmlzdHJhdGl2ZS5jb3VudHJ5JyB8ICdhZG1pbmlzdHJhdGl2ZS5sYW5kX3BhcmNlbCcgfFxuICAnYWRtaW5pc3RyYXRpdmUubG9jYWxpdHknIHwgJ2FkbWluaXN0cmF0aXZlLm5laWdoYm9yaG9vZCcgfCAnYWRtaW5pc3RyYXRpdmUucHJvdmluY2UnIHwgJ2FsbCcgfFxuICAnbGFuZHNjYXBlJyB8ICdsYW5kc2NhcGUubWFuX21hZGUnIHwgJ2xhbmRzY2FwZS5uYXR1cmFsJyB8ICdsYW5kc2NhcGUubmF0dXJhbC5sYW5kY292ZXInIHxcbiAgJ2xhbmRzY2FwZS5uYXR1cmFsLnRlcnJhaW4nIHwgJ3BvaScgfCAncG9pLmF0dHJhY3Rpb24nIHwgJ3BvaS5idXNpbmVzcycgfCAncG9pLmdvdmVybm1lbnQnIHxcbiAgJ3BvaS5tZWRpY2FsJyB8ICdwb2kucGFyaycgfCAncG9pLnBsYWNlX29mX3dvcnNoaXAnIHwgJ3BvaS5zY2hvb2wnIHwgJ3BvaS5zcG9ydHNfY29tcGxleCcgfCAncm9hZCcgfFxuICAncm9hZC5hcnRlcmlhbCcgfCAncm9hZC5oaWdod2F5JyB8ICdyb2FkLmhpZ2h3YXkuY29udHJvbGxlZF9hY2Nlc3MnIHwgJ3JvYWQubG9jYWwnIHwgJ3RyYW5zaXQnIHxcbiAgJ3RyYW5zaXQubGluZScgfCAndHJhbnNpdC5zdGF0aW9uJyB8ICd0cmFuc2l0LnN0YXRpb24uYWlycG9ydCcgfCAndHJhbnNpdC5zdGF0aW9uLmJ1cycgfFxuICAndHJhbnNpdC5zdGF0aW9uLnJhaWwnIHwgJ3dhdGVyJztcbiAgc3R5bGVyczogTWFwVHlwZVN0eWxlcltdO1xufVxuXG4vKipcbiAqICBJZiBtb3JlIHRoYW4gb25lIGtleSBpcyBzcGVjaWZpZWQgaW4gYSBzaW5nbGUgTWFwVHlwZVN0eWxlciwgYWxsIGJ1dCBvbmUgd2lsbCBiZSBpZ25vcmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hcFR5cGVTdHlsZXIge1xuICBjb2xvcj86IHN0cmluZztcbiAgZ2FtbWE/OiBudW1iZXI7XG4gIGh1ZT86IHN0cmluZztcbiAgaW52ZXJ0X2xpZ2h0bmVzcz86IGJvb2xlYW47XG4gIGxpZ2h0bmVzcz86IG51bWJlcjtcbiAgc2F0dXJhdGlvbj86IG51bWJlcjtcbiAgdmlzaWJpbGl0eT86IHN0cmluZztcbiAgd2VpZ2h0PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZm9XaW5kb3cgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBjbG9zZSgpOiB2b2lkO1xuICBnZXRDb250ZW50KCk6IHN0cmluZyB8IE5vZGU7XG4gIGdldFBvc2l0aW9uKCk6IExhdExuZztcbiAgZ2V0WkluZGV4KCk6IG51bWJlcjtcbiAgb3BlbihtYXA/OiBHb29nbGVNYXAsIGFuY2hvcj86IE1WQ09iamVjdCk6IHZvaWQ7XG4gIHNldENvbnRlbnQoY29udGVudDogc3RyaW5nIHwgTm9kZSk6IHZvaWQ7XG4gIHNldE9wdGlvbnMob3B0aW9uczogSW5mb1dpbmRvd09wdGlvbnMpOiB2b2lkO1xuICBzZXRQb3NpdGlvbihwb3NpdGlvbjogTGF0TG5nIHwgTGF0TG5nTGl0ZXJhbCk6IHZvaWQ7XG4gIHNldFpJbmRleCh6SW5kZXg6IG51bWJlcik6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwc0V2ZW50TGlzdGVuZXIgeyByZW1vdmUoKTogdm9pZDsgfVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpemUge1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgd2lkdGg6IG51bWJlcjtcbiAgZXF1YWxzKG90aGVyOiBTaXplKTogYm9vbGVhbjtcbiAgdG9TdHJpbmcoKTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZm9XaW5kb3dPcHRpb25zIHtcbiAgY29udGVudD86IHN0cmluZyB8IE5vZGU7XG4gIGRpc2FibGVBdXRvUGFuPzogYm9vbGVhbjtcbiAgbWF4V2lkdGg/OiBudW1iZXI7XG4gIHBpeGVsT2Zmc2V0PzogU2l6ZTtcbiAgcG9zaXRpb24/OiBMYXRMbmcgfCBMYXRMbmdMaXRlcmFsO1xuICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnQge1xuICB4OiBudW1iZXI7XG4gIHk6IG51bWJlcjtcbiAgZXF1YWxzKG90aGVyOiBQb2ludCk6IGJvb2xlYW47XG4gIHRvU3RyaW5nKCk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVTeW1ib2wge1xuICBhbmNob3I/OiBQb2ludDtcbiAgZmlsbENvbG9yPzogc3RyaW5nO1xuICBmaWxsT3BhY2l0eT86IG51bWJlcjtcbiAgbGFiZWxPcmlnaW4/OiBQb2ludDtcbiAgcGF0aD86IHN0cmluZyB8IFN5bWJvbFBhdGg7XG4gIHJvdGF0aW9uPzogbnVtYmVyO1xuICBzY2FsZT86IG51bWJlcjtcbiAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gIHN0cm9rZU9wYWNpdHk/OiBudW1iZXI7XG4gIHN0cm9rZVdlaWdodD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJY29uU2VxdWVuY2Uge1xuICBmaXhlZFJvdGF0aW9uPzogYm9vbGVhbjtcbiAgaWNvbj86IEdvb2dsZVN5bWJvbDtcbiAgb2Zmc2V0Pzogc3RyaW5nO1xuICByZXBlYXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFN5bWJvbFBhdGgge1xuICBCQUNLV0FSRF9DTE9TRURfQVJST1cgPSAzLFxuICBCQUNLV0FSRF9PUEVOX0FSUk9XID0gNCxcbiAgQ0lSQ0xFID0gMCxcbiAgRk9SV0FSRF9DTE9TRURfQVJST1cgPSAxLFxuICBGT1JXQVJEX09QRU5fQVJST1cgPSAyLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvbHlsaW5lT3B0aW9ucyB7XG4gIGNsaWNrYWJsZT86IGJvb2xlYW47XG4gIGRyYWdnYWJsZT86IGJvb2xlYW47XG4gIGVkaXRhYmxlPzogYm9vbGVhbjtcbiAgZ2VvZGVzaWM/OiBib29sZWFuO1xuICBpY29ucz86IEFycmF5PEljb25TZXF1ZW5jZT47XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgcGF0aD86IEFycmF5PExhdExuZz4gfCBBcnJheTxMYXRMbmcgfCBMYXRMbmdMaXRlcmFsPjtcbiAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gIHN0cm9rZU9wYWNpdHk/OiBudW1iZXI7XG4gIHN0cm9rZVdlaWdodD86IG51bWJlcjtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIHpJbmRleD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2x5bGluZSBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGdldERyYWdnYWJsZSgpOiBib29sZWFuO1xuICBnZXRFZGl0YWJsZSgpOiBib29sZWFuO1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBnZXRQYXRoKCk6IE1WQ0FycmF5PExhdExuZz47XG4gIGdldFZpc2libGUoKTogYm9vbGVhbjtcbiAgc2V0RHJhZ2dhYmxlKGRyYWdnYWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldEVkaXRhYmxlKGVkaXRhYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0TWFwKG1hcDogR29vZ2xlTWFwKTogdm9pZDtcbiAgc2V0T3B0aW9ucyhvcHRpb25zOiBQb2x5bGluZU9wdGlvbnMpOiB2b2lkO1xuICBzZXRQYXRoKHBhdGg6IEFycmF5PExhdExuZyB8IExhdExuZ0xpdGVyYWw+KTogdm9pZDtcbiAgc2V0VmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZDtcbn1cblxuLyoqXG4gKiBQb2x5TW91c2VFdmVudCBnZXRzIGVtaXR0ZWQgd2hlbiB0aGUgdXNlciB0cmlnZ2VycyBtb3VzZSBldmVudHMgb24gYSBwb2x5bGluZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2x5TW91c2VFdmVudCBleHRlbmRzIE1vdXNlRXZlbnQge1xuICBlZGdlOiBudW1iZXI7XG4gIHBhdGg6IG51bWJlcjtcbiAgdmVydGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9seWdvbk9wdGlvbnMge1xuICBjbGlja2FibGU/OiBib29sZWFuO1xuICBkcmFnZ2FibGU/OiBib29sZWFuO1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG4gIGZpbGxDb2xvcj86IHN0cmluZztcbiAgZmlsbE9wYWNpdHk/OiBudW1iZXI7XG4gIGdlb2Rlc2ljPzogYm9vbGVhbjtcbiAgaWNvbj86IEFycmF5PEljb25TZXF1ZW5jZT47XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgcGF0aHM/OiBBcnJheTxMYXRMbmcgfCBMYXRMbmdMaXRlcmFsPiB8IEFycmF5PEFycmF5PExhdExuZyB8IExhdExuZ0xpdGVyYWw+PjtcbiAgc3Ryb2tlQ29sb3I/OiBzdHJpbmc7XG4gIHN0cm9rZU9wYWNpdHk/OiBudW1iZXI7XG4gIHN0cm9rZVdlaWdodD86IG51bWJlcjtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIHpJbmRleD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb2x5Z29uIGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgZ2V0RHJhZ2dhYmxlKCk6IGJvb2xlYW47XG4gIGdldEVkaXRhYmxlKCk6IGJvb2xlYW47XG4gIGdldE1hcCgpOiBHb29nbGVNYXA7XG4gIGdldFBhdGgoKTogTVZDQXJyYXk8TGF0TG5nPjtcbiAgZ2V0UGF0aHMoKTogTVZDQXJyYXk8TVZDQXJyYXk8TGF0TG5nPj47XG4gIGdldFZpc2libGUoKTogYm9vbGVhbjtcbiAgc2V0RHJhZ2dhYmxlKGRyYWdnYWJsZTogYm9vbGVhbik6IHZvaWQ7XG4gIHNldEVkaXRhYmxlKGVkaXRhYmxlOiBib29sZWFuKTogdm9pZDtcbiAgc2V0TWFwKG1hcDogR29vZ2xlTWFwKTogdm9pZDtcbiAgc2V0UGF0aChwYXRoOiBBcnJheTxMYXRMbmc+IHwgQXJyYXk8TGF0TG5nIHwgTGF0TG5nTGl0ZXJhbD4pOiB2b2lkO1xuICBzZXRPcHRpb25zKG9wdGlvbnM6IFBvbHlnb25PcHRpb25zKTogdm9pZDtcbiAgc2V0UGF0aHMocGF0aHM6IEFycmF5PEFycmF5PExhdExuZyB8IExhdExuZ0xpdGVyYWw+PiB8IEFycmF5PExhdExuZyB8IExhdExuZ0xpdGVyYWw+KTogdm9pZDtcbiAgc2V0VmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLbWxMYXllciBleHRlbmRzIE1WQ09iamVjdCB7XG4gIGdldERlZmF1bHRWaWV3cG9ydCgpOiBMYXRMbmdCb3VuZHM7XG4gIGdldE1hcCgpOiBHb29nbGVNYXA7XG4gIGdldE1ldGFkYXRhKCk6IEttbExheWVyTWV0YWRhdGE7XG4gIGdldFN0YXR1cygpOiBLbWxMYXllclN0YXR1cztcbiAgZ2V0VXJsKCk6IHN0cmluZztcbiAgZ2V0WkluZGV4KCk6IG51bWJlcjtcbiAgc2V0TWFwKG1hcDogR29vZ2xlTWFwKTogdm9pZDtcbiAgc2V0T3B0aW9ucyhvcHRpb25zOiBLbWxMYXllck9wdGlvbnMpOiB2b2lkO1xuICBzZXRVcmwodXJsOiBzdHJpbmcpOiB2b2lkO1xuICBzZXRaSW5kZXgoekluZGV4OiBudW1iZXIpOiB2b2lkO1xufVxuXG4vKipcbiAqIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlP2hsPWRlI0ttbExheWVyU3RhdHVzXG4gKi9cbmV4cG9ydCB0eXBlIEttbExheWVyU3RhdHVzID0gJ0RPQ1VNRU5UX05PVF9GT1VORCcgfFxuICAnRE9DVU1FTlRfVE9PX0xBUkdFJyB8ICdGRVRDSF9FUlJPUicgfCAnSU5WQUxJRF9ET0NVTUVOVCcgfCAnSU5WQUxJRF9SRVFVRVNUJyB8XG4gICdMSU1JVFNfRVhDRUVERUQnIHwgJ09LJyB8ICdUSU1FRF9PVVQnIHwgJ1VOS05PV04nO1xuXG4vKipcbiAqIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvcmVmZXJlbmNlP2hsPWRlI0ttbExheWVyTWV0YWRhdGFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLbWxMYXllck1ldGFkYXRhIHtcbiAgYXV0aG9yOiBLbWxBdXRob3I7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGhhc1NjcmVlbk92ZXJsYXlzOiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIHNuaXBwZXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBLbWxBdXRob3Ige1xuICBlbWFpbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHVyaTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEttbExheWVyT3B0aW9ucyB7XG4gIGNsaWNrYWJsZT86IGJvb2xlYW47XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgcHJlc2VydmVWaWV3cG9ydD86IGJvb2xlYW47XG4gIHNjcmVlbk92ZXJsYXlzPzogYm9vbGVhbjtcbiAgc3VwcHJlc3NJbmZvV2luZG93cz86IGJvb2xlYW47XG4gIHVybD86IHN0cmluZztcbiAgekluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEttbEZlYXR1cmVEYXRhIHtcbiAgYXV0aG9yOiBLbWxBdXRob3I7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIGluZm9XaW5kb3dIdG1sOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgc25pcHBldDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEttbE1vdXNlRXZlbnQgZXh0ZW5kcyBNb3VzZUV2ZW50IHtcbiAgZmVhdHVyZURhdGE6IEttbEZlYXR1cmVEYXRhO1xuICBwaXhlbE9mZnNldDogU2l6ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2l0TGF5ZXIgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBnZXRNYXAoKTogR29vZ2xlTWFwO1xuICBzZXRNYXAobWFwOiBHb29nbGVNYXApOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zaXRMYXllck9wdGlvbnMge1xuICB2aXNpYmxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpY3ljbGluZ0xheWVyIGV4dGVuZHMgTVZDT2JqZWN0IHtcbiAgZ2V0TWFwKCk6IEdvb2dsZU1hcDtcbiAgc2V0TWFwKG1hcDogR29vZ2xlTWFwKTogdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCaWN5Y2xpbmdMYXllck9wdGlvbnMge1xuICB2aXNpYmxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGEgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBmZWF0dXJlczogRmVhdHVyZVtdO1xuICBhZGRHZW9Kc29uKGdlb0pzb246IE9iamVjdCwgb3B0aW9ucz86IEdlb0pzb25PcHRpb25zKTogRmVhdHVyZVtdO1xuICByZW1vdmUoZmVhdHVyZTogRmVhdHVyZSk6IHZvaWQ7XG4gIHNldENvbnRyb2xQb3NpdGlvbihjb250cm9sUG9zaXRpb246IENvbnRyb2xQb3NpdGlvbik6IHZvaWQ7XG4gIHNldENvbnRyb2xzKGNvbnRyb2xzOiBzdHJpbmdbXSk6IHZvaWQ7XG4gIHNldERyYXdpbmdNb2RlKGRyYXdpbmdNb2RlOiBzdHJpbmcpOiB2b2lkO1xuICBzZXRNYXAobWFwOiBHb29nbGVNYXApOiB2b2lkO1xuICAvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuICAvKlxuICAqIFRzbGludCBjb25maWd1cmF0aW9uIGNoZWNrLXBhcmFtZXRlcnMgd2lsbCBwcm9tcHQgZXJyb3JzIGZvciB0aGVzZSBsaW5lcyBvZiBjb2RlLlxuICAqIGh0dHBzOi8vcGFsYW50aXIuZ2l0aHViLmlvL3RzbGludC9ydWxlcy9uby11bnVzZWQtdmFyaWFibGUvXG4gICovXG4gIHNldFN0eWxlKHN0eWxlOiAoKSA9PiB2b2lkKTogdm9pZDtcbiAgZm9yRWFjaChjYWxsYmFjazogKGZlYXR1cmU6IEZlYXR1cmUpID0+IHZvaWQpOiB2b2lkO1xuICBsb2FkR2VvSnNvbih1cmw6IHN0cmluZywgb3B0aW9ucz86IEdlb0pzb25PcHRpb25zLCBjYWxsYmFjaz86IChmZWF0czogRmVhdHVyZVtdKSA9PiB2b2lkKTogdm9pZDtcbiAgLyogdHNsaW50OmVuYWJsZSAqL1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmUgZXh0ZW5kcyBNVkNPYmplY3Qge1xuICBpZD86IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZ2VvbWV0cnk6IEdlb21ldHJ5O1xuICBwcm9wZXJ0aWVzOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YU9wdGlvbnMge1xuICBjb250cm9sUG9zaXRpb24/OiBDb250cm9sUG9zaXRpb247XG4gIGNvbnRyb2xzPzogc3RyaW5nW107XG4gIGRyYXdpbmdNb2RlPzogc3RyaW5nO1xuICBmZWF0dXJlRmFjdG9yeT86IChnZW9tZXRyeTogR2VvbWV0cnkpID0+IEZlYXR1cmU7XG4gIG1hcD86IEdvb2dsZU1hcDtcbiAgc3R5bGU/OiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFNb3VzZUV2ZW50IGV4dGVuZHMgTW91c2VFdmVudCB7XG4gIGZlYXR1cmU6IEZlYXR1cmU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvSnNvbk9wdGlvbnMge1xuICBpZFByb3BlcnR5TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb21ldHJ5IHtcbiAgdHlwZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIElkZW50aWZpZXJzIHVzZWQgdG8gc3BlY2lmeSB0aGUgcGxhY2VtZW50IG9mIGNvbnRyb2xzIG9uIHRoZSBtYXAuIENvbnRyb2xzIGFyZVxuICogcG9zaXRpb25lZCByZWxhdGl2ZSB0byBvdGhlciBjb250cm9scyBpbiB0aGUgc2FtZSBsYXlvdXQgcG9zaXRpb24uIENvbnRyb2xzIHRoYXRcbiAqIGFyZSBhZGRlZCBmaXJzdCBhcmUgcG9zaXRpb25lZCBjbG9zZXIgdG8gdGhlIGVkZ2Ugb2YgdGhlIG1hcC5cbiAqL1xuZXhwb3J0IGVudW0gQ29udHJvbFBvc2l0aW9uIHtcbiAgUklHSFRfQk9UVE9NLFxuICBUT1BfTEVGVCxcbiAgVE9QX0NFTlRFUixcbiAgVE9QX1JJR0hULFxuICBMRUZUX0NFTlRFUixcbiAgTEVGVF9UT1AsXG4gIExFRlRfQk9UVE9NLFxuICBSSUdIVF9UT1AsXG4gIFJJR0hUX0NFTlRFUixcbiAgQk9UVE9NX1JJR0hULFxuICBCT1RUT01fTEVGVCxcbiAgQk9UVE9NX0NFTlRFUixcbn1cblxuZXhwb3J0IGVudW0gTWFwVHlwZUlkIHtcbiAgLyoqIFRoaXMgbWFwIHR5cGUgZGlzcGxheXMgYSB0cmFuc3BhcmVudCBsYXllciBvZiBtYWpvciBzdHJlZXRzIG9uIHNhdGVsbGl0ZSBpbWFnZXMuICovXG4gIEhZQlJJRCxcbiAgLyoqIFRoaXMgbWFwIHR5cGUgZGlzcGxheXMgYSBub3JtYWwgc3RyZWV0IG1hcC4gKi9cbiAgUk9BRE1BUCxcbiAgLyoqIFRoaXMgbWFwIHR5cGUgZGlzcGxheXMgc2F0ZWxsaXRlIGltYWdlcy4gKi9cbiAgU0FURUxMSVRFLFxuICAvKiogVGhpcyBtYXAgdHlwZSBkaXNwbGF5cyBtYXBzIHdpdGggcGh5c2ljYWwgZmVhdHVyZXMgc3VjaCBhcyB0ZXJyYWluIGFuZCB2ZWdldGF0aW9uLiAqL1xuICBURVJSQUlOLFxufVxuXG4vKioqKiogQ29udHJvbHMgKioqKiovXG4vKiogT3B0aW9ucyBmb3IgdGhlIHJlbmRlcmluZyBvZiB0aGUgbWFwIHR5cGUgY29udHJvbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFwVHlwZUNvbnRyb2xPcHRpb25zIHtcbiAgLyoqIElEcyBvZiBtYXAgdHlwZXMgdG8gc2hvdyBpbiB0aGUgY29udHJvbC4gKi9cbiAgbWFwVHlwZUlkcz86IChNYXBUeXBlSWQgfCBzdHJpbmcpW107XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBpZC4gVXNlZCB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbCBvbiB0aGUgbWFwLlxuICAgKiBUaGUgZGVmYXVsdCBwb3NpdGlvbiBpcyBUT1BfUklHSFQuXG4gICAqL1xuICBwb3NpdGlvbj86IENvbnRyb2xQb3NpdGlvbjtcbiAgLyoqIFN0eWxlIGlkLiBVc2VkIHRvIHNlbGVjdCB3aGF0IHN0eWxlIG9mIG1hcCB0eXBlIGNvbnRyb2wgdG8gZGlzcGxheS4gKi9cbiAgc3R5bGU/OiBNYXBUeXBlQ29udHJvbFN0eWxlO1xufVxuXG5leHBvcnQgZW51bSBNYXBUeXBlQ29udHJvbFN0eWxlIHtcbiAgREVGQVVMVCA9IDAsXG4gIERST1BET1dOX01FTlUgPSAyLFxuICBIT1JJWk9OVEFMX0JBUiA9IDEsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcnZpZXdNYXBDb250cm9sT3B0aW9ucyB7XG4gIG9wZW5lZD86IGJvb2xlYW47XG59XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVuZGVyaW5nIG9mIHRoZSBwYW4gY29udHJvbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFuQ29udHJvbE9wdGlvbnMge1xuICAvKipcbiAgICogUG9zaXRpb24gaWQuIFVzZWQgdG8gc3BlY2lmeSB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbnRyb2wgb24gdGhlIG1hcC5cbiAgICogVGhlIGRlZmF1bHQgcG9zaXRpb24gaXMgVE9QX0xFRlQuXG4gICAqL1xuICBwb3NpdGlvbj86IENvbnRyb2xQb3NpdGlvbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZW5kZXJpbmcgb2YgdGhlIHJvdGF0ZSBjb250cm9sLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3RhdGVDb250cm9sT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBpZC4gVXNlZCB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbCBvbiB0aGUgbWFwLlxuICAgKiBUaGUgZGVmYXVsdCBwb3NpdGlvbiBpcyBUT1BfTEVGVC5cbiAgICovXG4gIHBvc2l0aW9uPzogQ29udHJvbFBvc2l0aW9uO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgdGhlIHJlbmRlcmluZyBvZiB0aGUgc2NhbGUgY29udHJvbC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NhbGVDb250cm9sT3B0aW9ucyB7XG4gIC8qKiBTdHlsZSBpZC4gVXNlZCB0byBzZWxlY3Qgd2hhdCBzdHlsZSBvZiBzY2FsZSBjb250cm9sIHRvIGRpc3BsYXkuICovXG4gIHN0eWxlPzogU2NhbGVDb250cm9sU3R5bGU7XG59XG5cbmV4cG9ydCBlbnVtIFNjYWxlQ29udHJvbFN0eWxlIHtcbiAgREVGQVVMVCxcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZW5kZXJpbmcgb2YgdGhlIFN0cmVldCBWaWV3IHBlZ21hbiBjb250cm9sIG9uIHRoZSBtYXAuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmVldFZpZXdDb250cm9sT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBpZC4gVXNlZCB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbCBvbiB0aGUgbWFwLiBUaGVcbiAgICogZGVmYXVsdCBwb3NpdGlvbiBpcyBlbWJlZGRlZCB3aXRoaW4gdGhlIG5hdmlnYXRpb24gKHpvb20gYW5kIHBhbikgY29udHJvbHMuXG4gICAqIElmIHRoaXMgcG9zaXRpb24gaXMgZW1wdHkgb3IgdGhlIHNhbWUgYXMgdGhhdCBzcGVjaWZpZWQgaW4gdGhlXG4gICAqIHpvb21Db250cm9sT3B0aW9ucyBvciBwYW5Db250cm9sT3B0aW9ucywgdGhlIFN0cmVldCBWaWV3IGNvbnRyb2wgd2lsbCBiZVxuICAgKiBkaXNwbGF5ZWQgYXMgcGFydCBvZiB0aGUgbmF2aWdhdGlvbiBjb250cm9scy4gT3RoZXJ3aXNlLCBpdCB3aWxsIGJlIGRpc3BsYXllZFxuICAgKiBzZXBhcmF0ZWx5LlxuICAgKi9cbiAgcG9zaXRpb24/OiBDb250cm9sUG9zaXRpb247XG59XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVuZGVyaW5nIG9mIHRoZSB6b29tIGNvbnRyb2wuICovXG5leHBvcnQgaW50ZXJmYWNlIFpvb21Db250cm9sT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBpZC4gVXNlZCB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbCBvbiB0aGUgbWFwLlxuICAgKiBUaGUgZGVmYXVsdCBwb3NpdGlvbiBpcyBUT1BfTEVGVC5cbiAgICovXG4gIHBvc2l0aW9uPzogQ29udHJvbFBvc2l0aW9uO1xuICBzdHlsZT86IFpvb21Db250cm9sU3R5bGU7XG59XG5cbmV4cG9ydCBlbnVtIFpvb21Db250cm9sU3R5bGUge1xuICBERUZBVUxULFxuICBMQVJHRSxcbiAgU01BTEwsXG59XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVuZGVyaW5nIG9mIHRoZSBmdWxsc2NyZWVuIGNvbnRyb2wuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGxzY3JlZW5Db250cm9sT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQb3NpdGlvbiBpZC4gVXNlZCB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbCBvbiB0aGUgbWFwLlxuICAgKiBUaGUgZGVmYXVsdCBwb3NpdGlvbiBpcyBSSUdIVF9UT1AuXG4gICAqL1xuICBwb3NpdGlvbj86IENvbnRyb2xQb3NpdGlvbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZXN0cmljdGluZyB0aGUgYm91bmRzIG9mIHRoZSBtYXAuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hcFJlc3RyaWN0aW9uIHtcbiAgbGF0TG5nQm91bmRzOiBMYXRMbmdCb3VuZHMgfCBMYXRMbmdCb3VuZHNMaXRlcmFsO1xuICBzdHJpY3RCb3VuZHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb2NvZGVyIHtcbiAgZ2VvY29kZTogKHJlcXVlc3Q6IEdlb2NvZGVyUmVxdWVzdCwgZ29vZ2xlQ2FsbGJhY2s6IChyZXN1bHRzOiBHZW9jb2RlclJlc3VsdFtdLCBzdGF0dXM6IEdlb2NvZGVyU3RhdHVzKSA9PiB2b2lkKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb2NvZGVyQWRkcmVzc0NvbXBvbmVudCB7XG4gIGxvbmdfbmFtZTogc3RyaW5nO1xuICBzaG9ydF9uYW1lOiBzdHJpbmc7XG4gIHR5cGVzOiBzdHJpbmdbXTtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHJlc3RyaWN0aW5nIHRoZSBnZW9jb2RlciByZXN1bHRzICovXG5leHBvcnQgaW50ZXJmYWNlIEdlb2NvZGVyQ29tcG9uZW50UmVzdHJpY3Rpb25zIHtcbiAgYWRtaW5pc3RyYXRpdmVBcmVhPzogc3RyaW5nO1xuICBjb3VudHJ5Pzogc3RyaW5nO1xuICBsb2NhbGl0eT86IHN0cmluZztcbiAgcG9zdGFsQ29kZT86IHN0cmluZztcbiAgcm91dGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VvY29kZXJHZW9tZXRyeSB7XG4gIGJvdW5kczogTGF0TG5nQm91bmRzO1xuICBsb2NhdGlvbjogTGF0TG5nO1xuICBsb2NhdGlvbl90eXBlOiBHZW9jb2RlckxvY2F0aW9uVHlwZTtcbiAgdmlld3BvcnQ6IExhdExuZ0JvdW5kcztcbn1cblxuZXhwb3J0IGVudW0gR2VvY29kZXJMb2NhdGlvblR5cGUge1xuICBBUFBST1hJTUFURSA9ICdBUFBST1hJTUFURScsXG4gIEdFT01FVFJJQ19DRU5URVIgPSAnR0VPTUVUUklDX0NFTlRFUicsXG4gIFJBTkdFX0lOVEVSUE9MQVRFRCA9ICdSQU5HRV9JTlRFUlBPTEFURUQnLFxuICBST09GVE9QID0gJ1JPT0ZUT1AnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdlb2NvZGVyUmVxdWVzdCB7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIGJvdW5kcz86IExhdExuZ0JvdW5kcyB8IExhdExuZ0JvdW5kc0xpdGVyYWw7XG4gIGNvbXBvbmVudFJlc3RyaWN0aW9ucz86IEdlb2NvZGVyQ29tcG9uZW50UmVzdHJpY3Rpb25zO1xuICBsb2NhdGlvbj86IExhdExuZyB8IExhdExuZ0xpdGVyYWw7XG4gIHBsYWNlSWQ/OiBzdHJpbmc7XG4gIHJlZ2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZW9jb2RlclJlc3VsdCB7XG4gIGFkZHJlc3NfY29tcG9uZW50czogR2VvY29kZXJBZGRyZXNzQ29tcG9uZW50W107XG4gIGZvcm1hdHRlZF9hZGRyZXNzOiBzdHJpbmc7XG4gIGdlb21ldHJ5OiBHZW9jb2Rlckdlb21ldHJ5O1xuICBwYXJ0aWFsX21hdGNoOiBib29sZWFuO1xuICBwbGFjZV9pZDogc3RyaW5nO1xuICBwb3N0Y29kZV9sb2NhbGl0aWVzOiBzdHJpbmdbXTtcbiAgdHlwZXM6IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgZW51bSBHZW9jb2RlclN0YXR1cyB7XG4gIEVSUk9SID0gJ0VSUk9SJyxcbiAgSU5WQUxJRF9SRVFVRVNUID0gJ0lOVkFMSURfUkVRVUVTVCcsXG4gIE9LID0gJ09LJyxcbiAgT1ZFUl9RVUVSWV9MSU1JVCA9ICdPVkVSX1FVRVJZX0xJTUlUJyxcbiAgUkVRVUVTVF9ERU5JRUQgPSAnUkVRVUVTVF9ERU5JRUQnLFxuICBVTktOT1dOX0VSUk9SID0gJ1VOS05PV05fRVJST1InLFxuICBaRVJPX1JFU1VMVFMgPSAnWkVST19SRVNVTFRTJyxcbn1cbiJdfQ==
import * as tslib_1 from "tslib";
import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
import { Inject, Injectable, InjectionToken, LOCALE_ID, Optional } from '@angular/core';
import { DocumentRef, WindowRef } from '../../utils/browser-globals';

@@ -18,5 +18,6 @@ import { MapsAPILoader } from './maps-api-loader';

tslib_1.__extends(LazyMapsAPILoader, _super);
function LazyMapsAPILoader(config, w, d) {
function LazyMapsAPILoader(config, w, d, localeId) {
if (config === void 0) { config = null; }
var _this = _super.call(this) || this;
_this.localeId = localeId;
_this._SCRIPT_ID = 'agmGoogleMapsApiScript';

@@ -88,3 +89,3 @@ _this.callbackName = "agmLazyMapsAPILoader";

region: this._config.region,
language: this._config.language,
language: this._config.language || this.localeId !== 'en-US' ? this.localeId : null,
};

@@ -115,3 +116,4 @@ var params = Object.keys(queryParams)

{ type: WindowRef },
{ type: DocumentRef }
{ type: DocumentRef },
{ type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }
]; };

@@ -121,3 +123,4 @@ LazyMapsAPILoader = tslib_1.__decorate([

tslib_1.__param(0, Optional()), tslib_1.__param(0, Inject(LAZY_MAPS_API_CONFIG)),
tslib_1.__metadata("design:paramtypes", [Object, WindowRef, DocumentRef])
tslib_1.__param(3, Inject(LOCALE_ID)),
tslib_1.__metadata("design:paramtypes", [Object, WindowRef, DocumentRef, String])
], LazyMapsAPILoader);

@@ -127,2 +130,2 @@ return LazyMapsAPILoader;

export { LazyMapsAPILoader };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1tYXBzLWFwaS1sb2FkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9tYXBzLWFwaS1sb2FkZXIvbGF6eS1tYXBzLWFwaS1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxDQUFOLElBQVksd0JBSVg7QUFKRCxXQUFZLHdCQUF3QjtJQUNsQyx1RUFBUSxDQUFBO0lBQ1IseUVBQVMsQ0FBQTtJQUNULHVFQUFRLENBQUE7QUFDVixDQUFDLEVBSlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQUluQztBQUVEOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxJQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUFpQywwQ0FBMEMsQ0FBQyxDQUFDO0FBaUVuSTtJQUF1Qyw2Q0FBYTtJQVFsRCwyQkFBc0QsTUFBa0IsRUFBRSxDQUFZLEVBQUUsQ0FBYztRQUFoRCx1QkFBQSxFQUFBLGFBQWtCO1FBQXhFLFlBQ0UsaUJBQU8sU0FJUjtRQVJrQixnQkFBVSxHQUFXLHdCQUF3QixDQUFDO1FBQzlDLGtCQUFZLEdBQVcsc0JBQXNCLENBQUM7UUFJL0QsS0FBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzVCLEtBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLEtBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDOztJQUN4QixDQUFDO0lBRUQsZ0NBQUksR0FBSjtRQUNFLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFTLENB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LENBQUMsR0FBRyxTQUFJLEtBQUssQ0FBQyxLQUFPLENBQUM7UUFDdkMsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLE9BQVUsUUFBUSxVQUFLLFdBQVcsU0FBSSxNQUFRLENBQUM7SUFDakQsQ0FBQzs7Z0RBaEdZLFFBQVEsWUFBSSxNQUFNLFNBQUMsb0JBQW9CO2dCQUF5QixTQUFTO2dCQUFLLFdBQVc7O0lBUjNGLGlCQUFpQjtRQUQ3QixVQUFVLEVBQUU7UUFTRSxtQkFBQSxRQUFRLEVBQUUsQ0FBQSxFQUFFLG1CQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO3lEQUF3QixTQUFTLEVBQUssV0FBVztPQVIzRixpQkFBaUIsQ0F5RzdCO0lBQUQsd0JBQUM7Q0FBQSxBQXpHRCxDQUF1QyxhQUFhLEdBeUduRDtTQXpHWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEb2N1bWVudFJlZiwgV2luZG93UmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvYnJvd3Nlci1nbG9iYWxzJztcblxuaW1wb3J0IHsgTWFwc0FQSUxvYWRlciB9IGZyb20gJy4vbWFwcy1hcGktbG9hZGVyJztcblxuZXhwb3J0IGVudW0gR29vZ2xlTWFwc1NjcmlwdFByb3RvY29sIHtcbiAgSFRUUCA9IDEsXG4gIEhUVFBTID0gMixcbiAgQVVUTyA9IDMsXG59XG5cbi8qKlxuICogVG9rZW4gZm9yIHRoZSBjb25maWcgb2YgdGhlIExhenlNYXBzQVBJTG9hZGVyLiBQbGVhc2UgcHJvdmlkZSBhbiBvYmplY3Qgb2YgdHlwZSB7QGxpbmtcbiAqIExhenlNYXBzQVBJTG9hZGVyQ29uZmlnfS5cbiAqL1xuZXhwb3J0IGNvbnN0IExBWllfTUFQU19BUElfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPExhenlNYXBzQVBJTG9hZGVyQ29uZmlnTGl0ZXJhbD4oJ2FuZ3VsYXItZ29vZ2xlLW1hcHMgTEFaWV9NQVBTX0FQSV9DT05GSUcnKTtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciB0aGUge0BsaW5rIExhenlNYXBzQVBJTG9hZGVyfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYXp5TWFwc0FQSUxvYWRlckNvbmZpZ0xpdGVyYWwge1xuICAvKipcbiAgICogVGhlIEdvb2dsZSBNYXBzIEFQSSBLZXkgKHNlZTpcbiAgICogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvZ2V0LWFwaS1rZXkpXG4gICAqL1xuICBhcGlLZXk/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBHb29nbGUgTWFwcyBjbGllbnQgSUQgKGZvciBwcmVtaXVtIHBsYW5zKS5cbiAgICogV2hlbiB5b3UgaGF2ZSBhIEdvb2dsZSBNYXBzIEFQSXMgUHJlbWl1bSBQbGFuIGxpY2Vuc2UsIHlvdSBtdXN0IGF1dGhlbnRpY2F0ZVxuICAgKiB5b3VyIGFwcGxpY2F0aW9uIHdpdGggZWl0aGVyIGFuIEFQSSBrZXkgb3IgYSBjbGllbnQgSUQuXG4gICAqIFRoZSBHb29nbGUgTWFwcyBBUEkgd2lsbCBmYWlsIHRvIGxvYWQgaWYgYm90aCBhIGNsaWVudCBJRCBhbmQgYW4gQVBJIGtleSBhcmUgaW5jbHVkZWQuXG4gICAqL1xuICBjbGllbnRJZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdvb2dsZSBNYXBzIGNoYW5uZWwgbmFtZSAoZm9yIHByZW1pdW0gcGxhbnMpLlxuICAgKiBBIGNoYW5uZWwgcGFyYW1ldGVyIGlzIGFuIG9wdGlvbmFsIHBhcmFtZXRlciB0aGF0IGFsbG93cyB5b3UgdG8gdHJhY2sgdXNhZ2UgdW5kZXIgeW91ciBjbGllbnRcbiAgICogSUQgYnkgYXNzaWduaW5nIGEgZGlzdGluY3QgY2hhbm5lbCB0byBlYWNoIG9mIHlvdXIgYXBwbGljYXRpb25zLlxuICAgKi9cbiAgY2hhbm5lbD86IHN0cmluZztcblxuICAvKipcbiAgICogR29vZ2xlIE1hcHMgQVBJIHZlcnNpb24uXG4gICAqL1xuICBhcGlWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3N0IGFuZCBQYXRoIHVzZWQgZm9yIHRoZSBgPHNjcmlwdD5gIHRhZy5cbiAgICovXG4gIGhvc3RBbmRQYXRoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQcm90b2NvbCB1c2VkIGZvciB0aGUgYDxzY3JpcHQ+YCB0YWcuXG4gICAqL1xuICBwcm90b2NvbD86IEdvb2dsZU1hcHNTY3JpcHRQcm90b2NvbDtcblxuICAvKipcbiAgICogRGVmaW5lcyB3aGljaCBHb29nbGUgTWFwcyBsaWJyYXJpZXMgc2hvdWxkIGdldCBsb2FkZWQuXG4gICAqL1xuICBsaWJyYXJpZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYmlhcyBmb3IgdGhlIG1hcCBiZWhhdmlvciBpcyBVUy5cbiAgICogSWYgeW91IHdpc2ggdG8gYWx0ZXIgeW91ciBhcHBsaWNhdGlvbiB0byBzZXJ2ZSBkaWZmZXJlbnQgbWFwIHRpbGVzIG9yIGJpYXMgdGhlXG4gICAqIGFwcGxpY2F0aW9uLCB5b3UgY2FuIG92ZXJ3cml0ZSB0aGUgZGVmYXVsdCBiZWhhdmlvciAoVVMpIGJ5IGRlZmluaW5nIGEgYHJlZ2lvbmAuXG4gICAqIFNlZSBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9iYXNpY3MjUmVnaW9uXG4gICAqL1xuICByZWdpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBHb29nbGUgTWFwcyBBUEkgdXNlcyB0aGUgYnJvd3NlcidzIHByZWZlcnJlZCBsYW5ndWFnZSB3aGVuIGRpc3BsYXlpbmdcbiAgICogdGV4dHVhbCBpbmZvcm1hdGlvbi4gSWYgeW91IHdpc2ggdG8gb3ZlcndyaXRlIHRoaXMgYmVoYXZpb3IgYW5kIGZvcmNlIHRoZSBBUElcbiAgICogdG8gdXNlIGEgZ2l2ZW4gbGFuZ3VhZ2UsIHlvdSBjYW4gdXNlIHRoaXMgc2V0dGluZy5cbiAgICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L2Jhc2ljcyNMYW5ndWFnZVxuICAgKi9cbiAgbGFuZ3VhZ2U/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMYXp5TWFwc0FQSUxvYWRlciBleHRlbmRzIE1hcHNBUElMb2FkZXIge1xuICBwcm90ZWN0ZWQgX3NjcmlwdExvYWRpbmdQcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuICBwcm90ZWN0ZWQgX2NvbmZpZzogTGF6eU1hcHNBUElMb2FkZXJDb25maWdMaXRlcmFsO1xuICBwcm90ZWN0ZWQgX3dpbmRvd1JlZjogV2luZG93UmVmO1xuICBwcm90ZWN0ZWQgX2RvY3VtZW50UmVmOiBEb2N1bWVudFJlZjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9TQ1JJUFRfSUQ6IHN0cmluZyA9ICdhZ21Hb29nbGVNYXBzQXBpU2NyaXB0JztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhbGxiYWNrTmFtZTogc3RyaW5nID0gYGFnbUxhenlNYXBzQVBJTG9hZGVyYDtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KExBWllfTUFQU19BUElfQ09ORklHKSBjb25maWc6IGFueSA9IG51bGwsIHc6IFdpbmRvd1JlZiwgZDogRG9jdW1lbnRSZWYpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZyB8fCB7fTtcbiAgICB0aGlzLl93aW5kb3dSZWYgPSB3O1xuICAgIHRoaXMuX2RvY3VtZW50UmVmID0gZDtcbiAgfVxuXG4gIGxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgd2luZG93ID0gdGhpcy5fd2luZG93UmVmLmdldE5hdGl2ZVdpbmRvdygpIGFzIGFueTtcbiAgICBpZiAod2luZG93Lmdvb2dsZSAmJiB3aW5kb3cuZ29vZ2xlLm1hcHMpIHtcbiAgICAgIC8vIEdvb2dsZSBtYXBzIGFscmVhZHkgbG9hZGVkIG9uIHRoZSBwYWdlLlxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9zY3JpcHRMb2FkaW5nUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3NjcmlwdExvYWRpbmdQcm9taXNlO1xuICAgIH1cblxuICAgIC8vIHRoaXMgY2FuIGhhcHBlbiBpbiBITVIgc2l0dWF0aW9ucyBvciBTdGFja2JsaXR6LmlvIGVkaXRvcnMuXG4gICAgY29uc3Qgc2NyaXB0T25QYWdlID0gdGhpcy5fZG9jdW1lbnRSZWYuZ2V0TmF0aXZlRG9jdW1lbnQoKS5nZXRFbGVtZW50QnlJZCh0aGlzLl9TQ1JJUFRfSUQpO1xuICAgIGlmIChzY3JpcHRPblBhZ2UpIHtcbiAgICAgIHRoaXMuX2Fzc2lnblNjcmlwdExvYWRpbmdQcm9taXNlKHNjcmlwdE9uUGFnZSk7XG4gICAgICByZXR1cm4gdGhpcy5fc2NyaXB0TG9hZGluZ1Byb21pc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5fZG9jdW1lbnRSZWYuZ2V0TmF0aXZlRG9jdW1lbnQoKS5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICBzY3JpcHQuaWQgPSB0aGlzLl9TQ1JJUFRfSUQ7XG4gICAgc2NyaXB0LnNyYyA9IHRoaXMuX2dldFNjcmlwdFNyYyh0aGlzLmNhbGxiYWNrTmFtZSk7XG4gICAgdGhpcy5fYXNzaWduU2NyaXB0TG9hZGluZ1Byb21pc2Uoc2NyaXB0KTtcbiAgICB0aGlzLl9kb2N1bWVudFJlZi5nZXROYXRpdmVEb2N1bWVudCgpLmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICByZXR1cm4gdGhpcy5fc2NyaXB0TG9hZGluZ1Byb21pc2U7XG4gIH1cblxuICBwcml2YXRlIF9hc3NpZ25TY3JpcHRMb2FkaW5nUHJvbWlzZShzY3JpcHRFbGVtOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuX3NjcmlwdExvYWRpbmdQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICAodGhpcy5fd2luZG93UmVmLmdldE5hdGl2ZVdpbmRvdygpIGFzIGFueSlbdGhpcy5jYWxsYmFja05hbWVdID0gKCkgPT4ge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuXG4gICAgICBzY3JpcHRFbGVtLm9uZXJyb3IgPSAoZXJyb3I6IEV2ZW50KSA9PiB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9nZXRTY3JpcHRTcmMoY2FsbGJhY2tOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBwcm90b2NvbFR5cGU6IEdvb2dsZU1hcHNTY3JpcHRQcm90b2NvbCA9XG4gICAgICAgICh0aGlzLl9jb25maWcgJiYgdGhpcy5fY29uZmlnLnByb3RvY29sKSB8fCBHb29nbGVNYXBzU2NyaXB0UHJvdG9jb2wuSFRUUFM7XG4gICAgbGV0IHByb3RvY29sOiBzdHJpbmc7XG5cbiAgICBzd2l0Y2ggKHByb3RvY29sVHlwZSkge1xuICAgICAgY2FzZSBHb29nbGVNYXBzU2NyaXB0UHJvdG9jb2wuQVVUTzpcbiAgICAgICAgcHJvdG9jb2wgPSAnJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEdvb2dsZU1hcHNTY3JpcHRQcm90b2NvbC5IVFRQOlxuICAgICAgICBwcm90b2NvbCA9ICdodHRwOic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBHb29nbGVNYXBzU2NyaXB0UHJvdG9jb2wuSFRUUFM6XG4gICAgICAgIHByb3RvY29sID0gJ2h0dHBzOic7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGNvbnN0IGhvc3RBbmRQYXRoOiBzdHJpbmcgPSB0aGlzLl9jb25maWcuaG9zdEFuZFBhdGggfHwgJ21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvanMnO1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiB7W2tleTogc3RyaW5nXTogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPn0gPSB7XG4gICAgICB2OiB0aGlzLl9jb25maWcuYXBpVmVyc2lvbiB8fCAncXVhcnRlcmx5JyxcbiAgICAgIGNhbGxiYWNrOiBjYWxsYmFja05hbWUsXG4gICAgICBrZXk6IHRoaXMuX2NvbmZpZy5hcGlLZXksXG4gICAgICBjbGllbnQ6IHRoaXMuX2NvbmZpZy5jbGllbnRJZCxcbiAgICAgIGNoYW5uZWw6IHRoaXMuX2NvbmZpZy5jaGFubmVsLFxuICAgICAgbGlicmFyaWVzOiB0aGlzLl9jb25maWcubGlicmFyaWVzLFxuICAgICAgcmVnaW9uOiB0aGlzLl9jb25maWcucmVnaW9uLFxuICAgICAgbGFuZ3VhZ2U6IHRoaXMuX2NvbmZpZy5sYW5ndWFnZSxcbiAgICB9O1xuICAgIGNvbnN0IHBhcmFtczogc3RyaW5nID0gT2JqZWN0LmtleXMocXVlcnlQYXJhbXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoazogc3RyaW5nKSA9PiBxdWVyeVBhcmFtc1trXSAhPSBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGs6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGVtcHR5IGFycmF5c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFBcnJheS5pc0FycmF5KHF1ZXJ5UGFyYW1zW2tdKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBcnJheS5pc0FycmF5KHF1ZXJ5UGFyYW1zW2tdKSAmJiBxdWVyeVBhcmFtc1trXS5sZW5ndGggPiAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGs6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gam9pbiBhcnJheXMgYXMgY29tbWEgc2VwZXJhdGVkIHN0cmluZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpID0gcXVlcnlQYXJhbXNba107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge2tleTogaywgdmFsdWU6IGkuam9pbignLCcpfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7a2V5OiBrLCB2YWx1ZTogcXVlcnlQYXJhbXNba119O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoZW50cnk6IHtrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZ30pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtlbnRyeS5rZXl9PSR7ZW50cnkudmFsdWV9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcmJyk7XG4gICAgcmV0dXJuIGAke3Byb3RvY29sfS8vJHtob3N0QW5kUGF0aH0/JHtwYXJhbXN9YDtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1tYXBzLWFwaS1sb2FkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWdtL2NvcmUvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9tYXBzLWFwaS1sb2FkZXIvbGF6eS1tYXBzLWFwaS1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE1BQU0sQ0FBTixJQUFZLHdCQUlYO0FBSkQsV0FBWSx3QkFBd0I7SUFDbEMsdUVBQVEsQ0FBQTtJQUNSLHlFQUFTLENBQUE7SUFDVCx1RUFBUSxDQUFBO0FBQ1YsQ0FBQyxFQUpXLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFJbkM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsSUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBaUMsMENBQTBDLENBQUMsQ0FBQztBQWlFbkk7SUFBdUMsNkNBQWE7SUFRbEQsMkJBQXNELE1BQWtCLEVBQUUsQ0FBWSxFQUFFLENBQWMsRUFDMUUsUUFBZ0I7UUFEVSx1QkFBQSxFQUFBLGFBQWtCO1FBQXhFLFlBRUUsaUJBQU8sU0FJUjtRQUwyQixjQUFRLEdBQVIsUUFBUSxDQUFRO1FBSnpCLGdCQUFVLEdBQVcsd0JBQXdCLENBQUM7UUFDOUMsa0JBQVksR0FBVyxzQkFBc0IsQ0FBQztRQUsvRCxLQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDNUIsS0FBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDcEIsS0FBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7O0lBQ3hCLENBQUM7SUFFRCxnQ0FBSSxHQUFKO1FBQ0Us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T0FBTyxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxVQUFDLEtBQW1DO1lBQ3ZDLE9BQVUsS0FBSyxDQUFDLEdBQUcsU0FBSSxLQUFLLENBQUMsS0FBTyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxPQUFVLFFBQVEsVUFBSyxXQUFXLFNBQUksTUFBUSxDQUFDO0lBQ2pELENBQUM7O2dEQWpHWSxRQUFRLFlBQUksTUFBTSxTQUFDLG9CQUFvQjtnQkFBeUIsU0FBUztnQkFBSyxXQUFXOzZDQUNwRyxNQUFNLFNBQUMsU0FBUzs7SUFUUCxpQkFBaUI7UUFEN0IsVUFBVSxFQUFFO1FBU0UsbUJBQUEsUUFBUSxFQUFFLENBQUEsRUFBRSxtQkFBQSxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtRQUNuRCxtQkFBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7eURBRDBELFNBQVMsRUFBSyxXQUFXO09BUjNGLGlCQUFpQixDQTBHN0I7SUFBRCx3QkFBQztDQUFBLEFBMUdELENBQXVDLGFBQWEsR0EwR25EO1NBMUdZLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIExPQ0FMRV9JRCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRG9jdW1lbnRSZWYsIFdpbmRvd1JlZiB9IGZyb20gJy4uLy4uL3V0aWxzL2Jyb3dzZXItZ2xvYmFscyc7XG5cbmltcG9ydCB7IE1hcHNBUElMb2FkZXIgfSBmcm9tICcuL21hcHMtYXBpLWxvYWRlcic7XG5cbmV4cG9ydCBlbnVtIEdvb2dsZU1hcHNTY3JpcHRQcm90b2NvbCB7XG4gIEhUVFAgPSAxLFxuICBIVFRQUyA9IDIsXG4gIEFVVE8gPSAzLFxufVxuXG4vKipcbiAqIFRva2VuIGZvciB0aGUgY29uZmlnIG9mIHRoZSBMYXp5TWFwc0FQSUxvYWRlci4gUGxlYXNlIHByb3ZpZGUgYW4gb2JqZWN0IG9mIHR5cGUge0BsaW5rXG4gKiBMYXp5TWFwc0FQSUxvYWRlckNvbmZpZ30uXG4gKi9cbmV4cG9ydCBjb25zdCBMQVpZX01BUFNfQVBJX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxMYXp5TWFwc0FQSUxvYWRlckNvbmZpZ0xpdGVyYWw+KCdhbmd1bGFyLWdvb2dsZS1tYXBzIExBWllfTUFQU19BUElfQ09ORklHJyk7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIHtAbGluayBMYXp5TWFwc0FQSUxvYWRlcn0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGF6eU1hcHNBUElMb2FkZXJDb25maWdMaXRlcmFsIHtcbiAgLyoqXG4gICAqIFRoZSBHb29nbGUgTWFwcyBBUEkgS2V5IChzZWU6XG4gICAqIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL21hcHMvZG9jdW1lbnRhdGlvbi9qYXZhc2NyaXB0L2dldC1hcGkta2V5KVxuICAgKi9cbiAgYXBpS2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR29vZ2xlIE1hcHMgY2xpZW50IElEIChmb3IgcHJlbWl1bSBwbGFucykuXG4gICAqIFdoZW4geW91IGhhdmUgYSBHb29nbGUgTWFwcyBBUElzIFByZW1pdW0gUGxhbiBsaWNlbnNlLCB5b3UgbXVzdCBhdXRoZW50aWNhdGVcbiAgICogeW91ciBhcHBsaWNhdGlvbiB3aXRoIGVpdGhlciBhbiBBUEkga2V5IG9yIGEgY2xpZW50IElELlxuICAgKiBUaGUgR29vZ2xlIE1hcHMgQVBJIHdpbGwgZmFpbCB0byBsb2FkIGlmIGJvdGggYSBjbGllbnQgSUQgYW5kIGFuIEFQSSBrZXkgYXJlIGluY2x1ZGVkLlxuICAgKi9cbiAgY2xpZW50SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBHb29nbGUgTWFwcyBjaGFubmVsIG5hbWUgKGZvciBwcmVtaXVtIHBsYW5zKS5cbiAgICogQSBjaGFubmVsIHBhcmFtZXRlciBpcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgdGhhdCBhbGxvd3MgeW91IHRvIHRyYWNrIHVzYWdlIHVuZGVyIHlvdXIgY2xpZW50XG4gICAqIElEIGJ5IGFzc2lnbmluZyBhIGRpc3RpbmN0IGNoYW5uZWwgdG8gZWFjaCBvZiB5b3VyIGFwcGxpY2F0aW9ucy5cbiAgICovXG4gIGNoYW5uZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdvb2dsZSBNYXBzIEFQSSB2ZXJzaW9uLlxuICAgKi9cbiAgYXBpVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSG9zdCBhbmQgUGF0aCB1c2VkIGZvciB0aGUgYDxzY3JpcHQ+YCB0YWcuXG4gICAqL1xuICBob3N0QW5kUGF0aD86IHN0cmluZztcblxuICAvKipcbiAgICogUHJvdG9jb2wgdXNlZCBmb3IgdGhlIGA8c2NyaXB0PmAgdGFnLlxuICAgKi9cbiAgcHJvdG9jb2w/OiBHb29nbGVNYXBzU2NyaXB0UHJvdG9jb2w7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgd2hpY2ggR29vZ2xlIE1hcHMgbGlicmFyaWVzIHNob3VsZCBnZXQgbG9hZGVkLlxuICAgKi9cbiAgbGlicmFyaWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGJpYXMgZm9yIHRoZSBtYXAgYmVoYXZpb3IgaXMgVVMuXG4gICAqIElmIHlvdSB3aXNoIHRvIGFsdGVyIHlvdXIgYXBwbGljYXRpb24gdG8gc2VydmUgZGlmZmVyZW50IG1hcCB0aWxlcyBvciBiaWFzIHRoZVxuICAgKiBhcHBsaWNhdGlvbiwgeW91IGNhbiBvdmVyd3JpdGUgdGhlIGRlZmF1bHQgYmVoYXZpb3IgKFVTKSBieSBkZWZpbmluZyBhIGByZWdpb25gLlxuICAgKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vbWFwcy9kb2N1bWVudGF0aW9uL2phdmFzY3JpcHQvYmFzaWNzI1JlZ2lvblxuICAgKi9cbiAgcmVnaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR29vZ2xlIE1hcHMgQVBJIHVzZXMgdGhlIGJyb3dzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2Ugd2hlbiBkaXNwbGF5aW5nXG4gICAqIHRleHR1YWwgaW5mb3JtYXRpb24uIElmIHlvdSB3aXNoIHRvIG92ZXJ3cml0ZSB0aGlzIGJlaGF2aW9yIGFuZCBmb3JjZSB0aGUgQVBJXG4gICAqIHRvIHVzZSBhIGdpdmVuIGxhbmd1YWdlLCB5b3UgY2FuIHVzZSB0aGlzIHNldHRpbmcuXG4gICAqIFNlZSBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9tYXBzL2RvY3VtZW50YXRpb24vamF2YXNjcmlwdC9iYXNpY3MjTGFuZ3VhZ2VcbiAgICovXG4gIGxhbmd1YWdlPzogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTGF6eU1hcHNBUElMb2FkZXIgZXh0ZW5kcyBNYXBzQVBJTG9hZGVyIHtcbiAgcHJvdGVjdGVkIF9zY3JpcHRMb2FkaW5nUHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcbiAgcHJvdGVjdGVkIF9jb25maWc6IExhenlNYXBzQVBJTG9hZGVyQ29uZmlnTGl0ZXJhbDtcbiAgcHJvdGVjdGVkIF93aW5kb3dSZWY6IFdpbmRvd1JlZjtcbiAgcHJvdGVjdGVkIF9kb2N1bWVudFJlZjogRG9jdW1lbnRSZWY7XG4gIHByb3RlY3RlZCByZWFkb25seSBfU0NSSVBUX0lEOiBzdHJpbmcgPSAnYWdtR29vZ2xlTWFwc0FwaVNjcmlwdCc7XG4gIHByb3RlY3RlZCByZWFkb25seSBjYWxsYmFja05hbWU6IHN0cmluZyA9IGBhZ21MYXp5TWFwc0FQSUxvYWRlcmA7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChMQVpZX01BUFNfQVBJX0NPTkZJRykgY29uZmlnOiBhbnkgPSBudWxsLCB3OiBXaW5kb3dSZWYsIGQ6IERvY3VtZW50UmVmLFxuICAgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgbG9jYWxlSWQ6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fY29uZmlnID0gY29uZmlnIHx8IHt9O1xuICAgIHRoaXMuX3dpbmRvd1JlZiA9IHc7XG4gICAgdGhpcy5fZG9jdW1lbnRSZWYgPSBkO1xuICB9XG5cbiAgbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB3aW5kb3cgPSB0aGlzLl93aW5kb3dSZWYuZ2V0TmF0aXZlV2luZG93KCkgYXMgYW55O1xuICAgIGlmICh3aW5kb3cuZ29vZ2xlICYmIHdpbmRvdy5nb29nbGUubWFwcykge1xuICAgICAgLy8gR29vZ2xlIG1hcHMgYWxyZWFkeSBsb2FkZWQgb24gdGhlIHBhZ2UuXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3NjcmlwdExvYWRpbmdQcm9taXNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2NyaXB0TG9hZGluZ1Byb21pc2U7XG4gICAgfVxuXG4gICAgLy8gdGhpcyBjYW4gaGFwcGVuIGluIEhNUiBzaXR1YXRpb25zIG9yIFN0YWNrYmxpdHouaW8gZWRpdG9ycy5cbiAgICBjb25zdCBzY3JpcHRPblBhZ2UgPSB0aGlzLl9kb2N1bWVudFJlZi5nZXROYXRpdmVEb2N1bWVudCgpLmdldEVsZW1lbnRCeUlkKHRoaXMuX1NDUklQVF9JRCk7XG4gICAgaWYgKHNjcmlwdE9uUGFnZSkge1xuICAgICAgdGhpcy5fYXNzaWduU2NyaXB0TG9hZGluZ1Byb21pc2Uoc2NyaXB0T25QYWdlKTtcbiAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRMb2FkaW5nUHJvbWlzZTtcbiAgICB9XG5cbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLl9kb2N1bWVudFJlZi5nZXROYXRpdmVEb2N1bWVudCgpLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICBzY3JpcHQuZGVmZXIgPSB0cnVlO1xuICAgIHNjcmlwdC5pZCA9IHRoaXMuX1NDUklQVF9JRDtcbiAgICBzY3JpcHQuc3JjID0gdGhpcy5fZ2V0U2NyaXB0U3JjKHRoaXMuY2FsbGJhY2tOYW1lKTtcbiAgICB0aGlzLl9hc3NpZ25TY3JpcHRMb2FkaW5nUHJvbWlzZShzY3JpcHQpO1xuICAgIHRoaXMuX2RvY3VtZW50UmVmLmdldE5hdGl2ZURvY3VtZW50KCkuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIHJldHVybiB0aGlzLl9zY3JpcHRMb2FkaW5nUHJvbWlzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnblNjcmlwdExvYWRpbmdQcm9taXNlKHNjcmlwdEVsZW06IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fc2NyaXB0TG9hZGluZ1Byb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgICh0aGlzLl93aW5kb3dSZWYuZ2V0TmF0aXZlV2luZG93KCkgYXMgYW55KVt0aGlzLmNhbGxiYWNrTmFtZV0gPSAoKSA9PiB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH07XG5cbiAgICAgIHNjcmlwdEVsZW0ub25lcnJvciA9IChlcnJvcjogRXZlbnQpID0+IHtcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2dldFNjcmlwdFNyYyhjYWxsYmFja05hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHByb3RvY29sVHlwZTogR29vZ2xlTWFwc1NjcmlwdFByb3RvY29sID1cbiAgICAgICAgKHRoaXMuX2NvbmZpZyAmJiB0aGlzLl9jb25maWcucHJvdG9jb2wpIHx8IEdvb2dsZU1hcHNTY3JpcHRQcm90b2NvbC5IVFRQUztcbiAgICBsZXQgcHJvdG9jb2w6IHN0cmluZztcblxuICAgIHN3aXRjaCAocHJvdG9jb2xUeXBlKSB7XG4gICAgICBjYXNlIEdvb2dsZU1hcHNTY3JpcHRQcm90b2NvbC5BVVRPOlxuICAgICAgICBwcm90b2NvbCA9ICcnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgR29vZ2xlTWFwc1NjcmlwdFByb3RvY29sLkhUVFA6XG4gICAgICAgIHByb3RvY29sID0gJ2h0dHA6JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEdvb2dsZU1hcHNTY3JpcHRQcm90b2NvbC5IVFRQUzpcbiAgICAgICAgcHJvdG9jb2wgPSAnaHR0cHM6JztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgY29uc3QgaG9zdEFuZFBhdGg6IHN0cmluZyA9IHRoaXMuX2NvbmZpZy5ob3N0QW5kUGF0aCB8fCAnbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9qcyc7XG4gICAgY29uc3QgcXVlcnlQYXJhbXM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+fSA9IHtcbiAgICAgIHY6IHRoaXMuX2NvbmZpZy5hcGlWZXJzaW9uIHx8ICdxdWFydGVybHknLFxuICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrTmFtZSxcbiAgICAgIGtleTogdGhpcy5fY29uZmlnLmFwaUtleSxcbiAgICAgIGNsaWVudDogdGhpcy5fY29uZmlnLmNsaWVudElkLFxuICAgICAgY2hhbm5lbDogdGhpcy5fY29uZmlnLmNoYW5uZWwsXG4gICAgICBsaWJyYXJpZXM6IHRoaXMuX2NvbmZpZy5saWJyYXJpZXMsXG4gICAgICByZWdpb246IHRoaXMuX2NvbmZpZy5yZWdpb24sXG4gICAgICBsYW5ndWFnZTogdGhpcy5fY29uZmlnLmxhbmd1YWdlIHx8IHRoaXMubG9jYWxlSWQgIT09ICdlbi1VUycgPyB0aGlzLmxvY2FsZUlkIDogbnVsbCxcbiAgICB9O1xuICAgIGNvbnN0IHBhcmFtczogc3RyaW5nID0gT2JqZWN0LmtleXMocXVlcnlQYXJhbXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcigoazogc3RyaW5nKSA9PiBxdWVyeVBhcmFtc1trXSAhPSBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoKGs6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGVtcHR5IGFycmF5c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFBcnJheS5pc0FycmF5KHF1ZXJ5UGFyYW1zW2tdKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChBcnJheS5pc0FycmF5KHF1ZXJ5UGFyYW1zW2tdKSAmJiBxdWVyeVBhcmFtc1trXS5sZW5ndGggPiAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGs6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gam9pbiBhcnJheXMgYXMgY29tbWEgc2VwZXJhdGVkIHN0cmluZ3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpID0gcXVlcnlQYXJhbXNba107XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge2tleTogaywgdmFsdWU6IGkuam9pbignLCcpfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7a2V5OiBrLCB2YWx1ZTogcXVlcnlQYXJhbXNba119O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoZW50cnk6IHtrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZ30pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtlbnRyeS5rZXl9PSR7ZW50cnkudmFsdWV9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKCcmJyk7XG4gICAgcmV0dXJuIGAke3Byb3RvY29sfS8vJHtob3N0QW5kUGF0aH0/JHtwYXJhbXN9YDtcbiAgfVxufVxuIl19
export * from './directives';
export * from './services';
export * from './map-types';
export { LatLngBounds, LatLng, LatLngLiteral, MapTypeStyle, Padding, PolyMouseEvent } from './services/google-maps-types';
export { AgmCoreModule } from './core.module';
import { LatLngLiteral } from './services/google-maps-types';
export { KmlMouseEvent, DataMouseEvent, LatLngBounds, LatLngBoundsLiteral, LatLngLiteral, PolyMouseEvent, MarkerLabel, } from './services/google-maps-types';
export { KmlMouseEvent, DataMouseEvent, LatLngBounds, LatLngBoundsLiteral, LatLng, LatLngLiteral, PolyMouseEvent, MarkerLabel, Geocoder, GeocoderAddressComponent, GeocoderComponentRestrictions, GeocoderGeometry, GeocoderLocationType, GeocoderRequest, GeocoderResult, GeocoderStatus, MapTypeStyle, Padding, ControlPosition, OverviewMapControlOptions, PanControlOptions, RotateControlOptions, MapTypeControlOptions, MapTypeId, ScaleControlOptions, ScaleControlStyle, StreetViewControlOptions, ZoomControlOptions, ZoomControlStyle, FullscreenControlOptions, CircleOptions, Circle, Polyline, PolylineOptions, Polygon, PolygonOptions, Rectangle, RectangleOptions, Marker, MarkerOptions, } from './services/google-maps-types';
/**

@@ -4,0 +4,0 @@ * MouseEvent gets emitted when the user triggers mouse events on the map.

@@ -15,4 +15,4 @@ {

"peerDependencies": {
"@angular/common": "^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0",
"@angular/core": "^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0"
"@angular/common": "^6.0.0 || ^7.0.0 || ^8.0.0",
"@angular/core": "^6.0.0 || ^7.0.0 || ^8.0.0"
},

@@ -32,3 +32,3 @@ "main": "bundles/agm-core.umd.js",

},
"version": "1.0.0",
"version": "1.1.0",
"repository": {

@@ -35,0 +35,0 @@ "type": "git",

export { CircleManager } from './services/managers/circle-manager';
export { DataLayerManager } from './services/managers/data-layer-manager';
export { FitBoundsAccessor, FitBoundsDetails } from './services/fit-bounds';
export { AgmGeocoder } from './services/geocoder-service';
export { GoogleMapsAPIWrapper } from './services/google-maps-api-wrapper';

@@ -5,0 +6,0 @@ export { GoogleMapsScriptProtocol, LAZY_MAPS_API_CONFIG, LazyMapsAPILoader, LazyMapsAPILoaderConfigLiteral, } from './services/maps-api-loader/lazy-maps-api-loader';

@@ -487,4 +487,4 @@ export declare var google: any;

DEFAULT = 0,
DROPDOWN_MENU = 1,
HORIZONTAL_BAR = 2
DROPDOWN_MENU = 2,
HORIZONTAL_BAR = 1
}

@@ -557,1 +557,55 @@ export interface OverviewMapControlOptions {

}
export interface Geocoder {
geocode: (request: GeocoderRequest, googleCallback: (results: GeocoderResult[], status: GeocoderStatus) => void) => void;
}
export interface GeocoderAddressComponent {
long_name: string;
short_name: string;
types: string[];
}
/** Options for restricting the geocoder results */
export interface GeocoderComponentRestrictions {
administrativeArea?: string;
country?: string;
locality?: string;
postalCode?: string;
route?: string;
}
export interface GeocoderGeometry {
bounds: LatLngBounds;
location: LatLng;
location_type: GeocoderLocationType;
viewport: LatLngBounds;
}
export declare enum GeocoderLocationType {
APPROXIMATE = "APPROXIMATE",
GEOMETRIC_CENTER = "GEOMETRIC_CENTER",
RANGE_INTERPOLATED = "RANGE_INTERPOLATED",
ROOFTOP = "ROOFTOP"
}
export interface GeocoderRequest {
address?: string;
bounds?: LatLngBounds | LatLngBoundsLiteral;
componentRestrictions?: GeocoderComponentRestrictions;
location?: LatLng | LatLngLiteral;
placeId?: string;
region?: string;
}
export interface GeocoderResult {
address_components: GeocoderAddressComponent[];
formatted_address: string;
geometry: GeocoderGeometry;
partial_match: boolean;
place_id: string;
postcode_localities: string[];
types: string[];
}
export declare enum GeocoderStatus {
ERROR = "ERROR",
INVALID_REQUEST = "INVALID_REQUEST",
OK = "OK",
OVER_QUERY_LIMIT = "OVER_QUERY_LIMIT",
REQUEST_DENIED = "REQUEST_DENIED",
UNKNOWN_ERROR = "UNKNOWN_ERROR",
ZERO_RESULTS = "ZERO_RESULTS"
}

@@ -68,2 +68,3 @@ import { InjectionToken } from '@angular/core';

export declare class LazyMapsAPILoader extends MapsAPILoader {
private localeId;
protected _scriptLoadingPromise: Promise<void>;

@@ -75,3 +76,3 @@ protected _config: LazyMapsAPILoaderConfigLiteral;

protected readonly callbackName: string;
constructor(config: any, w: WindowRef, d: DocumentRef);
constructor(config: any, w: WindowRef, d: DocumentRef, localeId: string);
load(): Promise<void>;

@@ -78,0 +79,0 @@ private _assignScriptLoadingPromise;

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc