Deployed the page to Github Pages.

This commit is contained in:
Batuhan Berk Başoğlu 2024-11-03 21:30:09 -05:00
parent 1d79754e93
commit 2c89899458
Signed by: batuhan-basoglu
SSH key fingerprint: SHA256:kEsnuHX+qbwhxSAXPUQ4ox535wFHu/hIRaa53FzxRpo
62797 changed files with 6551425 additions and 15279 deletions

View file

@ -0,0 +1,16 @@
import { ɵgetAllInstancesOf } from '@angular/fire';
import { from, timer } from 'rxjs';
import { concatMap, distinct } from 'rxjs/operators';
export class Analytics {
constructor(analytics) {
return analytics;
}
}
export const ANALYTICS_PROVIDER_NAME = 'analytics';
export class AnalyticsInstances {
constructor() {
return ɵgetAllInstancesOf(ANALYTICS_PROVIDER_NAME);
}
}
export const analyticInstance$ = timer(0, 300).pipe(concatMap(() => from(ɵgetAllInstancesOf(ANALYTICS_PROVIDER_NAME))), distinct());
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuYWx5dGljcy9hbmFseXRpY3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNckQsTUFBTSxPQUFPLFNBQVM7SUFDcEIsWUFBWSxTQUE0QjtRQUN0QyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxXQUFXLENBQUM7QUFLbkQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QjtRQUNFLE9BQU8sa0JBQWtCLENBQW9CLHVCQUF1QixDQUFDLENBQUM7SUFDeEUsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ2pELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQW9CLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxFQUNyRixRQUFRLEVBQUUsQ0FDWCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5hbHl0aWNzIGFzIEZpcmViYXNlQW5hbHl0aWNzIH0gZnJvbSAnZmlyZWJhc2UvYW5hbHl0aWNzJztcbmltcG9ydCB7IMm1Z2V0QWxsSW5zdGFuY2VzT2YgfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7IGZyb20sIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb25jYXRNYXAsIGRpc3RpbmN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBzZWUgbm90ZXMgaW4gY29yZS9maXJlYmFzZS5hcHAubW9kdWxlLnRzIGZvciB3aHkgd2UncmUgYnVpbGRpbmcgdGhlIGNsYXNzIGxpa2UgdGhpc1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBBbmFseXRpY3MgZXh0ZW5kcyBGaXJlYmFzZUFuYWx5dGljcyB7fVxuXG5leHBvcnQgY2xhc3MgQW5hbHl0aWNzIHtcbiAgY29uc3RydWN0b3IoYW5hbHl0aWNzOiBGaXJlYmFzZUFuYWx5dGljcykge1xuICAgIHJldHVybiBhbmFseXRpY3M7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFOQUxZVElDU19QUk9WSURFUl9OQU1FID0gJ2FuYWx5dGljcyc7XG5cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHl0aWNzSW5zdGFuY2VzIGV4dGVuZHMgQXJyYXk8RmlyZWJhc2VBbmFseXRpY3M+IHt9XG5cbmV4cG9ydCBjbGFzcyBBbmFseXRpY3NJbnN0YW5jZXMge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICByZXR1cm4gybVnZXRBbGxJbnN0YW5jZXNPZjxGaXJlYmFzZUFuYWx5dGljcz4oQU5BTFlUSUNTX1BST1ZJREVSX05BTUUpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBhbmFseXRpY0luc3RhbmNlJCA9IHRpbWVyKDAsIDMwMCkucGlwZShcbiAgY29uY2F0TWFwKCgpID0+IGZyb20oybVnZXRBbGxJbnN0YW5jZXNPZjxGaXJlYmFzZUFuYWx5dGljcz4oQU5BTFlUSUNTX1BST1ZJREVSX05BTUUpKSksXG4gIGRpc3RpbmN0KCksXG4pO1xuIl19

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,5 @@
/**
* Generated bundle index. Do not edit.
*/
export * from './public_api';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1maXJlLWFuYWx5dGljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hbmFseXRpY3MvYW5ndWxhci1maXJlLWFuYWx5dGljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19

View file

