Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@universe/models

Package Overview
Dependencies
Maintainers
3
Versions
49
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@universe/models - npm Package Compare versions

Comparing version 2.1.1 to 2.1.2

4

dist/sql.d.ts

@@ -86,6 +86,6 @@ import { Database } from 'better-sqlite3';

Score: {
getById: (personId: string, source: string, score: number) => Models.IScore | null;
getById: (personId: string, name: string, value: number) => Models.IScore | null;
insert: (data: Models.IPartialScore | Models.IPartialSQLScore) => Models.CreateDiff<Models.ModelType.SCORE>;
upsert: (data: Models.IPartialScore | Models.IPartialSQLScore) => Models.CreateDiff<Models.ModelType.SCORE> | Models.UpdateDiff<Models.ModelType.SCORE> | null;
delete: (personId: string, source: string, score: number) => Models.DeleteDiff<Models.ModelType.SCORE> | null;
delete: (personId: string, name: string, value: number) => Models.DeleteDiff<Models.ModelType.SCORE> | null;
apply(diff: Models.Diff<Models.ModelType.SCORE>): Models.Diff<Models.ModelType.SCORE> | null;

@@ -92,0 +92,0 @@ rollback(diff: Models.Diff<Models.ModelType.SCORE>): Models.Diff<Models.ModelType.SCORE> | null;

@@ -1,2 +0,2 @@

export { ModelType, isModelType, ModelLookup, IModelLookup, IPartialModelLookup, ISQLModelLookup, IPartialSQLModelLookup, CreateDiff, UpdateDiff, DeleteDiff, Diff, UniverseDiff, Address, ISitus, IAddress, IPartialAddress, ISQLAddress, IPartialSQLAddress, AddressType, AddressKeys, FacilityType, isFacilityType, isFacilityTypeOrNull, PersonalIdentifier, isPersonalIdentifier, isPersonalIdentifierOrNull, AccuracyType, ResidenceUseType, CommercialUseType, PersonPhone, IPersonPhone, IPartialPersonPhone, ISQLPersonPhone, IPartialSQLPersonPhone, PersonAddress, IPersonAddress, IPartialPersonAddress, ISQLPersonAddress, IPartialSQLPersonAddress, Directional, isDirectional, isState, isStreetType, isUnitAbbr, State, Country, isCountry, StreetType, LanguageCode, UnitAbbr, Turf, TurfType, ITurf, IPartialTurf, ISQLTurf, IPartialSQLTurf, ITurfShape, IPartialTurfShape, ISQLTurfShape, IPartialSQLTurfShape, Gender, isGender, Party, isParty, BallotType, isBallotType, Vote, IVote, IPartialVote, ISQLVote, IPartialSQLVote, IPerson, IPartialPerson, ISQLPerson, IPartialSQLPerson, Email, IEmail, IPartialEmail, ISQLEmail, IPartialSQLEmail, Account, IAccount, IPartialAccount, ISQLAccount, IPartialSQLAccount, Phone, IPhone, IPartialPhone, ISQLPhone, IPartialSQLPhone, ElectionType, Election, IPartialElection, ISQLElection, IPartialSQLElection, } from './types';
export { ModelType, isModelType, ModelLookup, IModelLookup, IPartialModelLookup, ISQLModelLookup, IPartialSQLModelLookup, CreateDiff, UpdateDiff, DeleteDiff, Diff, UniverseDiff, Address, ISitus, IAddress, IPartialAddress, ISQLAddress, IPartialSQLAddress, AddressType, AddressKeys, FacilityType, isFacilityType, isFacilityTypeOrNull, PersonalIdentifier, isPersonalIdentifier, isPersonalIdentifierOrNull, AccuracyType, ResidenceUseType, CommercialUseType, PersonPhone, PersonPhoneKeys, IPersonPhone, IPartialPersonPhone, ISQLPersonPhone, IPartialSQLPersonPhone, PersonAddress, PersonAddressKeys, IPersonAddress, IPartialPersonAddress, ISQLPersonAddress, IPartialSQLPersonAddress, Directional, isDirectional, isState, isStreetType, isUnitAbbr, State, Country, isCountry, StreetType, LanguageCode, UnitAbbr, Turf, TurfKeys, TurfType, ITurf, IPartialTurf, ISQLTurf, IPartialSQLTurf, ITurfShape, IPartialTurfShape, ISQLTurfShape, IPartialSQLTurfShape, Gender, isGender, Party, isParty, BallotType, isBallotType, Vote, VoteKeys, IVote, IPartialVote, ISQLVote, IPartialSQLVote, PersonKeys, IPerson, IPartialPerson, ISQLPerson, IPartialSQLPerson, Email, EmailKeys, IEmail, IPartialEmail, ISQLEmail, IPartialSQLEmail, Account, AccountKeys, IAccount, IPartialAccount, ISQLAccount, IPartialSQLAccount, Phone, PhoneKeys, IPhone, IPartialPhone, ISQLPhone, IPartialSQLPhone, Election, ElectionKeys, ElectionType, IPartialElection, ISQLElection, IPartialSQLElection, Experience, ExperienceKeys, ExperienceType, isExperienceType, isExperienceTypeOrNull, IPartialExperience, IExperience, ISQLExperience, IPartialSQLExperience, } from './types';
export { stampAccount, AccountType, } from './models/Account';

@@ -3,0 +3,0 @@ export { isAddress, isAddressOrNull, stampAddress, } from './models/Address';

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PhoneSystem = exports.PhoneType = exports.stampPhone = exports.stampEmail = exports.stampAddress = exports.isAddressOrNull = exports.isAddress = exports.AccountType = exports.stampAccount = exports.Election = exports.ElectionType = exports.Phone = exports.Account = exports.Email = exports.Vote = exports.isBallotType = exports.BallotType = exports.isParty = exports.Party = exports.isGender = exports.Gender = exports.TurfType = exports.Turf = exports.UnitAbbr = exports.LanguageCode = exports.StreetType = exports.isCountry = exports.Country = exports.State = exports.isUnitAbbr = exports.isStreetType = exports.isState = exports.isDirectional = exports.Directional = exports.PersonAddress = exports.PersonPhone = exports.CommercialUseType = exports.ResidenceUseType = exports.AccuracyType = exports.isPersonalIdentifierOrNull = exports.isPersonalIdentifier = exports.PersonalIdentifier = exports.isFacilityTypeOrNull = exports.isFacilityType = exports.FacilityType = exports.AddressKeys = exports.AddressType = exports.Address = exports.isModelType = exports.ModelType = void 0;
exports.isPostNominal = exports.PostNominal = exports.isPreNominal = exports.PreNominal = exports.isNameSuffix = exports.NameSuffix = exports.Person = exports.ensurePerson = exports.isValidPerson = exports.personValidator = exports.isPersonProp = exports.personProps = exports.stampPerson = exports.NameToLangCode = exports.LangCodeToName = exports.getLanguageDesc = exports.getStateDesc = exports.getCountry = exports.getCountryDesc = void 0;
exports.ElectionType = exports.ElectionKeys = exports.Election = exports.PhoneKeys = exports.Phone = exports.AccountKeys = exports.Account = exports.EmailKeys = exports.Email = exports.PersonKeys = exports.VoteKeys = exports.Vote = exports.isBallotType = exports.BallotType = exports.isParty = exports.Party = exports.isGender = exports.Gender = exports.TurfType = exports.TurfKeys = exports.Turf = exports.UnitAbbr = exports.LanguageCode = exports.StreetType = exports.isCountry = exports.Country = exports.State = exports.isUnitAbbr = exports.isStreetType = exports.isState = exports.isDirectional = exports.Directional = exports.PersonAddressKeys = exports.PersonAddress = exports.PersonPhoneKeys = exports.PersonPhone = exports.CommercialUseType = exports.ResidenceUseType = exports.AccuracyType = exports.isPersonalIdentifierOrNull = exports.isPersonalIdentifier = exports.PersonalIdentifier = exports.isFacilityTypeOrNull = exports.isFacilityType = exports.FacilityType = exports.AddressKeys = exports.AddressType = exports.Address = exports.isModelType = exports.ModelType = void 0;
exports.isPostNominal = exports.PostNominal = exports.isPreNominal = exports.PreNominal = exports.isNameSuffix = exports.NameSuffix = exports.Person = exports.ensurePerson = exports.isValidPerson = exports.personValidator = exports.isPersonProp = exports.personProps = exports.stampPerson = exports.NameToLangCode = exports.LangCodeToName = exports.getLanguageDesc = exports.getStateDesc = exports.getCountry = exports.getCountryDesc = exports.PhoneSystem = exports.PhoneType = exports.stampPhone = exports.stampEmail = exports.stampAddress = exports.isAddressOrNull = exports.isAddress = exports.AccountType = exports.stampAccount = exports.isExperienceTypeOrNull = exports.isExperienceType = exports.ExperienceType = exports.ExperienceKeys = exports.Experience = void 0;
var types_1 = require("./types");

@@ -21,3 +21,5 @@ Object.defineProperty(exports, "ModelType", { enumerable: true, get: function () { return types_1.ModelType; } });

Object.defineProperty(exports, "PersonPhone", { enumerable: true, get: function () { return types_1.PersonPhone; } });
Object.defineProperty(exports, "PersonPhoneKeys", { enumerable: true, get: function () { return types_1.PersonPhoneKeys; } });
Object.defineProperty(exports, "PersonAddress", { enumerable: true, get: function () { return types_1.PersonAddress; } });
Object.defineProperty(exports, "PersonAddressKeys", { enumerable: true, get: function () { return types_1.PersonAddressKeys; } });
Object.defineProperty(exports, "Directional", { enumerable: true, get: function () { return types_1.Directional; } });

@@ -35,2 +37,3 @@ Object.defineProperty(exports, "isDirectional", { enumerable: true, get: function () { return types_1.isDirectional; } });

Object.defineProperty(exports, "Turf", { enumerable: true, get: function () { return types_1.Turf; } });
Object.defineProperty(exports, "TurfKeys", { enumerable: true, get: function () { return types_1.TurfKeys; } });
Object.defineProperty(exports, "TurfType", { enumerable: true, get: function () { return types_1.TurfType; } });

@@ -44,7 +47,18 @@ Object.defineProperty(exports, "Gender", { enumerable: true, get: function () { return types_1.Gender; } });

Object.defineProperty(exports, "Vote", { enumerable: true, get: function () { return types_1.Vote; } });
Object.defineProperty(exports, "VoteKeys", { enumerable: true, get: function () { return types_1.VoteKeys; } });
Object.defineProperty(exports, "PersonKeys", { enumerable: true, get: function () { return types_1.PersonKeys; } });
Object.defineProperty(exports, "Email", { enumerable: true, get: function () { return types_1.Email; } });
Object.defineProperty(exports, "EmailKeys", { enumerable: true, get: function () { return types_1.EmailKeys; } });
Object.defineProperty(exports, "Account", { enumerable: true, get: function () { return types_1.Account; } });
Object.defineProperty(exports, "AccountKeys", { enumerable: true, get: function () { return types_1.AccountKeys; } });
Object.defineProperty(exports, "Phone", { enumerable: true, get: function () { return types_1.Phone; } });
Object.defineProperty(exports, "PhoneKeys", { enumerable: true, get: function () { return types_1.PhoneKeys; } });
Object.defineProperty(exports, "Election", { enumerable: true, get: function () { return types_1.Election; } });
Object.defineProperty(exports, "ElectionKeys", { enumerable: true, get: function () { return types_1.ElectionKeys; } });
Object.defineProperty(exports, "ElectionType", { enumerable: true, get: function () { return types_1.ElectionType; } });
Object.defineProperty(exports, "Election", { enumerable: true, get: function () { return types_1.Election; } });
Object.defineProperty(exports, "Experience", { enumerable: true, get: function () { return types_1.Experience; } });
Object.defineProperty(exports, "ExperienceKeys", { enumerable: true, get: function () { return types_1.ExperienceKeys; } });
Object.defineProperty(exports, "ExperienceType", { enumerable: true, get: function () { return types_1.ExperienceType; } });
Object.defineProperty(exports, "isExperienceType", { enumerable: true, get: function () { return types_1.isExperienceType; } });
Object.defineProperty(exports, "isExperienceTypeOrNull", { enumerable: true, get: function () { return types_1.isExperienceTypeOrNull; } });
var Account_1 = require("./models/Account");

@@ -89,2 +103,2 @@ Object.defineProperty(exports, "stampAccount", { enumerable: true, get: function () { return Account_1.stampAccount; } });

Object.defineProperty(exports, "isPostNominal", { enumerable: true, get: function () { return PostNominal_1.isPostNominal; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlDQW1IaUI7QUFqSGYsa0dBQUEsU0FBUyxPQUFBO0FBQ1Qsb0dBQUEsV0FBVyxPQUFBO0FBYVgsZ0dBQUEsT0FBTyxPQUFBO0FBT1Asb0dBQUEsV0FBVyxPQUFBO0FBQ1gsb0dBQUEsV0FBVyxPQUFBO0FBQ1gscUdBQUEsWUFBWSxPQUFBO0FBQ1osdUdBQUEsY0FBYyxPQUFBO0FBQ2QsNkdBQUEsb0JBQW9CLE9BQUE7QUFDcEIsMkdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsNkdBQUEsb0JBQW9CLE9BQUE7QUFDcEIsbUhBQUEsMEJBQTBCLE9BQUE7QUFDMUIscUdBQUEsWUFBWSxPQUFBO0FBQ1oseUdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsMEdBQUEsaUJBQWlCLE9BQUE7QUFFakIsb0dBQUEsV0FBVyxPQUFBO0FBTVgsc0dBQUEsYUFBYSxPQUFBO0FBTWIsb0dBQUEsV0FBVyxPQUFBO0FBQ1gsc0dBQUEsYUFBYSxPQUFBO0FBRWIsZ0dBQUEsT0FBTyxPQUFBO0FBQ1AscUdBQUEsWUFBWSxPQUFBO0FBQ1osbUdBQUEsVUFBVSxPQUFBO0FBQ1YsOEZBQUEsS0FBSyxPQUFBO0FBQ0wsZ0dBQUEsT0FBTyxPQUFBO0FBQ1Asa0dBQUEsU0FBUyxPQUFBO0FBQ1QsbUdBQUEsVUFBVSxPQUFBO0FBQ1YscUdBQUEsWUFBWSxPQUFBO0FBQ1osaUdBQUEsUUFBUSxPQUFBO0FBRVIsNkZBQUEsSUFBSSxPQUFBO0FBQ0osaUdBQUEsUUFBUSxPQUFBO0FBV1IsK0ZBQUEsTUFBTSxPQUFBO0FBQ04saUdBQUEsUUFBUSxPQUFBO0FBRVIsOEZBQUEsS0FBSyxPQUFBO0FBQ0wsZ0dBQUEsT0FBTyxPQUFBO0FBRVAsbUdBQUEsVUFBVSxPQUFBO0FBQ1YscUdBQUEsWUFBWSxPQUFBO0FBRVosNkZBQUEsSUFBSSxPQUFBO0FBV0osOEZBQUEsS0FBSyxPQUFBO0FBTUwsZ0dBQUEsT0FBTyxPQUFBO0FBTVAsOEZBQUEsS0FBSyxPQUFBO0FBTUwscUdBQUEsWUFBWSxPQUFBO0FBQ1osaUdBQUEsUUFBUSxPQUFBO0FBTVYsNENBRzBCO0FBRnhCLHVHQUFBLFlBQVksT0FBQTtBQUNaLHNHQUFBLFdBQVcsT0FBQTtBQUdiLDRDQUkwQjtBQUh4QixvR0FBQSxTQUFTLE9BQUE7QUFDVCwwR0FBQSxlQUFlLE9BQUE7QUFDZix1R0FBQSxZQUFZLE9BQUE7QUFHZCx3Q0FFd0I7QUFEdEIsbUdBQUEsVUFBVSxPQUFBO0FBR1osd0NBSXdCO0FBSHRCLG1HQUFBLFVBQVUsT0FBQTtBQUNWLGtHQUFBLFNBQVMsT0FBQTtBQUNULG9HQUFBLFdBQVcsT0FBQTtBQUdiLDRDQUcwQjtBQUZ4Qix5R0FBQSxjQUFjLE9BQUE7QUFDZCxxR0FBQSxVQUFVLE9BQUE7QUFHWix3Q0FFd0I7QUFEdEIscUdBQUEsWUFBWSxPQUFBO0FBR2QsOENBSTJCO0FBSHpCLDJHQUFBLGVBQWUsT0FBQTtBQUNmLDBHQUFBLGNBQWMsT0FBQTtBQUNkLDBHQUFBLGNBQWMsT0FBQTtBQUdoQiwwQ0FTeUI7QUFSdkIscUdBQUEsV0FBVyxPQUFBO0FBRVgscUdBQUEsV0FBVyxPQUFBO0FBQ1gsc0dBQUEsWUFBWSxPQUFBO0FBQ1oseUdBQUEsZUFBZSxPQUFBO0FBQ2YsdUdBQUEsYUFBYSxPQUFBO0FBQ2Isc0dBQUEsWUFBWSxPQUFBO0FBQ1osZ0dBQUEsTUFBTSxPQUFBO0FBR1Isa0RBQStEO0FBQXRELHdHQUFBLFVBQVUsT0FBQTtBQUFFLDBHQUFBLFlBQVksT0FBQTtBQUNqQyxrREFBK0Q7QUFBdEQsd0dBQUEsVUFBVSxPQUFBO0FBQUUsMEdBQUEsWUFBWSxPQUFBO0FBQ2pDLG9EQUFrRTtBQUF6RCwwR0FBQSxXQUFXLE9BQUE7QUFBRSw0R0FBQSxhQUFhLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuXG4gIE1vZGVsVHlwZSxcbiAgaXNNb2RlbFR5cGUsXG4gIE1vZGVsTG9va3VwLFxuICBJTW9kZWxMb29rdXAsXG4gIElQYXJ0aWFsTW9kZWxMb29rdXAsXG4gIElTUUxNb2RlbExvb2t1cCxcbiAgSVBhcnRpYWxTUUxNb2RlbExvb2t1cCxcblxuICBDcmVhdGVEaWZmLFxuICBVcGRhdGVEaWZmLFxuICBEZWxldGVEaWZmLFxuICBEaWZmLFxuICBVbml2ZXJzZURpZmYsXG5cbiAgQWRkcmVzcyxcbiAgSVNpdHVzLFxuICBJQWRkcmVzcyxcbiAgSVBhcnRpYWxBZGRyZXNzLFxuICBJU1FMQWRkcmVzcyxcbiAgSVBhcnRpYWxTUUxBZGRyZXNzLFxuXG4gIEFkZHJlc3NUeXBlLFxuICBBZGRyZXNzS2V5cyxcbiAgRmFjaWxpdHlUeXBlLFxuICBpc0ZhY2lsaXR5VHlwZSxcbiAgaXNGYWNpbGl0eVR5cGVPck51bGwsXG4gIFBlcnNvbmFsSWRlbnRpZmllcixcbiAgaXNQZXJzb25hbElkZW50aWZpZXIsXG4gIGlzUGVyc29uYWxJZGVudGlmaWVyT3JOdWxsLFxuICBBY2N1cmFjeVR5cGUsXG4gIFJlc2lkZW5jZVVzZVR5cGUsXG4gIENvbW1lcmNpYWxVc2VUeXBlLFxuXG4gIFBlcnNvblBob25lLFxuICBJUGVyc29uUGhvbmUsXG4gIElQYXJ0aWFsUGVyc29uUGhvbmUsXG4gIElTUUxQZXJzb25QaG9uZSxcbiAgSVBhcnRpYWxTUUxQZXJzb25QaG9uZSxcblxuICBQZXJzb25BZGRyZXNzLFxuICBJUGVyc29uQWRkcmVzcyxcbiAgSVBhcnRpYWxQZXJzb25BZGRyZXNzLFxuICBJU1FMUGVyc29uQWRkcmVzcyxcbiAgSVBhcnRpYWxTUUxQZXJzb25BZGRyZXNzLFxuXG4gIERpcmVjdGlvbmFsLFxuICBpc0RpcmVjdGlvbmFsLFxuXG4gIGlzU3RhdGUsXG4gIGlzU3RyZWV0VHlwZSxcbiAgaXNVbml0QWJicixcbiAgU3RhdGUsXG4gIENvdW50cnksXG4gIGlzQ291bnRyeSxcbiAgU3RyZWV0VHlwZSxcbiAgTGFuZ3VhZ2VDb2RlLFxuICBVbml0QWJicixcblxuICBUdXJmLFxuICBUdXJmVHlwZSxcbiAgSVR1cmYsXG4gIElQYXJ0aWFsVHVyZixcbiAgSVNRTFR1cmYsXG4gIElQYXJ0aWFsU1FMVHVyZixcblxuICBJVHVyZlNoYXBlLFxuICBJUGFydGlhbFR1cmZTaGFwZSxcbiAgSVNRTFR1cmZTaGFwZSxcbiAgSVBhcnRpYWxTUUxUdXJmU2hhcGUsXG5cbiAgR2VuZGVyLFxuICBpc0dlbmRlcixcblxuICBQYXJ0eSxcbiAgaXNQYXJ0eSxcblxuICBCYWxsb3RUeXBlLFxuICBpc0JhbGxvdFR5cGUsXG5cbiAgVm90ZSxcbiAgSVZvdGUsXG4gIElQYXJ0aWFsVm90ZSxcbiAgSVNRTFZvdGUsXG4gIElQYXJ0aWFsU1FMVm90ZSxcblxuICBJUGVyc29uLFxuICBJUGFydGlhbFBlcnNvbixcbiAgSVNRTFBlcnNvbixcbiAgSVBhcnRpYWxTUUxQZXJzb24sXG5cbiAgRW1haWwsXG4gIElFbWFpbCxcbiAgSVBhcnRpYWxFbWFpbCxcbiAgSVNRTEVtYWlsLFxuICBJUGFydGlhbFNRTEVtYWlsLFxuXG4gIEFjY291bnQsXG4gIElBY2NvdW50LFxuICBJUGFydGlhbEFjY291bnQsXG4gIElTUUxBY2NvdW50LFxuICBJUGFydGlhbFNRTEFjY291bnQsXG5cbiAgUGhvbmUsXG4gIElQaG9uZSxcbiAgSVBhcnRpYWxQaG9uZSxcbiAgSVNRTFBob25lLFxuICBJUGFydGlhbFNRTFBob25lLFxuXG4gIEVsZWN0aW9uVHlwZSxcbiAgRWxlY3Rpb24sXG4gIElQYXJ0aWFsRWxlY3Rpb24sXG4gIElTUUxFbGVjdGlvbixcbiAgSVBhcnRpYWxTUUxFbGVjdGlvbixcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCB7XG4gIHN0YW1wQWNjb3VudCxcbiAgQWNjb3VudFR5cGUsXG59IGZyb20gJy4vbW9kZWxzL0FjY291bnQnO1xuXG5leHBvcnQge1xuICBpc0FkZHJlc3MsXG4gIGlzQWRkcmVzc09yTnVsbCxcbiAgc3RhbXBBZGRyZXNzLFxufSBmcm9tICcuL21vZGVscy9BZGRyZXNzJztcblxuZXhwb3J0IHtcbiAgc3RhbXBFbWFpbCxcbn0gZnJvbSAnLi9tb2RlbHMvRW1haWwnO1xuXG5leHBvcnQge1xuICBzdGFtcFBob25lLFxuICBQaG9uZVR5cGUsXG4gIFBob25lU3lzdGVtLFxufSBmcm9tICcuL21vZGVscy9QaG9uZSc7XG5cbmV4cG9ydCB7XG4gIGdldENvdW50cnlEZXNjLFxuICBnZXRDb3VudHJ5LFxufSBmcm9tICcuL21vZGVscy9Db3VudHJ5JztcblxuZXhwb3J0IHtcbiAgZ2V0U3RhdGVEZXNjLFxufSBmcm9tICcuL21vZGVscy9TdGF0ZSc7XG5cbmV4cG9ydCB7XG4gIGdldExhbmd1YWdlRGVzYyxcbiAgTGFuZ0NvZGVUb05hbWUsXG4gIE5hbWVUb0xhbmdDb2RlLFxufSBmcm9tICcuL21vZGVscy9MYW5ndWFnZSc7XG5cbmV4cG9ydCB7XG4gIHN0YW1wUGVyc29uLFxuICBQZXJzb25Qcm9wcyxcbiAgcGVyc29uUHJvcHMsXG4gIGlzUGVyc29uUHJvcCxcbiAgcGVyc29uVmFsaWRhdG9yLFxuICBpc1ZhbGlkUGVyc29uLFxuICBlbnN1cmVQZXJzb24sXG4gIFBlcnNvbixcbn0gZnJvbSAnLi9tb2RlbHMvUGVyc29uJztcblxuZXhwb3J0IHsgTmFtZVN1ZmZpeCwgaXNOYW1lU3VmZml4IH0gZnJvbSAnLi9tb2RlbHMvTmFtZVN1ZmZpeCc7XG5leHBvcnQgeyBQcmVOb21pbmFsLCBpc1ByZU5vbWluYWwgfSBmcm9tICcuL21vZGVscy9QcmVOb21pbmFsJztcbmV4cG9ydCB7IFBvc3ROb21pbmFsLCBpc1Bvc3ROb21pbmFsIH0gZnJvbSAnLi9tb2RlbHMvUG9zdE5vbWluYWwnO1xuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlDQXNJaUI7QUFwSWYsa0dBQUEsU0FBUyxPQUFBO0FBQ1Qsb0dBQUEsV0FBVyxPQUFBO0FBYVgsZ0dBQUEsT0FBTyxPQUFBO0FBT1Asb0dBQUEsV0FBVyxPQUFBO0FBQ1gsb0dBQUEsV0FBVyxPQUFBO0FBQ1gscUdBQUEsWUFBWSxPQUFBO0FBQ1osdUdBQUEsY0FBYyxPQUFBO0FBQ2QsNkdBQUEsb0JBQW9CLE9BQUE7QUFDcEIsMkdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsNkdBQUEsb0JBQW9CLE9BQUE7QUFDcEIsbUhBQUEsMEJBQTBCLE9BQUE7QUFDMUIscUdBQUEsWUFBWSxPQUFBO0FBQ1oseUdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsMEdBQUEsaUJBQWlCLE9BQUE7QUFFakIsb0dBQUEsV0FBVyxPQUFBO0FBQ1gsd0dBQUEsZUFBZSxPQUFBO0FBTWYsc0dBQUEsYUFBYSxPQUFBO0FBQ2IsMEdBQUEsaUJBQWlCLE9BQUE7QUFNakIsb0dBQUEsV0FBVyxPQUFBO0FBQ1gsc0dBQUEsYUFBYSxPQUFBO0FBRWIsZ0dBQUEsT0FBTyxPQUFBO0FBQ1AscUdBQUEsWUFBWSxPQUFBO0FBQ1osbUdBQUEsVUFBVSxPQUFBO0FBQ1YsOEZBQUEsS0FBSyxPQUFBO0FBQ0wsZ0dBQUEsT0FBTyxPQUFBO0FBQ1Asa0dBQUEsU0FBUyxPQUFBO0FBQ1QsbUdBQUEsVUFBVSxPQUFBO0FBQ1YscUdBQUEsWUFBWSxPQUFBO0FBQ1osaUdBQUEsUUFBUSxPQUFBO0FBRVIsNkZBQUEsSUFBSSxPQUFBO0FBQ0osaUdBQUEsUUFBUSxPQUFBO0FBQ1IsaUdBQUEsUUFBUSxPQUFBO0FBV1IsK0ZBQUEsTUFBTSxPQUFBO0FBQ04saUdBQUEsUUFBUSxPQUFBO0FBRVIsOEZBQUEsS0FBSyxPQUFBO0FBQ0wsZ0dBQUEsT0FBTyxPQUFBO0FBRVAsbUdBQUEsVUFBVSxPQUFBO0FBQ1YscUdBQUEsWUFBWSxPQUFBO0FBRVosNkZBQUEsSUFBSSxPQUFBO0FBQ0osaUdBQUEsUUFBUSxPQUFBO0FBTVIsbUdBQUEsVUFBVSxPQUFBO0FBTVYsOEZBQUEsS0FBSyxPQUFBO0FBQ0wsa0dBQUEsU0FBUyxPQUFBO0FBTVQsZ0dBQUEsT0FBTyxPQUFBO0FBQ1Asb0dBQUEsV0FBVyxPQUFBO0FBTVgsOEZBQUEsS0FBSyxPQUFBO0FBQ0wsa0dBQUEsU0FBUyxPQUFBO0FBTVQsaUdBQUEsUUFBUSxPQUFBO0FBQ1IscUdBQUEsWUFBWSxPQUFBO0FBQ1oscUdBQUEsWUFBWSxPQUFBO0FBS1osbUdBQUEsVUFBVSxPQUFBO0FBQ1YsdUdBQUEsY0FBYyxPQUFBO0FBQ2QsdUdBQUEsY0FBYyxPQUFBO0FBQ2QseUdBQUEsZ0JBQWdCLE9BQUE7QUFDaEIsK0dBQUEsc0JBQXNCLE9BQUE7QUFPeEIsNENBRzBCO0FBRnhCLHVHQUFBLFlBQVksT0FBQTtBQUNaLHNHQUFBLFdBQVcsT0FBQTtBQUdiLDRDQUkwQjtBQUh4QixvR0FBQSxTQUFTLE9BQUE7QUFDVCwwR0FBQSxlQUFlLE9BQUE7QUFDZix1R0FBQSxZQUFZLE9BQUE7QUFHZCx3Q0FFd0I7QUFEdEIsbUdBQUEsVUFBVSxPQUFBO0FBR1osd0NBSXdCO0FBSHRCLG1HQUFBLFVBQVUsT0FBQTtBQUNWLGtHQUFBLFNBQVMsT0FBQTtBQUNULG9HQUFBLFdBQVcsT0FBQTtBQUdiLDRDQUcwQjtBQUZ4Qix5R0FBQSxjQUFjLE9BQUE7QUFDZCxxR0FBQSxVQUFVLE9BQUE7QUFHWix3Q0FFd0I7QUFEdEIscUdBQUEsWUFBWSxPQUFBO0FBR2QsOENBSTJCO0FBSHpCLDJHQUFBLGVBQWUsT0FBQTtBQUNmLDBHQUFBLGNBQWMsT0FBQTtBQUNkLDBHQUFBLGNBQWMsT0FBQTtBQUdoQiwwQ0FTeUI7QUFSdkIscUdBQUEsV0FBVyxPQUFBO0FBRVgscUdBQUEsV0FBVyxPQUFBO0FBQ1gsc0dBQUEsWUFBWSxPQUFBO0FBQ1oseUdBQUEsZUFBZSxPQUFBO0FBQ2YsdUdBQUEsYUFBYSxPQUFBO0FBQ2Isc0dBQUEsWUFBWSxPQUFBO0FBQ1osZ0dBQUEsTUFBTSxPQUFBO0FBR1Isa0RBQStEO0FBQXRELHdHQUFBLFVBQVUsT0FBQTtBQUFFLDBHQUFBLFlBQVksT0FBQTtBQUNqQyxrREFBK0Q7QUFBdEQsd0dBQUEsVUFBVSxPQUFBO0FBQUUsMEdBQUEsWUFBWSxPQUFBO0FBQ2pDLG9EQUFrRTtBQUF6RCwwR0FBQSxXQUFXLE9BQUE7QUFBRSw0R0FBQSxhQUFhLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuXG4gIE1vZGVsVHlwZSxcbiAgaXNNb2RlbFR5cGUsXG4gIE1vZGVsTG9va3VwLFxuICBJTW9kZWxMb29rdXAsXG4gIElQYXJ0aWFsTW9kZWxMb29rdXAsXG4gIElTUUxNb2RlbExvb2t1cCxcbiAgSVBhcnRpYWxTUUxNb2RlbExvb2t1cCxcblxuICBDcmVhdGVEaWZmLFxuICBVcGRhdGVEaWZmLFxuICBEZWxldGVEaWZmLFxuICBEaWZmLFxuICBVbml2ZXJzZURpZmYsXG5cbiAgQWRkcmVzcyxcbiAgSVNpdHVzLFxuICBJQWRkcmVzcyxcbiAgSVBhcnRpYWxBZGRyZXNzLFxuICBJU1FMQWRkcmVzcyxcbiAgSVBhcnRpYWxTUUxBZGRyZXNzLFxuXG4gIEFkZHJlc3NUeXBlLFxuICBBZGRyZXNzS2V5cyxcbiAgRmFjaWxpdHlUeXBlLFxuICBpc0ZhY2lsaXR5VHlwZSxcbiAgaXNGYWNpbGl0eVR5cGVPck51bGwsXG4gIFBlcnNvbmFsSWRlbnRpZmllcixcbiAgaXNQZXJzb25hbElkZW50aWZpZXIsXG4gIGlzUGVyc29uYWxJZGVudGlmaWVyT3JOdWxsLFxuICBBY2N1cmFjeVR5cGUsXG4gIFJlc2lkZW5jZVVzZVR5cGUsXG4gIENvbW1lcmNpYWxVc2VUeXBlLFxuXG4gIFBlcnNvblBob25lLFxuICBQZXJzb25QaG9uZUtleXMsXG4gIElQZXJzb25QaG9uZSxcbiAgSVBhcnRpYWxQZXJzb25QaG9uZSxcbiAgSVNRTFBlcnNvblBob25lLFxuICBJUGFydGlhbFNRTFBlcnNvblBob25lLFxuXG4gIFBlcnNvbkFkZHJlc3MsXG4gIFBlcnNvbkFkZHJlc3NLZXlzLFxuICBJUGVyc29uQWRkcmVzcyxcbiAgSVBhcnRpYWxQZXJzb25BZGRyZXNzLFxuICBJU1FMUGVyc29uQWRkcmVzcyxcbiAgSVBhcnRpYWxTUUxQZXJzb25BZGRyZXNzLFxuXG4gIERpcmVjdGlvbmFsLFxuICBpc0RpcmVjdGlvbmFsLFxuXG4gIGlzU3RhdGUsXG4gIGlzU3RyZWV0VHlwZSxcbiAgaXNVbml0QWJicixcbiAgU3RhdGUsXG4gIENvdW50cnksXG4gIGlzQ291bnRyeSxcbiAgU3RyZWV0VHlwZSxcbiAgTGFuZ3VhZ2VDb2RlLFxuICBVbml0QWJicixcblxuICBUdXJmLFxuICBUdXJmS2V5cyxcbiAgVHVyZlR5cGUsXG4gIElUdXJmLFxuICBJUGFydGlhbFR1cmYsXG4gIElTUUxUdXJmLFxuICBJUGFydGlhbFNRTFR1cmYsXG5cbiAgSVR1cmZTaGFwZSxcbiAgSVBhcnRpYWxUdXJmU2hhcGUsXG4gIElTUUxUdXJmU2hhcGUsXG4gIElQYXJ0aWFsU1FMVHVyZlNoYXBlLFxuXG4gIEdlbmRlcixcbiAgaXNHZW5kZXIsXG5cbiAgUGFydHksXG4gIGlzUGFydHksXG5cbiAgQmFsbG90VHlwZSxcbiAgaXNCYWxsb3RUeXBlLFxuXG4gIFZvdGUsXG4gIFZvdGVLZXlzLFxuICBJVm90ZSxcbiAgSVBhcnRpYWxWb3RlLFxuICBJU1FMVm90ZSxcbiAgSVBhcnRpYWxTUUxWb3RlLFxuXG4gIFBlcnNvbktleXMsXG4gIElQZXJzb24sXG4gIElQYXJ0aWFsUGVyc29uLFxuICBJU1FMUGVyc29uLFxuICBJUGFydGlhbFNRTFBlcnNvbixcblxuICBFbWFpbCxcbiAgRW1haWxLZXlzLFxuICBJRW1haWwsXG4gIElQYXJ0aWFsRW1haWwsXG4gIElTUUxFbWFpbCxcbiAgSVBhcnRpYWxTUUxFbWFpbCxcblxuICBBY2NvdW50LFxuICBBY2NvdW50S2V5cyxcbiAgSUFjY291bnQsXG4gIElQYXJ0aWFsQWNjb3VudCxcbiAgSVNRTEFjY291bnQsXG4gIElQYXJ0aWFsU1FMQWNjb3VudCxcblxuICBQaG9uZSxcbiAgUGhvbmVLZXlzLFxuICBJUGhvbmUsXG4gIElQYXJ0aWFsUGhvbmUsXG4gIElTUUxQaG9uZSxcbiAgSVBhcnRpYWxTUUxQaG9uZSxcblxuICBFbGVjdGlvbixcbiAgRWxlY3Rpb25LZXlzLFxuICBFbGVjdGlvblR5cGUsXG4gIElQYXJ0aWFsRWxlY3Rpb24sXG4gIElTUUxFbGVjdGlvbixcbiAgSVBhcnRpYWxTUUxFbGVjdGlvbixcblxuICBFeHBlcmllbmNlLFxuICBFeHBlcmllbmNlS2V5cyxcbiAgRXhwZXJpZW5jZVR5cGUsXG4gIGlzRXhwZXJpZW5jZVR5cGUsXG4gIGlzRXhwZXJpZW5jZVR5cGVPck51bGwsXG4gIElQYXJ0aWFsRXhwZXJpZW5jZSxcbiAgSUV4cGVyaWVuY2UsXG4gIElTUUxFeHBlcmllbmNlLFxuICBJUGFydGlhbFNRTEV4cGVyaWVuY2UsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQge1xuICBzdGFtcEFjY291bnQsXG4gIEFjY291bnRUeXBlLFxufSBmcm9tICcuL21vZGVscy9BY2NvdW50JztcblxuZXhwb3J0IHtcbiAgaXNBZGRyZXNzLFxuICBpc0FkZHJlc3NPck51bGwsXG4gIHN0YW1wQWRkcmVzcyxcbn0gZnJvbSAnLi9tb2RlbHMvQWRkcmVzcyc7XG5cbmV4cG9ydCB7XG4gIHN0YW1wRW1haWwsXG59IGZyb20gJy4vbW9kZWxzL0VtYWlsJztcblxuZXhwb3J0IHtcbiAgc3RhbXBQaG9uZSxcbiAgUGhvbmVUeXBlLFxuICBQaG9uZVN5c3RlbSxcbn0gZnJvbSAnLi9tb2RlbHMvUGhvbmUnO1xuXG5leHBvcnQge1xuICBnZXRDb3VudHJ5RGVzYyxcbiAgZ2V0Q291bnRyeSxcbn0gZnJvbSAnLi9tb2RlbHMvQ291bnRyeSc7XG5cbmV4cG9ydCB7XG4gIGdldFN0YXRlRGVzYyxcbn0gZnJvbSAnLi9tb2RlbHMvU3RhdGUnO1xuXG5leHBvcnQge1xuICBnZXRMYW5ndWFnZURlc2MsXG4gIExhbmdDb2RlVG9OYW1lLFxuICBOYW1lVG9MYW5nQ29kZSxcbn0gZnJvbSAnLi9tb2RlbHMvTGFuZ3VhZ2UnO1xuXG5leHBvcnQge1xuICBzdGFtcFBlcnNvbixcbiAgUGVyc29uUHJvcHMsXG4gIHBlcnNvblByb3BzLFxuICBpc1BlcnNvblByb3AsXG4gIHBlcnNvblZhbGlkYXRvcixcbiAgaXNWYWxpZFBlcnNvbixcbiAgZW5zdXJlUGVyc29uLFxuICBQZXJzb24sXG59IGZyb20gJy4vbW9kZWxzL1BlcnNvbic7XG5cbmV4cG9ydCB7IE5hbWVTdWZmaXgsIGlzTmFtZVN1ZmZpeCB9IGZyb20gJy4vbW9kZWxzL05hbWVTdWZmaXgnO1xuZXhwb3J0IHsgUHJlTm9taW5hbCwgaXNQcmVOb21pbmFsIH0gZnJvbSAnLi9tb2RlbHMvUHJlTm9taW5hbCc7XG5leHBvcnQgeyBQb3N0Tm9taW5hbCwgaXNQb3N0Tm9taW5hbCB9IGZyb20gJy4vbW9kZWxzL1Bvc3ROb21pbmFsJztcbiJdfQ==

@@ -207,2 +207,3 @@ "use strict";

experience: [],
scores: [],
gender: null,

@@ -247,2 +248,3 @@ party: null,

experience: (v) => Array.isArray(v),
scores: (v) => Array.isArray(v),
gender: types_1.isGenderOrNull,

@@ -293,2 +295,2 @@ party: types_1.isPartyOrNull,

exports.ensurePerson = ensurePerson;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVscy9QZXJzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBTXdCO0FBRXhCLG9DQXFCa0I7QUFFbEIseUNBQTRDO0FBQzVDLG1DQUFvQztBQU9wQyx3REFBd0Q7QUFDeEQsK0JBQStCO0FBQy9CLFNBQVMsZ0JBQWdCLENBQUMsS0FBc0IsRUFBRSxLQUFzQjtJQUN0RSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQUUsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDO0tBQUU7SUFDaEQsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFDdEQsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFFdEQsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFDcEQsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFFcEQsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFDOUMsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFFOUMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBYSxNQUFPLFNBQVEsY0FBYztJQUN4QyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQXFCLEVBQUUsTUFBZTtRQUN4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LENBQUMsR0FBRyxDQUFDLENBQUM7U0FBRTtLQUMzQztJQUNELEtBQUssTUFBTSxHQUFHLElBQUksbUJBQVcsRUFBRTtRQUM3QixJQUFJLENBQUMsQ0FBQSxNQUFBLHVCQUFlLENBQUMsR0FBRyxDQUFDLCtDQUFwQix1QkFBZSxFQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBLEVBQUU7WUFBRyxDQUFDLENBQUMsR0FBRyxDQUFhLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQUU7S0FDbkY7SUFDRCxPQUFPLElBQUksTUFBTSxDQUFDLENBQVksQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFURCxvQ0FTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGlzVXVpZCxcbiAgaXNEYXRlLFxuICBpc0RhdGVPck51bGwsXG4gIGlzU3RyaW5nT3JOdWxsLFxuICBOSUxfVVVJRCxcbn0gZnJvbSAnQHVuaXZlcnNlL3V0aWwnO1xuXG5pbXBvcnQge1xuICBQZXJzb24gYXMgQWJzdHJhY3RQZXJzb24sXG4gIElBY2NvdW50LFxuICBJUGVyc29uLFxuICBpc0JhbGxvdFR5cGVPck51bGwsXG4gIGlzQ291bnRyeU9yTnVsbCxcbiAgaXNMYW5ndWFnZUNvZGVPck51bGwsXG4gIGlzTmFtZVN1ZmZpeE9yTnVsbCxcbiAgaXNQcmVOb21pbmFsT3JOdWxsLFxuICBpc1Bvc3ROb21pbmFsT3JOdWxsLFxuICBpc1N0YXRlT3JOdWxsLFxuICBpc1BhcnR5T3JOdWxsLFxuICBJVm90ZSxcbiAgSUVtYWlsLFxuICBJUGhvbmUsXG4gIEFkZHJlc3NUeXBlLFxuICBJQWRkcmVzcyxcbiAgSVBlcnNvbkFkZHJlc3MsXG4gIElQZXJzb25QaG9uZSxcbiAgaXNHZW5kZXJPck51bGwsXG4gIElFeHBlcmllbmNlLFxufSBmcm9tICcuLi90eXBlcyc7XG5cbmltcG9ydCB7IExhbmdDb2RlVG9OYW1lIH0gZnJvbSAnLi9MYW5ndWFnZSc7XG5pbXBvcnQgeyBQaG9uZVR5cGUgfSBmcm9tICcuL1Bob25lJztcbmltcG9ydCB7IEFjY291bnRUeXBlIH0gZnJvbSAnLi9BY2NvdW50JztcblxuLy8gVE9ETzogQ29kZWdlbiB2YWxpZGF0b3JzLlxuZXhwb3J0IHR5cGUgVmFsaWRhdG9yPFQ+ID0geyBba2V5IGluIGtleW9mIFRdOiAodjogdW5rbm93bikgPT4gdiBpcyBUW2tleV0gfTtcbmV4cG9ydCB0eXBlIExvZ2dlciA9IGZhbHNlIHwgKChtc2c6IHN0cmluZykgPT4gdm9pZCk7XG5cbi8vIEdpdmVuIHR3byBhZGRyZXNzLCByZXR1cm4gdGhlIG1vcmUgXCJjb21wbGV0ZVwiIG9iamVjdC5cbi8vIFRPRE86IE1ha2UgbW9yZSBpbnRlbGxpZ2VudC5cbmZ1bmN0aW9uIHByZWZlcnJlZEFkZHJlc3MoYWRkcjE6IElBZGRyZXNzIHwgbnVsbCwgYWRkcjI6IElBZGRyZXNzIHwgbnVsbCk6IElBZGRyZXNzIHwgbnVsbCB7XG4gIGlmICghYWRkcjEgfHwgIWFkZHIyKSB7IHJldHVybiBhZGRyMSB8fCBhZGRyMjsgfVxuICBpZiAoYWRkcjEudW5pdE51bSAmJiAhYWRkcjIudW5pdE51bSkgeyByZXR1cm4gYWRkcjE7IH1cbiAgaWYgKGFkZHIyLnVuaXROdW0gJiYgIWFkZHIxLnVuaXROdW0pIHsgcmV0dXJuIGFkZHIyOyB9XG5cbiAgaWYgKGFkZHIxLm51bWJlciAmJiAhYWRkcjIubnVtYmVyKSB7IHJldHVybiBhZGRyMTsgfVxuICBpZiAoYWRkcjIubnVtYmVyICYmICFhZGRyMS5udW1iZXIpIHsgcmV0dXJuIGFkZHIyOyB9XG5cbiAgaWYgKGFkZHIxLnppcCAmJiAhYWRkcjIuemlwKSB7IHJldHVybiBhZGRyMTsgfVxuICBpZiAoYWRkcjIuemlwICYmICFhZGRyMS56aXApIHsgcmV0dXJuIGFkZHIyOyB9XG5cbiAgcmV0dXJuIGFkZHIxO1xufVxuXG5leHBvcnQgY2xhc3MgUGVyc29uIGV4dGVuZHMgQWJzdHJhY3RQZXJzb24ge1xuICBzdGF0aWMgZ2V0QWNjb3VudElkKGFjY3RUeXBlOiBBY2NvdW50VHlwZSwgcGVyc29uOiBJUGVyc29uKTogSUFjY291bnQgfCBudWxsIHtcbiAgICBpZiAoIXBlcnNvbi5hY2NvdW50cykgeyByZXR1cm4gbnVsbDsgfVxuICAgIGZvciAoY29uc3QgYWNjdCBvZiBwZXJzb24uYWNjb3VudHMpIHtcbiAgICAgIGlmIChhY2N0LmFjY291bnRUeXBlID09PSBhY2N0VHlwZSkgeyByZXR1cm4gYWNjdCBhcyBJQWNjb3VudDsgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyBwcmVmZXJyZWRQaG9uZShwZXJzb24/OiBQYXJ0aWFsPElQZXJzb24+IHwgbnVsbCk6IElQaG9uZSB8IG51bGwge1xuICAgIGlmICghcGVyc29uKSB7IHJldHVybiBudWxsOyB9XG4gICAgaWYgKCFwZXJzb24ucGhvbmVzIHx8IHBlcnNvbi5waG9uZXMubGVuZ3RoID09PSAwKSB7IHJldHVybiBudWxsOyB9XG5cbiAgICBsZXQgY2VsbDogSVBob25lIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGhvbWU6IElQaG9uZSB8IG51bGwgPSBudWxsO1xuICAgIGxldCB3b3JrOiBJUGhvbmUgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgb3RoZXI6IElQaG9uZSB8IG51bGwgPSBudWxsO1xuXG4gICAgZm9yIChjb25zdCBwaG9uZSBvZiBwZXJzb24ucGhvbmVzKSB7XG4gICAgICBpZiAoIXBob25lKSB7IGNvbnRpbnVlOyB9XG4gICAgICBzd2l0Y2ggKHBob25lLnR5cGUpIHtcbiAgICAgICAgY2FzZSBQaG9uZVR5cGUuUEVSUzogY2VsbCA9IHBob25lLnBob25lIHx8IG51bGw7IGJyZWFrO1xuICAgICAgICBjYXNlIFBob25lVHlwZS5IT01FOiBob21lID0gcGhvbmUucGhvbmUgfHwgbnVsbDsgYnJlYWs7XG4gICAgICAgIGNhc2UgUGhvbmVUeXBlLldPUks6IHdvcmsgPSBwaG9uZS5waG9uZSB8fCBudWxsOyBicmVhaztcbiAgICAgICAgY2FzZSBQaG9uZVR5cGUuT1RIRVI6IG90aGVyID0gcGhvbmUucGhvbmUgfHwgbnVsbDsgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNlbGwgfHwgaG9tZSB8fCB3b3JrIHx8IG90aGVyIHx8IHBlcnNvbi5waG9uZXNbMF0/LnBob25lIHx8IG51bGw7XG4gIH1cblxuICAvLyBUT0RPOiBNYWtlIGJldHRlclxuICBzdGF0aWMgY3VycmVudFJvbGUocGVyc29uPzogUGFydGlhbDxJUGVyc29uPiB8IG51bGwpOiBJRXhwZXJpZW5jZSB8IG51bGwge1xuICAgIGlmICghcGVyc29uKSB7IHJldHVybiBudWxsOyB9XG4gICAgaWYgKCFwZXJzb24uZXhwZXJpZW5jZSB8fCBwZXJzb24uZXhwZXJpZW5jZS5sZW5ndGggPT09IDApIHsgcmV0dXJuIG51bGw7IH1cblxuICAgIGxldCBjdXJyZW50Um9sZTogSUV4cGVyaWVuY2UgfCBudWxsID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IHJvbGUgb2YgcGVyc29uLmV4cGVyaWVuY2UpIHtcbiAgICAgIGlmICghY3VycmVudFJvbGUgfHwgIWN1cnJlbnRSb2xlLnN0YXJ0RGF0ZSB8fCArKHJvbGUuc3RhcnREYXRlIHx8IDApID4gKyhjdXJyZW50Um9sZT8uc3RhcnREYXRlIHx8IDApKSB7XG4gICAgICAgIGN1cnJlbnRSb2xlID0gcm9sZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudFJvbGU7XG4gIH1cblxuICAvLyBUT0RPOiBNYWtlIGJldHRlclxuICBzdGF0aWMgcHJlZmVycmVkRW1haWwocGVyc29uPzogUGFydGlhbDxJUGVyc29uPiB8IG51bGwpOiBJRW1haWwgfCBudWxsIHtcbiAgICBpZiAoIXBlcnNvbikgeyByZXR1cm4gbnVsbDsgfVxuICAgIGlmICghcGVyc29uLmVtYWlscyB8fCBwZXJzb24uZW1haWxzLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gbnVsbDsgfVxuXG4gICAgZm9yIChjb25zdCBlbWFpbCBvZiBwZXJzb24uZW1haWxzKSB7XG4gICAgICBpZiAoZW1haWwuZGVsaXZlcmFibGUpIHsgcmV0dXJuIGVtYWlsOyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBlcnNvbi5lbWFpbHNbMF0gfHwgbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyByZXNpZGVudGlhbEFkZHJlc3MocGVyc29uPzogUGFydGlhbDxJUGVyc29uPiB8IG51bGwpOiBJQWRkcmVzcyB8IG51bGwge1xuICAgIGlmICghcGVyc29uKSB7IHJldHVybiBudWxsOyB9XG4gICAgaWYgKCFwZXJzb24uYWRkcmVzc2VzIHx8IHBlcnNvbi5hZGRyZXNzZXMubGVuZ3RoID09PSAwKSB7IHJldHVybiBudWxsOyB9XG4gICAgbGV0IHByZWZlcnJlZDogSUFkZHJlc3MgfCBudWxsID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGFkZHIgb2YgcGVyc29uLmFkZHJlc3Nlcykge1xuICAgICAgaWYgKGFkZHIudHlwZSAhPT0gQWRkcmVzc1R5cGUuSU5WICYmIGFkZHIudHlwZSAhPT0gQWRkcmVzc1R5cGUuTUFJTCkge1xuICAgICAgICBwcmVmZXJyZWQgPSBwcmVmZXJyZWRBZGRyZXNzKHByZWZlcnJlZCwgYWRkci5hZGRyZXNzIHx8IG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwcmVmZXJyZWQ7XG4gIH1cblxuICBzdGF0aWMgbWFpbEFkZHJlc3MocGVyc29uPzogUGFydGlhbDxJUGVyc29uPiB8IG51bGwpOiBJQWRkcmVzcyB8IG51bGwge1xuICAgIGlmICghcGVyc29uKSB7IHJldHVybiBudWxsOyB9XG4gICAgaWYgKCFwZXJzb24uYWRkcmVzc2VzIHx8IHBlcnNvbi5hZGRyZXNzZXMubGVuZ3RoID09PSAwKSB7IHJldHVybiBudWxsOyB9XG5cbiAgICBsZXQgcHJlZmVycmVkOiBJQWRkcmVzcyB8IG51bGwgPSBudWxsO1xuICAgIGZvciAoY29uc3QgYWRkciBvZiBwZXJzb24uYWRkcmVzc2VzKSB7XG4gICAgICBpZiAoYWRkci50eXBlID09PSBBZGRyZXNzVHlwZS5NQUlMKSB7XG4gICAgICAgIHByZWZlcnJlZCA9IHByZWZlcnJlZEFkZHJlc3MocHJlZmVycmVkLCBhZGRyLmFkZHJlc3MgfHwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZWZlcnJlZCB8fCBQZXJzb24ucmVzaWRlbnRpYWxBZGRyZXNzKHBlcnNvbik7XG4gIH1cblxuICBzdGF0aWMgYWdlKHBlcnNvbj86IFBhcnRpYWw8SVBlcnNvbj4gfCBudWxsKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKCFwZXJzb24gfHwgIXBlcnNvbi5iaXJ0aERhdGUpIHsgcmV0dXJuIG51bGw7IH1cbiAgICBjb25zdCBiaXJ0aGRheSA9ICtuZXcgRGF0ZShwZXJzb24uYmlydGhEYXRlKTtcbiAgICByZXR1cm4gfn4oKERhdGUubm93KCkgLSBiaXJ0aGRheSkgLyAoMzE1NTc2MDAwMDApKTsgLy8gTWFnaWMgd2F5IHRvIHR1cm4gYSBkYXRlIGluIHRvIGFnZS5cbiAgfVxuXG4gIHN0YXRpYyBmdWxsTmFtZShwZXJzb24/OiBQYXJ0aWFsPElQZXJzb24+IHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghcGVyc29uKSB7IHJldHVybiBudWxsOyB9XG4gICAgcmV0dXJuIFsgcGVyc29uLmZpcnN0TmFtZSwgcGVyc29uLmxhc3ROYW1lIF0uam9pbignICcpLnRyaW0oKTtcbiAgfVxuXG4gIGdldCBmdWxsTmFtZSgpOiBzdHJpbmcgfCBudWxsIHsgcmV0dXJuIFBlcnNvbi5mdWxsTmFtZSh0aGlzKTsgfVxuICBnZXQgYWdlKCk6IG51bWJlciB8IG51bGwgeyByZXR1cm4gUGVyc29uLmFnZSh0aGlzKTsgfVxuICBnZXQgcHJlZmVycmVkUGhvbmUoKTogSVBob25lIHwgbnVsbCB7IHJldHVybiBQZXJzb24ucHJlZmVycmVkUGhvbmUodGhpcyk7IH1cbiAgZ2V0IHByZWZlcnJlZEVtYWlsKCk6IElFbWFpbCB8IG51bGwgeyByZXR1cm4gUGVyc29uLnByZWZlcnJlZEVtYWlsKHRoaXMpOyB9XG4gIGdldCByZXNpZGVudGlhbEFkZHJlc3MoKTogSUFkZHJlc3MgfCBudWxsIHsgcmV0dXJuIFBlcnNvbi5yZXNpZGVudGlhbEFkZHJlc3ModGhpcyk7IH1cbiAgZ2V0IG1haWxBZGRyZXNzKCk6IElBZGRyZXNzIHwgbnVsbCB7IHJldHVybiBQZXJzb24ubWFpbEFkZHJlc3ModGhpcyk7IH1cbiAgZ2V0IGN1cnJlbnRSb2xlKCk6IElFeHBlcmllbmNlIHwgbnVsbCB7IHJldHVybiBQZXJzb24uY3VycmVudFJvbGUodGhpcyk7IH1cblxuICBnZXQgcHJpbWFyeUxhbmd1YWdlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5wcmltYXJ5TGFuZ3VhZ2VDb2RlKSB7IHJldHVybiBudWxsOyB9XG4gICAgcmV0dXJuIExhbmdDb2RlVG9OYW1lW3RoaXMucHJpbWFyeUxhbmd1YWdlQ29kZV07XG4gIH1cblxuICBnZXQgc2Vjb25kYXJ5TGFuZ3VhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLnNlY29uZGFyeUxhbmd1YWdlQ29kZSkgeyByZXR1cm4gbnVsbDsgfVxuICAgIHJldHVybiBMYW5nQ29kZVRvTmFtZVt0aGlzLnNlY29uZGFyeUxhbmd1YWdlQ29kZV07XG4gIH1cblxuICBnZXQgcHJpbWFyeUV0aG5pY2l0eSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMucHJpbWFyeUV0aG5pY2l0eUNvZGUpIHsgcmV0dXJuIG51bGw7IH1cbiAgICByZXR1cm4gdGhpcy5wcmltYXJ5RXRobmljaXR5Q29kZTtcbiAgfVxuXG4gIGdldCBzZWNvbmRhcnlFdGhuaWNpdHkoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLnNlY29uZGFyeUV0aG5pY2l0eUNvZGUpIHsgcmV0dXJuIG51bGw7IH1cbiAgICByZXR1cm4gdGhpcy5zZWNvbmRhcnlFdGhuaWNpdHlDb2RlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzdGFtcFBlcnNvbihkYXRhOiBQYXJ0aWFsPElQZXJzb24+ID0ge30pOiBJUGVyc29uIHtcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe1xuICAgIGlkOiBOSUxfVVVJRCxcbiAgICBjb3VudHlJZDogbnVsbCxcbiAgICBhZmZpZGF2aXROdW06IG51bGwsXG5cbiAgICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgdXBkYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgIGRlbGV0ZWRBdDogbnVsbCxcblxuICAgIHByZU5vbWluYWw6IG51bGwsXG4gICAgZmlyc3ROYW1lOiBudWxsLFxuICAgIG1pZGRsZU5hbWU6IG51bGwsXG4gICAgbGFzdE5hbWU6IG51bGwsXG4gICAgc3VmZml4OiBudWxsLFxuICAgIHBvc3ROb21pbmFsOiBudWxsLFxuICAgIG5pY2tuYW1lOiBudWxsLFxuXG4gICAgdm90ZXM6IFtdLFxuICAgIGFjY291bnRzOiBbXSxcbiAgICBhZGRyZXNzZXM6IFtdLFxuICAgIGVtYWlsczogW10sXG4gICAgcGhvbmVzOiBbXSxcbiAgICBleHBlcmllbmNlOiBbXSxcblxuICAgIGdlbmRlcjogbnVsbCxcbiAgICBwYXJ0eTogbnVsbCxcbiAgICBiaXJ0aERhdGU6IG51bGwsXG4gICAgYmlydGhTdGF0ZTogbnVsbCxcbiAgICBiaXJ0aENvdW50cnk6IG51bGwsXG4gICAgcHJpbWFyeUxhbmd1YWdlQ29kZTogbnVsbCxcbiAgICBzZWNvbmRhcnlMYW5ndWFnZUNvZGU6IG51bGwsXG4gICAgcHJpbWFyeUV0aG5pY2l0eUNvZGU6IG51bGwsXG4gICAgc2Vjb25kYXJ5RXRobmljaXR5Q29kZTogbnVsbCxcblxuICAgIGJhbGxvdDogbnVsbCxcbiAgICBwcmVjaW5jdDogbnVsbCxcblxuICB9LCBkYXRhKTtcbn1cblxuZXhwb3J0IHR5cGUgUGVyc29uUHJvcHMgPSBrZXlvZiBJUGVyc29uO1xuXG5jb25zdCBkZWZhdWx0UGVyc29uOiBJUGVyc29uID0gc3RhbXBQZXJzb24oKTtcbmV4cG9ydCBjb25zdCBwZXJzb25Qcm9wcyA9IE9iamVjdC5mcmVlemUoT2JqZWN0LmtleXMoZGVmYXVsdFBlcnNvbikpIGFzIFJlYWRvbmx5PFBlcnNvblByb3BzW10+O1xuLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmV4cG9ydCBjb25zdCBpc1BlcnNvblByb3AgPSAoa2V5OiBzdHJpbmcpOiBrZXkgaXMgUGVyc29uUHJvcHMgPT4gcGVyc29uUHJvcHMuaW5jbHVkZXMoKGtleSBhcyBhbnkpKTtcblxuZXhwb3J0IGNvbnN0IHBlcnNvblZhbGlkYXRvcjogVmFsaWRhdG9yPElQZXJzb24+ID0ge1xuXG4gIGlkOiBpc1V1aWQsXG4gIGNvdW50eUlkOiBpc1N0cmluZ09yTnVsbCxcbiAgYWZmaWRhdml0TnVtOiBpc1N0cmluZ09yTnVsbCxcblxuICBjcmVhdGVkQXQ6IGlzRGF0ZSxcbiAgdXBkYXRlZEF0OiBpc0RhdGUsXG4gIGRlbGV0ZWRBdDogaXNEYXRlT3JOdWxsLFxuXG4gIHByZU5vbWluYWw6IGlzUHJlTm9taW5hbE9yTnVsbCxcbiAgZmlyc3ROYW1lOiBpc1N0cmluZ09yTnVsbCxcbiAgbWlkZGxlTmFtZTogaXNTdHJpbmdPck51bGwsXG4gIGxhc3ROYW1lOiBpc1N0cmluZ09yTnVsbCxcbiAgcG9zdE5vbWluYWw6IGlzUG9zdE5vbWluYWxPck51bGwsXG4gIHN1ZmZpeDogaXNOYW1lU3VmZml4T3JOdWxsLFxuICBuaWNrbmFtZTogaXNTdHJpbmdPck51bGwsXG5cbiAgdm90ZXM6ICh2OiB1bmtub3duKTogdiBpcyBJVm90ZVtdID0+IEFycmF5LmlzQXJyYXkodiksIC8vIGlzVm90ZU9yTnVsbCxcbiAgYWNjb3VudHM6ICh2OiB1bmtub3duKTogdiBpcyBJQWNjb3VudFtdID0+IEFycmF5LmlzQXJyYXkodiksIC8vIGlzQWNjb3VudE9yTnVsbCxcbiAgYWRkcmVzc2VzOiAodjogdW5rbm93bik6IHYgaXMgSVBlcnNvbkFkZHJlc3NbXSA9PiBBcnJheS5pc0FycmF5KHYpLCAvLyBpc0FkZHJlc3NPck51bGwsXG4gIGVtYWlsczogKHY6IHVua25vd24pOiB2IGlzIElFbWFpbFtdID0+IEFycmF5LmlzQXJyYXkodiksIC8vIFRPRE86IEltcGxlbWVudCB0ZWwgdmFsaWRhdGlvbi5cbiAgcGhvbmVzOiAodjogdW5rbm93bik6IHYgaXMgSVBlcnNvblBob25lW10gPT4gQXJyYXkuaXNBcnJheSh2KSwgLy8gVE9ETzogSW1wbGVtZW50IHRlbCB2YWxpZGF0aW9uLlxuICBleHBlcmllbmNlOiAodjogdW5rbm93bik6IHYgaXMgSUV4cGVyaWVuY2VbXSA9PiBBcnJheS5pc0FycmF5KHYpLCAvLyBUT0RPOiBJbXBsZW1lbnQgZXhwZXJpZW5jZSB2YWxpZGF0aW9uLlxuXG4gIGdlbmRlcjogaXNHZW5kZXJPck51bGwsXG4gIHBhcnR5OiBpc1BhcnR5T3JOdWxsLFxuICBiaXJ0aERhdGU6IGlzRGF0ZU9yTnVsbCxcbiAgYmlydGhTdGF0ZTogaXNTdGF0ZU9yTnVsbCxcbiAgYmlydGhDb3VudHJ5OiBpc0NvdW50cnlPck51bGwsXG4gIHByaW1hcnlMYW5ndWFnZUNvZGU6IGlzTGFuZ3VhZ2VDb2RlT3JOdWxsLFxuICBzZWNvbmRhcnlMYW5ndWFnZUNvZGU6IGlzTGFuZ3VhZ2VDb2RlT3JOdWxsLFxuICBwcmltYXJ5RXRobmljaXR5Q29kZTogaXNTdHJpbmdPck51bGwsXG4gIHNlY29uZGFyeUV0aG5pY2l0eUNvZGU6IGlzU3RyaW5nT3JOdWxsLFxuXG4gIGJhbGxvdDogaXNCYWxsb3RUeXBlT3JOdWxsLFxuICBwcmVjaW5jdDogaXNTdHJpbmdPck51bGwsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFBlcnNvbihvOiB1bmtub3duLCBsb2c6IExvZ2dlciA9IGZhbHNlKTogbyBpcyBJUGVyc29uIHtcbiAgaWYgKCFvIHx8IHR5cGVvZiBvICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGxldCByZXQgPSB0cnVlO1xuICBjb25zdCBwZXJzb246IFBhcnRpYWw8SVBlcnNvbj4gPSBvIGFzIFBhcnRpYWw8SVBlcnNvbj47XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRlZmF1bHRQZXJzb24pKSB7XG4gICAgaWYgKCFwZXJzb25WYWxpZGF0b3Jba2V5XShwZXJzb25ba2V5XSkpIHtcbiAgICAgIGxvZyAmJiBsb2coYFVuc2FuaXRhcnkgRGF0YSBmb3IgcGVyc29uIFwiJHtwZXJzb24uaWR9XCIuIEludmFsaWQgdmFsdWUgZm9yICR7a2V5fTogJHtKU09OLnN0cmluZ2lmeShwZXJzb25ba2V5XSwgbnVsbCwgMil9YCk7XG4gICAgICByZXQgPSBmYWxzZTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVBlcnNvbihvOiBQYXJ0aWFsPElQZXJzb24+KTogUGVyc29uIHtcbiAgaWYgKG8gaW5zdGFuY2VvZiBQZXJzb24pIHsgcmV0dXJuIG87IH1cbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobykpIHtcbiAgICBpZiAoIWlzUGVyc29uUHJvcChrZXkpKSB7IGRlbGV0ZSBvW2tleV07IH1cbiAgfVxuICBmb3IgKGNvbnN0IGtleSBvZiBwZXJzb25Qcm9wcykge1xuICAgIGlmICghcGVyc29uVmFsaWRhdG9yW2tleV0/LihvW2tleV0pKSB7IChvW2tleV0gYXMgdW5rbm93bikgPSBkZWZhdWx0UGVyc29uW2tleV07IH1cbiAgfVxuICByZXR1cm4gbmV3IFBlcnNvbihvIGFzIElQZXJzb24pO1xufVxuXG5leHBvcnQgeyBJUGVyc29uIH07XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVscy9QZXJzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBTXdCO0FBRXhCLG9DQXNCa0I7QUFFbEIseUNBQTRDO0FBQzVDLG1DQUFvQztBQU9wQyx3REFBd0Q7QUFDeEQsK0JBQStCO0FBQy9CLFNBQVMsZ0JBQWdCLENBQUMsS0FBc0IsRUFBRSxLQUFzQjtJQUN0RSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQUUsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDO0tBQUU7SUFDaEQsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFDdEQsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFFdEQsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFDcEQsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFFcEQsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFDOUMsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFFOUMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBYSxNQUFPLFNBQVEsY0FBYztJQUN4QyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQXFCLEVBQUUsTUFBZTtRQUN4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LE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDaEMsSUFBSSxDQUFDLG9CQUFZLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUFFO0tBQzNDO0lBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxtQkFBVyxFQUFFO1FBQzdCLElBQUksQ0FBQyxDQUFBLE1BQUEsdUJBQWUsQ0FBQyxHQUFHLENBQUMsK0NBQXBCLHVCQUFlLEVBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsRUFBRTtZQUFHLENBQUMsQ0FBQyxHQUFHLENBQWEsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7U0FBRTtLQUNuRjtJQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsQ0FBWSxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQVRELG9DQVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNVdWlkLFxuICBpc0RhdGUsXG4gIGlzRGF0ZU9yTnVsbCxcbiAgaXNTdHJpbmdPck51bGwsXG4gIE5JTF9VVUlELFxufSBmcm9tICdAdW5pdmVyc2UvdXRpbCc7XG5cbmltcG9ydCB7XG4gIFBlcnNvbiBhcyBBYnN0cmFjdFBlcnNvbixcbiAgSUFjY291bnQsXG4gIElQZXJzb24sXG4gIGlzQmFsbG90VHlwZU9yTnVsbCxcbiAgaXNDb3VudHJ5T3JOdWxsLFxuICBpc0xhbmd1YWdlQ29kZU9yTnVsbCxcbiAgaXNOYW1lU3VmZml4T3JOdWxsLFxuICBpc1ByZU5vbWluYWxPck51bGwsXG4gIGlzUG9zdE5vbWluYWxPck51bGwsXG4gIGlzU3RhdGVPck51bGwsXG4gIGlzUGFydHlPck51bGwsXG4gIElWb3RlLFxuICBJRW1haWwsXG4gIElQaG9uZSxcbiAgQWRkcmVzc1R5cGUsXG4gIElBZGRyZXNzLFxuICBJUGVyc29uQWRkcmVzcyxcbiAgSVBlcnNvblBob25lLFxuICBpc0dlbmRlck9yTnVsbCxcbiAgSUV4cGVyaWVuY2UsXG4gIElTY29yZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuXG5pbXBvcnQgeyBMYW5nQ29kZVRvTmFtZSB9IGZyb20gJy4vTGFuZ3VhZ2UnO1xuaW1wb3J0IHsgUGhvbmVUeXBlIH0gZnJvbSAnLi9QaG9uZSc7XG5pbXBvcnQgeyBBY2NvdW50VHlwZSB9IGZyb20gJy4vQWNjb3VudCc7XG5cbi8vIFRPRE86IENvZGVnZW4gdmFsaWRhdG9ycy5cbmV4cG9ydCB0eXBlIFZhbGlkYXRvcjxUPiA9IHsgW2tleSBpbiBrZXlvZiBUXTogKHY6IHVua25vd24pID0+IHYgaXMgVFtrZXldIH07XG5leHBvcnQgdHlwZSBMb2dnZXIgPSBmYWxzZSB8ICgobXNnOiBzdHJpbmcpID0+IHZvaWQpO1xuXG4vLyBHaXZlbiB0d28gYWRkcmVzcywgcmV0dXJuIHRoZSBtb3JlIFwiY29tcGxldGVcIiBvYmplY3QuXG4vLyBUT0RPOiBNYWtlIG1vcmUgaW50ZWxsaWdlbnQuXG5mdW5jdGlvbiBwcmVmZXJyZWRBZGRyZXNzKGFkZHIxOiBJQWRkcmVzcyB8IG51bGwsIGFkZHIyOiBJQWRkcmVzcyB8IG51bGwpOiBJQWRkcmVzcyB8IG51bGwge1xuICBpZiAoIWFkZHIxIHx8ICFhZGRyMikgeyByZXR1cm4gYWRkcjEgfHwgYWRkcjI7IH1cbiAgaWYgKGFkZHIxLnVuaXROdW0gJiYgIWFkZHIyLnVuaXROdW0pIHsgcmV0dXJuIGFkZHIxOyB9XG4gIGlmIChhZGRyMi51bml0TnVtICYmICFhZGRyMS51bml0TnVtKSB7IHJldHVybiBhZGRyMjsgfVxuXG4gIGlmIChhZGRyMS5udW1iZXIgJiYgIWFkZHIyLm51bWJlcikgeyByZXR1cm4gYWRkcjE7IH1cbiAgaWYgKGFkZHIyLm51bWJlciAmJiAhYWRkcjEubnVtYmVyKSB7IHJldHVybiBhZGRyMjsgfVxuXG4gIGlmIChhZGRyMS56aXAgJiYgIWFkZHIyLnppcCkgeyByZXR1cm4gYWRkcjE7IH1cbiAgaWYgKGFkZHIyLnppcCAmJiAhYWRkcjEuemlwKSB7IHJldHVybiBhZGRyMjsgfVxuXG4gIHJldHVybiBhZGRyMTtcbn1cblxuZXhwb3J0IGNsYXNzIFBlcnNvbiBleHRlbmRzIEFic3RyYWN0UGVyc29uIHtcbiAgc3RhdGljIGdldEFjY291bnRJZChhY2N0VHlwZTogQWNjb3VudFR5cGUsIHBlcnNvbjogSVBlcnNvbik6IElBY2NvdW50IHwgbnVsbCB7XG4gICAgaWYgKCFwZXJzb24uYWNjb3VudHMpIHsgcmV0dXJuIG51bGw7IH1cbiAgICBmb3IgKGNvbnN0IGFjY3Qgb2YgcGVyc29uLmFjY291bnRzKSB7XG4gICAgICBpZiAoYWNjdC5hY2NvdW50VHlwZSA9PT0gYWNjdFR5cGUpIHsgcmV0dXJuIGFjY3QgYXMgSUFjY291bnQ7IH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBzdGF0aWMgcHJlZmVycmVkUGhvbmUocGVyc29uPzogUGFydGlhbDxJUGVyc29uPiB8IG51bGwpOiBJUGhvbmUgfCBudWxsIHtcbiAgICBpZiAoIXBlcnNvbikgeyByZXR1cm4gbnVsbDsgfVxuICAgIGlmICghcGVyc29uLnBob25lcyB8fCBwZXJzb24ucGhvbmVzLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gbnVsbDsgfVxuXG4gICAgbGV0IGNlbGw6IElQaG9uZSB8IG51bGwgPSBudWxsO1xuICAgIGxldCBob21lOiBJUGhvbmUgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgd29yazogSVBob25lIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IG90aGVyOiBJUGhvbmUgfCBudWxsID0gbnVsbDtcblxuICAgIGZvciAoY29uc3QgcGhvbmUgb2YgcGVyc29uLnBob25lcykge1xuICAgICAgaWYgKCFwaG9uZSkgeyBjb250aW51ZTsgfVxuICAgICAgc3dpdGNoIChwaG9uZS50eXBlKSB7XG4gICAgICAgIGNhc2UgUGhvbmVUeXBlLlBFUlM6IGNlbGwgPSBwaG9uZS5waG9uZSB8fCBudWxsOyBicmVhaztcbiAgICAgICAgY2FzZSBQaG9uZVR5cGUuSE9NRTogaG9tZSA9IHBob25lLnBob25lIHx8IG51bGw7IGJyZWFrO1xuICAgICAgICBjYXNlIFBob25lVHlwZS5XT1JLOiB3b3JrID0gcGhvbmUucGhvbmUgfHwgbnVsbDsgYnJlYWs7XG4gICAgICAgIGNhc2UgUGhvbmVUeXBlLk9USEVSOiBvdGhlciA9IHBob25lLnBob25lIHx8IG51bGw7IGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjZWxsIHx8IGhvbWUgfHwgd29yayB8fCBvdGhlciB8fCBwZXJzb24ucGhvbmVzWzBdPy5waG9uZSB8fCBudWxsO1xuICB9XG5cbiAgLy8gVE9ETzogTWFrZSBiZXR0ZXJcbiAgc3RhdGljIGN1cnJlbnRSb2xlKHBlcnNvbj86IFBhcnRpYWw8SVBlcnNvbj4gfCBudWxsKTogSUV4cGVyaWVuY2UgfCBudWxsIHtcbiAgICBpZiAoIXBlcnNvbikgeyByZXR1cm4gbnVsbDsgfVxuICAgIGlmICghcGVyc29uLmV4cGVyaWVuY2UgfHwgcGVyc29uLmV4cGVyaWVuY2UubGVuZ3RoID09PSAwKSB7IHJldHVybiBudWxsOyB9XG5cbiAgICBsZXQgY3VycmVudFJvbGU6IElFeHBlcmllbmNlIHwgbnVsbCA9IG51bGw7XG4gICAgZm9yIChjb25zdCByb2xlIG9mIHBlcnNvbi5leHBlcmllbmNlKSB7XG4gICAgICBpZiAoIWN1cnJlbnRSb2xlIHx8ICFjdXJyZW50Um9sZS5zdGFydERhdGUgfHwgKyhyb2xlLnN0YXJ0RGF0ZSB8fCAwKSA+ICsoY3VycmVudFJvbGU/LnN0YXJ0RGF0ZSB8fCAwKSkge1xuICAgICAgICBjdXJyZW50Um9sZSA9IHJvbGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnRSb2xlO1xuICB9XG5cbiAgLy8gVE9ETzogTWFrZSBiZXR0ZXJcbiAgc3RhdGljIHByZWZlcnJlZEVtYWlsKHBlcnNvbj86IFBhcnRpYWw8SVBlcnNvbj4gfCBudWxsKTogSUVtYWlsIHwgbnVsbCB7XG4gICAgaWYgKCFwZXJzb24pIHsgcmV0dXJuIG51bGw7IH1cbiAgICBpZiAoIXBlcnNvbi5lbWFpbHMgfHwgcGVyc29uLmVtYWlscy5sZW5ndGggPT09IDApIHsgcmV0dXJuIG51bGw7IH1cblxuICAgIGZvciAoY29uc3QgZW1haWwgb2YgcGVyc29uLmVtYWlscykge1xuICAgICAgaWYgKGVtYWlsLmRlbGl2ZXJhYmxlKSB7IHJldHVybiBlbWFpbDsgfVxuICAgIH1cblxuICAgIHJldHVybiBwZXJzb24uZW1haWxzWzBdIHx8IG51bGw7XG4gIH1cblxuICBzdGF0aWMgcmVzaWRlbnRpYWxBZGRyZXNzKHBlcnNvbj86IFBhcnRpYWw8SVBlcnNvbj4gfCBudWxsKTogSUFkZHJlc3MgfCBudWxsIHtcbiAgICBpZiAoIXBlcnNvbikgeyByZXR1cm4gbnVsbDsgfVxuICAgIGlmICghcGVyc29uLmFkZHJlc3NlcyB8fCBwZXJzb24uYWRkcmVzc2VzLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gbnVsbDsgfVxuICAgIGxldCBwcmVmZXJyZWQ6IElBZGRyZXNzIHwgbnVsbCA9IG51bGw7XG4gICAgZm9yIChjb25zdCBhZGRyIG9mIHBlcnNvbi5hZGRyZXNzZXMpIHtcbiAgICAgIGlmIChhZGRyLnR5cGUgIT09IEFkZHJlc3NUeXBlLklOViAmJiBhZGRyLnR5cGUgIT09IEFkZHJlc3NUeXBlLk1BSUwpIHtcbiAgICAgICAgcHJlZmVycmVkID0gcHJlZmVycmVkQWRkcmVzcyhwcmVmZXJyZWQsIGFkZHIuYWRkcmVzcyB8fCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcHJlZmVycmVkO1xuICB9XG5cbiAgc3RhdGljIG1haWxBZGRyZXNzKHBlcnNvbj86IFBhcnRpYWw8SVBlcnNvbj4gfCBudWxsKTogSUFkZHJlc3MgfCBudWxsIHtcbiAgICBpZiAoIXBlcnNvbikgeyByZXR1cm4gbnVsbDsgfVxuICAgIGlmICghcGVyc29uLmFkZHJlc3NlcyB8fCBwZXJzb24uYWRkcmVzc2VzLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gbnVsbDsgfVxuXG4gICAgbGV0IHByZWZlcnJlZDogSUFkZHJlc3MgfCBudWxsID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGFkZHIgb2YgcGVyc29uLmFkZHJlc3Nlcykge1xuICAgICAgaWYgKGFkZHIudHlwZSA9PT0gQWRkcmVzc1R5cGUuTUFJTCkge1xuICAgICAgICBwcmVmZXJyZWQgPSBwcmVmZXJyZWRBZGRyZXNzKHByZWZlcnJlZCwgYWRkci5hZGRyZXNzIHx8IG51bGwpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwcmVmZXJyZWQgfHwgUGVyc29uLnJlc2lkZW50aWFsQWRkcmVzcyhwZXJzb24pO1xuICB9XG5cbiAgc3RhdGljIGFnZShwZXJzb24/OiBQYXJ0aWFsPElQZXJzb24+IHwgbnVsbCk6IG51bWJlciB8IG51bGwge1xuICAgIGlmICghcGVyc29uIHx8ICFwZXJzb24uYmlydGhEYXRlKSB7IHJldHVybiBudWxsOyB9XG4gICAgY29uc3QgYmlydGhkYXkgPSArbmV3IERhdGUocGVyc29uLmJpcnRoRGF0ZSk7XG4gICAgcmV0dXJuIH5+KChEYXRlLm5vdygpIC0gYmlydGhkYXkpIC8gKDMxNTU3NjAwMDAwKSk7IC8vIE1hZ2ljIHdheSB0byB0dXJuIGEgZGF0ZSBpbiB0byBhZ2UuXG4gIH1cblxuICBzdGF0aWMgZnVsbE5hbWUocGVyc29uPzogUGFydGlhbDxJUGVyc29uPiB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIXBlcnNvbikgeyByZXR1cm4gbnVsbDsgfVxuICAgIHJldHVybiBbIHBlcnNvbi5maXJzdE5hbWUsIHBlcnNvbi5sYXN0TmFtZSBdLmpvaW4oJyAnKS50cmltKCk7XG4gIH1cblxuICBnZXQgZnVsbE5hbWUoKTogc3RyaW5nIHwgbnVsbCB7IHJldHVybiBQZXJzb24uZnVsbE5hbWUodGhpcyk7IH1cbiAgZ2V0IGFnZSgpOiBudW1iZXIgfCBudWxsIHsgcmV0dXJuIFBlcnNvbi5hZ2UodGhpcyk7IH1cbiAgZ2V0IHByZWZlcnJlZFBob25lKCk6IElQaG9uZSB8IG51bGwgeyByZXR1cm4gUGVyc29uLnByZWZlcnJlZFBob25lKHRoaXMpOyB9XG4gIGdldCBwcmVmZXJyZWRFbWFpbCgpOiBJRW1haWwgfCBudWxsIHsgcmV0dXJuIFBlcnNvbi5wcmVmZXJyZWRFbWFpbCh0aGlzKTsgfVxuICBnZXQgcmVzaWRlbnRpYWxBZGRyZXNzKCk6IElBZGRyZXNzIHwgbnVsbCB7IHJldHVybiBQZXJzb24ucmVzaWRlbnRpYWxBZGRyZXNzKHRoaXMpOyB9XG4gIGdldCBtYWlsQWRkcmVzcygpOiBJQWRkcmVzcyB8IG51bGwgeyByZXR1cm4gUGVyc29uLm1haWxBZGRyZXNzKHRoaXMpOyB9XG4gIGdldCBjdXJyZW50Um9sZSgpOiBJRXhwZXJpZW5jZSB8IG51bGwgeyByZXR1cm4gUGVyc29uLmN1cnJlbnRSb2xlKHRoaXMpOyB9XG5cbiAgZ2V0IHByaW1hcnlMYW5ndWFnZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMucHJpbWFyeUxhbmd1YWdlQ29kZSkgeyByZXR1cm4gbnVsbDsgfVxuICAgIHJldHVybiBMYW5nQ29kZVRvTmFtZVt0aGlzLnByaW1hcnlMYW5ndWFnZUNvZGVdO1xuICB9XG5cbiAgZ2V0IHNlY29uZGFyeUxhbmd1YWdlKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5zZWNvbmRhcnlMYW5ndWFnZUNvZGUpIHsgcmV0dXJuIG51bGw7IH1cbiAgICByZXR1cm4gTGFuZ0NvZGVUb05hbWVbdGhpcy5zZWNvbmRhcnlMYW5ndWFnZUNvZGVdO1xuICB9XG5cbiAgZ2V0IHByaW1hcnlFdGhuaWNpdHkoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLnByaW1hcnlFdGhuaWNpdHlDb2RlKSB7IHJldHVybiBudWxsOyB9XG4gICAgcmV0dXJuIHRoaXMucHJpbWFyeUV0aG5pY2l0eUNvZGU7XG4gIH1cblxuICBnZXQgc2Vjb25kYXJ5RXRobmljaXR5KCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5zZWNvbmRhcnlFdGhuaWNpdHlDb2RlKSB7IHJldHVybiBudWxsOyB9XG4gICAgcmV0dXJuIHRoaXMuc2Vjb25kYXJ5RXRobmljaXR5Q29kZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RhbXBQZXJzb24oZGF0YTogUGFydGlhbDxJUGVyc29uPiA9IHt9KTogSVBlcnNvbiB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHtcbiAgICBpZDogTklMX1VVSUQsXG4gICAgY291bnR5SWQ6IG51bGwsXG4gICAgYWZmaWRhdml0TnVtOiBudWxsLFxuXG4gICAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLFxuICAgIHVwZGF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICBkZWxldGVkQXQ6IG51bGwsXG5cbiAgICBwcmVOb21pbmFsOiBudWxsLFxuICAgIGZpcnN0TmFtZTogbnVsbCxcbiAgICBtaWRkbGVOYW1lOiBudWxsLFxuICAgIGxhc3ROYW1lOiBudWxsLFxuICAgIHN1ZmZpeDogbnVsbCxcbiAgICBwb3N0Tm9taW5hbDogbnVsbCxcbiAgICBuaWNrbmFtZTogbnVsbCxcblxuICAgIHZvdGVzOiBbXSxcbiAgICBhY2NvdW50czogW10sXG4gICAgYWRkcmVzc2VzOiBbXSxcbiAgICBlbWFpbHM6IFtdLFxuICAgIHBob25lczogW10sXG4gICAgZXhwZXJpZW5jZTogW10sXG4gICAgc2NvcmVzOiBbXSxcblxuICAgIGdlbmRlcjogbnVsbCxcbiAgICBwYXJ0eTogbnVsbCxcbiAgICBiaXJ0aERhdGU6IG51bGwsXG4gICAgYmlydGhTdGF0ZTogbnVsbCxcbiAgICBiaXJ0aENvdW50cnk6IG51bGwsXG4gICAgcHJpbWFyeUxhbmd1YWdlQ29kZTogbnVsbCxcbiAgICBzZWNvbmRhcnlMYW5ndWFnZUNvZGU6IG51bGwsXG4gICAgcHJpbWFyeUV0aG5pY2l0eUNvZGU6IG51bGwsXG4gICAgc2Vjb25kYXJ5RXRobmljaXR5Q29kZTogbnVsbCxcblxuICAgIGJhbGxvdDogbnVsbCxcbiAgICBwcmVjaW5jdDogbnVsbCxcblxuICB9LCBkYXRhKTtcbn1cblxuZXhwb3J0IHR5cGUgUGVyc29uUHJvcHMgPSBrZXlvZiBJUGVyc29uO1xuXG5jb25zdCBkZWZhdWx0UGVyc29uOiBJUGVyc29uID0gc3RhbXBQZXJzb24oKTtcbmV4cG9ydCBjb25zdCBwZXJzb25Qcm9wcyA9IE9iamVjdC5mcmVlemUoT2JqZWN0LmtleXMoZGVmYXVsdFBlcnNvbikpIGFzIFJlYWRvbmx5PFBlcnNvblByb3BzW10+O1xuLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmV4cG9ydCBjb25zdCBpc1BlcnNvblByb3AgPSAoa2V5OiBzdHJpbmcpOiBrZXkgaXMgUGVyc29uUHJvcHMgPT4gcGVyc29uUHJvcHMuaW5jbHVkZXMoKGtleSBhcyBhbnkpKTtcblxuZXhwb3J0IGNvbnN0IHBlcnNvblZhbGlkYXRvcjogVmFsaWRhdG9yPElQZXJzb24+ID0ge1xuXG4gIGlkOiBpc1V1aWQsXG4gIGNvdW50eUlkOiBpc1N0cmluZ09yTnVsbCxcbiAgYWZmaWRhdml0TnVtOiBpc1N0cmluZ09yTnVsbCxcblxuICBjcmVhdGVkQXQ6IGlzRGF0ZSxcbiAgdXBkYXRlZEF0OiBpc0RhdGUsXG4gIGRlbGV0ZWRBdDogaXNEYXRlT3JOdWxsLFxuXG4gIHByZU5vbWluYWw6IGlzUHJlTm9taW5hbE9yTnVsbCxcbiAgZmlyc3ROYW1lOiBpc1N0cmluZ09yTnVsbCxcbiAgbWlkZGxlTmFtZTogaXNTdHJpbmdPck51bGwsXG4gIGxhc3ROYW1lOiBpc1N0cmluZ09yTnVsbCxcbiAgcG9zdE5vbWluYWw6IGlzUG9zdE5vbWluYWxPck51bGwsXG4gIHN1ZmZpeDogaXNOYW1lU3VmZml4T3JOdWxsLFxuICBuaWNrbmFtZTogaXNTdHJpbmdPck51bGwsXG5cbiAgdm90ZXM6ICh2OiB1bmtub3duKTogdiBpcyBJVm90ZVtdID0+IEFycmF5LmlzQXJyYXkodiksIC8vIGlzVm90ZU9yTnVsbCxcbiAgYWNjb3VudHM6ICh2OiB1bmtub3duKTogdiBpcyBJQWNjb3VudFtdID0+IEFycmF5LmlzQXJyYXkodiksIC8vIGlzQWNjb3VudE9yTnVsbCxcbiAgYWRkcmVzc2VzOiAodjogdW5rbm93bik6IHYgaXMgSVBlcnNvbkFkZHJlc3NbXSA9PiBBcnJheS5pc0FycmF5KHYpLCAvLyBpc0FkZHJlc3NPck51bGwsXG4gIGVtYWlsczogKHY6IHVua25vd24pOiB2IGlzIElFbWFpbFtdID0+IEFycmF5LmlzQXJyYXkodiksIC8vIFRPRE86IEltcGxlbWVudCB0ZWwgdmFsaWRhdGlvbi5cbiAgcGhvbmVzOiAodjogdW5rbm93bik6IHYgaXMgSVBlcnNvblBob25lW10gPT4gQXJyYXkuaXNBcnJheSh2KSwgLy8gVE9ETzogSW1wbGVtZW50IHRlbCB2YWxpZGF0aW9uLlxuICBleHBlcmllbmNlOiAodjogdW5rbm93bik6IHYgaXMgSUV4cGVyaWVuY2VbXSA9PiBBcnJheS5pc0FycmF5KHYpLCAvLyBUT0RPOiBJbXBsZW1lbnQgZXhwZXJpZW5jZSB2YWxpZGF0aW9uLlxuICBzY29yZXM6ICh2OiB1bmtub3duKTogdiBpcyBJU2NvcmVbXSA9PiBBcnJheS5pc0FycmF5KHYpLCAvLyBUT0RPOiBJbXBsZW1lbnQgc2NvcmUgdmFsaWRhdGlvbi5cblxuICBnZW5kZXI6IGlzR2VuZGVyT3JOdWxsLFxuICBwYXJ0eTogaXNQYXJ0eU9yTnVsbCxcbiAgYmlydGhEYXRlOiBpc0RhdGVPck51bGwsXG4gIGJpcnRoU3RhdGU6IGlzU3RhdGVPck51bGwsXG4gIGJpcnRoQ291bnRyeTogaXNDb3VudHJ5T3JOdWxsLFxuICBwcmltYXJ5TGFuZ3VhZ2VDb2RlOiBpc0xhbmd1YWdlQ29kZU9yTnVsbCxcbiAgc2Vjb25kYXJ5TGFuZ3VhZ2VDb2RlOiBpc0xhbmd1YWdlQ29kZU9yTnVsbCxcbiAgcHJpbWFyeUV0aG5pY2l0eUNvZGU6IGlzU3RyaW5nT3JOdWxsLFxuICBzZWNvbmRhcnlFdGhuaWNpdHlDb2RlOiBpc1N0cmluZ09yTnVsbCxcblxuICBiYWxsb3Q6IGlzQmFsbG90VHlwZU9yTnVsbCxcbiAgcHJlY2luY3Q6IGlzU3RyaW5nT3JOdWxsLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQZXJzb24obzogdW5rbm93biwgbG9nOiBMb2dnZXIgPSBmYWxzZSk6IG8gaXMgSVBlcnNvbiB7XG4gIGlmICghbyB8fCB0eXBlb2YgbyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBsZXQgcmV0ID0gdHJ1ZTtcbiAgY29uc3QgcGVyc29uOiBQYXJ0aWFsPElQZXJzb24+ID0gbyBhcyBQYXJ0aWFsPElQZXJzb24+O1xuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhkZWZhdWx0UGVyc29uKSkge1xuICAgIGlmICghcGVyc29uVmFsaWRhdG9yW2tleV0ocGVyc29uW2tleV0pKSB7XG4gICAgICBsb2cgJiYgbG9nKGBVbnNhbml0YXJ5IERhdGEgZm9yIHBlcnNvbiBcIiR7cGVyc29uLmlkfVwiLiBJbnZhbGlkIHZhbHVlIGZvciAke2tleX06ICR7SlNPTi5zdHJpbmdpZnkocGVyc29uW2tleV0sIG51bGwsIDIpfWApO1xuICAgICAgcmV0ID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVQZXJzb24obzogUGFydGlhbDxJUGVyc29uPik6IFBlcnNvbiB7XG4gIGlmIChvIGluc3RhbmNlb2YgUGVyc29uKSB7IHJldHVybiBvOyB9XG4gIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG8pKSB7XG4gICAgaWYgKCFpc1BlcnNvblByb3Aoa2V5KSkgeyBkZWxldGUgb1trZXldOyB9XG4gIH1cbiAgZm9yIChjb25zdCBrZXkgb2YgcGVyc29uUHJvcHMpIHtcbiAgICBpZiAoIXBlcnNvblZhbGlkYXRvcltrZXldPy4ob1trZXldKSkgeyAob1trZXldIGFzIHVua25vd24pID0gZGVmYXVsdFBlcnNvbltrZXldOyB9XG4gIH1cbiAgcmV0dXJuIG5ldyBQZXJzb24obyBhcyBJUGVyc29uKTtcbn1cblxuZXhwb3J0IHsgSVBlcnNvbiB9O1xuIl19
{
"name": "@universe/models",
"version": "2.1.1",
"version": "2.1.2",
"main": "dist/src/index.js",

@@ -5,0 +5,0 @@ "description": "Universe data models.",

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

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