@ -0,0 +1,14 @@
// DO NOT MODIFY, this file is autogenerated by tools/build.ts
export * from 'firebase/analytics';
import { ɵzoneWrap } from '@angular/fire';
import { getAnalytics as _getAnalytics, initializeAnalytics as _initializeAnalytics, logEvent as _logEvent, setAnalyticsCollectionEnabled as _setAnalyticsCollectionEnabled, setCurrentScreen as _setCurrentScreen, settings as _settings, setUserId as _setUserId, setUserProperties as _setUserProperties } from 'firebase/analytics';
export { isSupported } from './overrides';
export const getAnalytics = ɵzoneWrap(_getAnalytics, true);
export const initializeAnalytics = ɵzoneWrap(_initializeAnalytics, true);
export const logEvent = ɵzoneWrap(_logEvent, true);
export const setAnalyticsCollectionEnabled = ɵzoneWrap(_setAnalyticsCollectionEnabled, true);
export const setCurrentScreen = ɵzoneWrap(_setCurrentScreen, true);
export const settings = ɵzoneWrap(_settings, true);
export const setUserId = ɵzoneWrap(_setUserId, true);
export const setUserProperties = ɵzoneWrap(_setUserProperties, true);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYW5hbHl0aWNzL2ZpcmViYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhEQUE4RDtBQUM5RCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUNMLFlBQVksSUFBSSxhQUFhLEVBQzdCLG1CQUFtQixJQUFJLG9CQUFvQixFQUMzQyxRQUFRLElBQUksU0FBUyxFQUNyQiw2QkFBNkIsSUFBSSw4QkFBOEIsRUFDL0QsZ0JBQWdCLElBQUksaUJBQWlCLEVBQ3JDLFFBQVEsSUFBSSxTQUFTLEVBQ3JCLFNBQVMsSUFBSSxVQUFVLEVBQ3ZCLGlCQUFpQixJQUFJLGtCQUFrQixFQUN4QyxNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFDTCxXQUFXLEVBQ1osTUFBTSxhQUFhLENBQUM7QUFFckIsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDM0QsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsU0FBUyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLFNBQVMsQ0FBQyw4QkFBOEIsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM3RixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkUsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRE8gTk9UIE1PRElGWSwgdGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgdG9vbHMvYnVpbGQudHNcbmV4cG9ydCAqIGZyb20gJ2ZpcmViYXNlL2FuYWx5dGljcyc7XG5pbXBvcnQgeyDJtXpvbmVXcmFwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZSc7XG5pbXBvcnQge1xuICBnZXRBbmFseXRpY3MgYXMgX2dldEFuYWx5dGljcyxcbiAgaW5pdGlhbGl6ZUFuYWx5dGljcyBhcyBfaW5pdGlhbGl6ZUFuYWx5dGljcyxcbiAgbG9nRXZlbnQgYXMgX2xvZ0V2ZW50LFxuICBzZXRBbmFseXRpY3NDb2xsZWN0aW9uRW5hYmxlZCBhcyBfc2V0QW5hbHl0aWNzQ29sbGVjdGlvbkVuYWJsZWQsXG4gIHNldEN1cnJlbnRTY3JlZW4gYXMgX3NldEN1cnJlbnRTY3JlZW4sXG4gIHNldHRpbmdzIGFzIF9zZXR0aW5ncyxcbiAgc2V0VXNlcklkIGFzIF9zZXRVc2VySWQsXG4gIHNldFVzZXJQcm9wZXJ0aWVzIGFzIF9zZXRVc2VyUHJvcGVydGllc1xufSBmcm9tICdmaXJlYmFzZS9hbmFseXRpY3MnO1xuXG5leHBvcnQge1xuICBpc1N1cHBvcnRlZFxufSBmcm9tICcuL292ZXJyaWRlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRBbmFseXRpY3MgPSDJtXpvbmVXcmFwKF9nZXRBbmFseXRpY3MsIHRydWUpO1xuZXhwb3J0IGNvbnN0IGluaXRpYWxpemVBbmFseXRpY3MgPSDJtXpvbmVXcmFwKF9pbml0aWFsaXplQW5hbHl0aWNzLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBsb2dFdmVudCA9IMm1em9uZVdyYXAoX2xvZ0V2ZW50LCB0cnVlKTtcbmV4cG9ydCBjb25zdCBzZXRBbmFseXRpY3NDb2xsZWN0aW9uRW5hYmxlZCA9IMm1em9uZVdyYXAoX3NldEFuYWx5dGljc0NvbGxlY3Rpb25FbmFibGVkLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBzZXRDdXJyZW50U2NyZWVuID0gybV6b25lV3JhcChfc2V0Q3VycmVudFNjcmVlbiwgdHJ1ZSk7XG5leHBvcnQgY29uc3Qgc2V0dGluZ3MgPSDJtXpvbmVXcmFwKF9zZXR0aW5ncywgdHJ1ZSk7XG5leHBvcnQgY29uc3Qgc2V0VXNlcklkID0gybV6b25lV3JhcChfc2V0VXNlcklkLCB0cnVlKTtcbmV4cG9ydCBjb25zdCBzZXRVc2VyUHJvcGVydGllcyA9IMm1em9uZVdyYXAoX3NldFVzZXJQcm9wZXJ0aWVzLCB0cnVlKTtcbiJdfQ==

View file

@ -0,0 +1,3 @@
import { ɵisAnalyticsSupportedFactory } from '@angular/fire';
export const isSupported = ɵisAnalyticsSupportedFactory.async;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuYWx5dGljcy9vdmVycmlkZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyDJtWlzQW5hbHl0aWNzU3VwcG9ydGVkRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUnO1xuXG5leHBvcnQgY29uc3QgaXNTdXBwb3J0ZWQgPSDJtWlzQW5hbHl0aWNzU3VwcG9ydGVkRmFjdG9yeS5hc3luYztcbiJdfQ==

View file

@ -0,0 +1,6 @@
export { Analytics, AnalyticsInstances, analyticInstance$ } from './analytics';
export { provideAnalytics, AnalyticsModule } from './analytics.module';
export * from './firebase';
export * from './screen-tracking.service';
export * from './user-tracking.service';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hbmFseXRpY3MvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBbmFseXRpY3MsIEFuYWx5dGljc0luc3RhbmNlcywgYW5hbHl0aWNJbnN0YW5jZSQgfSBmcm9tICcuL2FuYWx5dGljcyc7XG5leHBvcnQgeyBwcm92aWRlQW5hbHl0aWNzLCBBbmFseXRpY3NNb2R1bGUgfSBmcm9tICcuL2FuYWx5dGljcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9maXJlYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL3NjcmVlbi10cmFja2luZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdXNlci10cmFja2luZy5zZXJ2aWNlJztcbiJdfQ==

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,43 @@
import { Injectable, Injector, NgZone } from '@angular/core';
import { VERSION } from '@angular/fire';
import { Auth, authState } from '@angular/fire/auth';
import { registerVersion } from 'firebase/app';
import { Analytics } from './analytics';
import { setUserId, isSupported } from './firebase';
import * as i0 from "@angular/core";
import * as i1 from "@angular/fire/auth";
export class UserTrackingService {
constructor(auth, zone, injector) {
this.disposables = [];
registerVersion('angularfire', VERSION.full, 'user-tracking');
let resolveInitialized;
this.initialized = zone.runOutsideAngular(() => new Promise(resolve => { resolveInitialized = resolve; }));
// The APP_INITIALIZER that is making isSupported() sync for the sake of convenient DI
// may not be done when services are initialized. Guard the functionality by first ensuring
// that the (global) promise has resolved, then get Analytics from the injector.
isSupported().then(() => {
const analytics = injector.get(Analytics);
if (analytics) {
this.disposables = [
// TODO add credential tracking back in
authState(auth).subscribe(user => {
setUserId(analytics, user === null || user === void 0 ? void 0 : user.uid);
resolveInitialized();
}),
];
}
else {
resolveInitialized();
}
});
}
ngOnDestroy() {
this.disposables.forEach(it => it.unsubscribe());
}
}
UserTrackingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: UserTrackingService, deps: [{ token: i1.Auth }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
UserTrackingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: UserTrackingService });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.3", ngImport: i0, type: UserTrackingService, decorators: [{
type: Injectable
}], ctorParameters: function () { return [{ type: i1.Auth }, { type: i0.NgZone }, { type: i0.Injector }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci10cmFja2luZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FuYWx5dGljcy91c2VyLXRyYWNraW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXhFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRS9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQUdwRCxNQUFNLE9BQU8sbUJBQW1CO0lBSzlCLFlBQ0UsSUFBVSxFQUNWLElBQVksRUFDWixRQUFrQjtRQUxaLGdCQUFXLEdBQXdCLEVBQUUsQ0FBQztRQU81QyxlQUFlLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDOUQsSUFBSSxrQkFBOEIsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0csc0ZBQXNGO1FBQ3RGLDJGQUEyRjtRQUMzRixnRkFBZ0Y7UUFDaEYsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN0QixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzFDLElBQUksU0FBUyxFQUFFO2dCQUNiLElBQUksQ0FBQyxXQUFXLEdBQUc7b0JBQ2pCLHVDQUF1QztvQkFDdkMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDL0IsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsR0FBRyxDQUFDLENBQUM7d0JBQ2hDLGtCQUFrQixFQUFFLENBQUM7b0JBQ3ZCLENBQUMsQ0FBQztpQkFDSCxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsa0JBQWtCLEVBQUUsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7O2dIQWxDVSxtQkFBbUI7b0hBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nWm9uZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZFUlNJT04gfSBmcm9tICdAYW5ndWxhci9maXJlJztcbmltcG9ydCB7IEF1dGgsIGF1dGhTdGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXV0aCc7XG5pbXBvcnQgeyByZWdpc3RlclZlcnNpb24gfSBmcm9tICdmaXJlYmFzZS9hcHAnO1xuXG5pbXBvcnQgeyBBbmFseXRpY3MgfSBmcm9tICcuL2FuYWx5dGljcyc7XG5pbXBvcnQgeyBzZXRVc2VySWQsIGlzU3VwcG9ydGVkIH0gZnJvbSAnLi9maXJlYmFzZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVc2VyVHJhY2tpbmdTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwdWJsaWMgcmVhZG9ubHkgaW5pdGlhbGl6ZWQ6IFByb21pc2U8dm9pZD47XG4gIHByaXZhdGUgZGlzcG9zYWJsZXM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBhdXRoOiBBdXRoLFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXG4gICkge1xuICAgIHJlZ2lzdGVyVmVyc2lvbignYW5ndWxhcmZpcmUnLCBWRVJTSU9OLmZ1bGwsICd1c2VyLXRyYWNraW5nJyk7XG4gICAgbGV0IHJlc29sdmVJbml0aWFsaXplZDogKCkgPT4gdm9pZDtcbiAgICB0aGlzLmluaXRpYWxpemVkID0gem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsgcmVzb2x2ZUluaXRpYWxpemVkID0gcmVzb2x2ZTsgfSkpO1xuICAgIC8vIFRoZSBBUFBfSU5JVElBTElaRVIgdGhhdCBpcyBtYWtpbmcgaXNTdXBwb3J0ZWQoKSBzeW5jIGZvciB0aGUgc2FrZSBvZiBjb252ZW5pZW50IERJXG4gICAgLy8gbWF5IG5vdCBiZSBkb25lIHdoZW4gc2VydmljZXMgYXJlIGluaXRpYWxpemVkLiBHdWFyZCB0aGUgZnVuY3Rpb25hbGl0eSBieSBmaXJzdCBlbnN1cmluZ1xuICAgIC8vIHRoYXQgdGhlIChnbG9iYWwpIHByb21pc2UgaGFzIHJlc29sdmVkLCB0aGVuIGdldCBBbmFseXRpY3MgZnJvbSB0aGUgaW5qZWN0b3IuXG4gICAgaXNTdXBwb3J0ZWQoKS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnN0IGFuYWx5dGljcyA9IGluamVjdG9yLmdldChBbmFseXRpY3MpO1xuICAgICAgaWYgKGFuYWx5dGljcykge1xuICAgICAgICB0aGlzLmRpc3Bvc2FibGVzID0gW1xuICAgICAgICAgIC8vIFRPRE8gYWRkIGNyZWRlbnRpYWwgdHJhY2tpbmcgYmFjayBpblxuICAgICAgICAgIGF1dGhTdGF0ZShhdXRoKS5zdWJzY3JpYmUodXNlciA9PiB7XG4gICAgICAgICAgICBzZXRVc2VySWQoYW5hbHl0aWNzLCB1c2VyPy51aWQpO1xuICAgICAgICAgICAgcmVzb2x2ZUluaXRpYWxpemVkKCk7XG4gICAgICAgICAgfSksXG4gICAgICAgIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlSW5pdGlhbGl6ZWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGlzcG9zYWJsZXMuZm9yRWFjaChpdCA9PiBpdC51bnN1YnNjcmliZSgpKTtcbiAgfVxufVxuIl19