New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.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.2 to 2.2.0

4

dist/sql.d.ts

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

Score: {
getById: (personId: string, name: string, value: number) => Models.IScore | null;
getById: (personId: string, name: string) => 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, name: string, value: number) => Models.DeleteDiff<Models.ModelType.SCORE> | null;
delete: (personId: string, name: string) => 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;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
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");

@@ -100,2 +98,2 @@ Object.defineProperty(exports, "ModelType", { enumerable: true, get: function () { return types_1.ModelType; } });

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

@@ -30,4 +30,4 @@ import { Person as AbstractPerson, IAccount, IPerson, IEmail, IPhone, IAddress, IExperience } from '../types';

export declare type PersonProps = keyof IPerson;
export declare const personProps: readonly (keyof IPerson)[];
export declare const isPersonProp: (key: string) => key is keyof IPerson;
export declare const personProps: readonly ("emails" | "accounts" | "votes" | "phones" | "addresses" | "experience" | "scores" | "id" | "countyId" | "affidavitNum" | "precinct" | "createdAt" | "updatedAt" | "deletedAt" | "preNominal" | "firstName" | "middleName" | "lastName" | "suffix" | "postNominal" | "nickname" | "birthDate" | "birthState" | "birthCountry" | "gender" | "party" | "ballot" | "religion" | "education" | "military" | "income" | "primaryLanguageCode" | "secondaryLanguageCode" | "primaryEthnicityCode" | "secondaryEthnicityCode")[];
export declare const isPersonProp: (key: string) => key is "emails" | "accounts" | "votes" | "phones" | "addresses" | "experience" | "scores" | "id" | "countyId" | "affidavitNum" | "precinct" | "createdAt" | "updatedAt" | "deletedAt" | "preNominal" | "firstName" | "middleName" | "lastName" | "suffix" | "postNominal" | "nickname" | "birthDate" | "birthState" | "birthCountry" | "gender" | "party" | "ballot" | "religion" | "education" | "military" | "income" | "primaryLanguageCode" | "secondaryLanguageCode" | "primaryEthnicityCode" | "secondaryEthnicityCode";
export declare const personValidator: Validator<IPerson>;

@@ -34,0 +34,0 @@ export declare function isValidPerson(o: unknown, log?: Logger): o is IPerson;

@@ -213,2 +213,6 @@ "use strict";

birthCountry: null,
religion: null,
education: null,
military: null,
income: null,
primaryLanguageCode: null,

@@ -226,4 +230,3 @@ secondaryLanguageCode: null,

/* eslint-disable-next-line @typescript-eslint/no-explicit-any */
const isPersonProp = (key) => exports.personProps.includes(key);
exports.isPersonProp = isPersonProp;
exports.isPersonProp = (key) => exports.personProps.includes(key);
exports.personValidator = {

@@ -255,2 +258,6 @@ id: util_1.isUuid,

birthCountry: types_1.isCountryOrNull,
religion: types_1.isReligionOrNull,
education: types_1.isEducationOrNull,
military: types_1.isMilitaryStatusOrNull,
income: util_1.isNumberOrNull,
primaryLanguageCode: types_1.isLanguageCodeOrNull,

@@ -296,2 +303,2 @@ secondaryLanguageCode: types_1.isLanguageCodeOrNull,

exports.ensurePerson = ensurePerson;
//# 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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVyc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGVscy9QZXJzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBT3dCO0FBRXhCLG9DQXlCa0I7QUFFbEIseUNBQTRDO0FBQzVDLG1DQUFvQztBQU9wQyx3REFBd0Q7QUFDeEQsK0JBQStCO0FBQy9CLFNBQVMsZ0JBQWdCLENBQUMsS0FBc0IsRUFBRSxLQUFzQjtJQUN0RSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO1FBQUUsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDO0tBQUU7SUFDaEQsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFDdEQsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFFdEQsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFDcEQsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFFcEQsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFDOUMsSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtRQUFFLE9BQU8sS0FBSyxDQUFDO0tBQUU7SUFFOUMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBYSxNQUFPLFNBQVEsY0FBYztJQUN4QyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQXFCLEVBQUUsTUFBZTtRQUN4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QU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQWRELHNDQWNDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLENBQW1COztJQUM5QyxJQUFJLENBQUMsWUFBWSxNQUFNLEVBQUU7UUFBRSxPQUFPLENBQUMsQ0FBQztLQUFFO0lBQ3RDLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNoQyxJQUFJLENBQUMsb0JBQVksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQUU7S0FDM0M7SUFDRCxLQUFLLE1BQU0sR0FBRyxJQUFJLG1CQUFXLEVBQUU7UUFDN0IsSUFBSSxRQUFDLHVCQUFlLENBQUMsR0FBRyxDQUFDLCtDQUFwQix1QkFBZSxFQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBQyxFQUFFO1lBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBYSxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUFFO0tBQ25GO0lBQ0QsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFZLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBVEQsb0NBU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpc1V1aWQsXG4gIGlzRGF0ZSxcbiAgaXNEYXRlT3JOdWxsLFxuICBpc1N0cmluZ09yTnVsbCxcbiAgTklMX1VVSUQsXG4gIGlzTnVtYmVyT3JOdWxsLFxufSBmcm9tICdAdW5pdmVyc2UvdXRpbCc7XG5cbmltcG9ydCB7XG4gIFBlcnNvbiBhcyBBYnN0cmFjdFBlcnNvbixcbiAgSUFjY291bnQsXG4gIElQZXJzb24sXG4gIGlzQmFsbG90VHlwZU9yTnVsbCxcbiAgaXNDb3VudHJ5T3JOdWxsLFxuICBpc0xhbmd1YWdlQ29kZU9yTnVsbCxcbiAgaXNOYW1lU3VmZml4T3JOdWxsLFxuICBpc1ByZU5vbWluYWxPck51bGwsXG4gIGlzUG9zdE5vbWluYWxPck51bGwsXG4gIGlzU3RhdGVPck51bGwsXG4gIGlzUGFydHlPck51bGwsXG4gIElWb3RlLFxuICBJRW1haWwsXG4gIElQaG9uZSxcbiAgQWRkcmVzc1R5cGUsXG4gIElBZGRyZXNzLFxuICBJUGVyc29uQWRkcmVzcyxcbiAgSVBlcnNvblBob25lLFxuICBpc0dlbmRlck9yTnVsbCxcbiAgSUV4cGVyaWVuY2UsXG4gIElTY29yZSxcbiAgaXNSZWxpZ2lvbk9yTnVsbCxcbiAgaXNFZHVjYXRpb25Pck51bGwsXG4gIGlzTWlsaXRhcnlTdGF0dXNPck51bGwsXG59IGZyb20gJy4uL3R5cGVzJztcblxuaW1wb3J0IHsgTGFuZ0NvZGVUb05hbWUgfSBmcm9tICcuL0xhbmd1YWdlJztcbmltcG9ydCB7IFBob25lVHlwZSB9IGZyb20gJy4vUGhvbmUnO1xuaW1wb3J0IHsgQWNjb3VudFR5cGUgfSBmcm9tICcuL0FjY291bnQnO1xuXG4vLyBUT0RPOiBDb2RlZ2VuIHZhbGlkYXRvcnMuXG5leHBvcnQgdHlwZSBWYWxpZGF0b3I8VD4gPSB7IFtrZXkgaW4ga2V5b2YgVF06ICh2OiB1bmtub3duKSA9PiB2IGlzIFRba2V5XSB9O1xuZXhwb3J0IHR5cGUgTG9nZ2VyID0gZmFsc2UgfCAoKG1zZzogc3RyaW5nKSA9PiB2b2lkKTtcblxuLy8gR2l2ZW4gdHdvIGFkZHJlc3MsIHJldHVybiB0aGUgbW9yZSBcImNvbXBsZXRlXCIgb2JqZWN0LlxuLy8gVE9ETzogTWFrZSBtb3JlIGludGVsbGlnZW50LlxuZnVuY3Rpb24gcHJlZmVycmVkQWRkcmVzcyhhZGRyMTogSUFkZHJlc3MgfCBudWxsLCBhZGRyMjogSUFkZHJlc3MgfCBudWxsKTogSUFkZHJlc3MgfCBudWxsIHtcbiAgaWYgKCFhZGRyMSB8fCAhYWRkcjIpIHsgcmV0dXJuIGFkZHIxIHx8IGFkZHIyOyB9XG4gIGlmIChhZGRyMS51bml0TnVtICYmICFhZGRyMi51bml0TnVtKSB7IHJldHVybiBhZGRyMTsgfVxuICBpZiAoYWRkcjIudW5pdE51bSAmJiAhYWRkcjEudW5pdE51bSkgeyByZXR1cm4gYWRkcjI7IH1cblxuICBpZiAoYWRkcjEubnVtYmVyICYmICFhZGRyMi5udW1iZXIpIHsgcmV0dXJuIGFkZHIxOyB9XG4gIGlmIChhZGRyMi5udW1iZXIgJiYgIWFkZHIxLm51bWJlcikgeyByZXR1cm4gYWRkcjI7IH1cblxuICBpZiAoYWRkcjEuemlwICYmICFhZGRyMi56aXApIHsgcmV0dXJuIGFkZHIxOyB9XG4gIGlmIChhZGRyMi56aXAgJiYgIWFkZHIxLnppcCkgeyByZXR1cm4gYWRkcjI7IH1cblxuICByZXR1cm4gYWRkcjE7XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJzb24gZXh0ZW5kcyBBYnN0cmFjdFBlcnNvbiB7XG4gIHN0YXRpYyBnZXRBY2NvdW50SWQoYWNjdFR5cGU6IEFjY291bnRUeXBlLCBwZXJzb246IElQZXJzb24pOiBJQWNjb3VudCB8IG51bGwge1xuICAgIGlmICghcGVyc29uLmFjY291bnRzKSB7IHJldHVybiBudWxsOyB9XG4gICAgZm9yIChjb25zdCBhY2N0IG9mIHBlcnNvbi5hY2NvdW50cykge1xuICAgICAgaWYgKGFjY3QuYWNjb3VudFR5cGUgPT09IGFjY3RUeXBlKSB7IHJldHVybiBhY2N0IGFzIElBY2NvdW50OyB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIHByZWZlcnJlZFBob25lKHBlcnNvbj86IFBhcnRpYWw8SVBlcnNvbj4gfCBudWxsKTogSVBob25lIHwgbnVsbCB7XG4gICAgaWYgKCFwZXJzb24pIHsgcmV0dXJuIG51bGw7IH1cbiAgICBpZiAoIXBlcnNvbi5waG9uZXMgfHwgcGVyc29uLnBob25lcy5sZW5ndGggPT09IDApIHsgcmV0dXJuIG51bGw7IH1cblxuICAgIGxldCBjZWxsOiBJUGhvbmUgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgaG9tZTogSVBob25lIHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHdvcms6IElQaG9uZSB8IG51bGwgPSBudWxsO1xuICAgIGxldCBvdGhlcjogSVBob25lIHwgbnVsbCA9IG51bGw7XG5cbiAgICBmb3IgKGNvbnN0IHBob25lIG9mIHBlcnNvbi5waG9uZXMpIHtcbiAgICAgIGlmICghcGhvbmUpIHsgY29udGludWU7IH1cbiAgICAgIHN3aXRjaCAocGhvbmUudHlwZSkge1xuICAgICAgICBjYXNlIFBob25lVHlwZS5QRVJTOiBjZWxsID0gcGhvbmUucGhvbmUgfHwgbnVsbDsgYnJlYWs7XG4gICAgICAgIGNhc2UgUGhvbmVUeXBlLkhPTUU6IGhvbWUgPSBwaG9uZS5waG9uZSB8fCBudWxsOyBicmVhaztcbiAgICAgICAgY2FzZSBQaG9uZVR5cGUuV09SSzogd29yayA9IHBob25lLnBob25lIHx8IG51bGw7IGJyZWFrO1xuICAgICAgICBjYXNlIFBob25lVHlwZS5PVEhFUjogb3RoZXIgPSBwaG9uZS5waG9uZSB8fCBudWxsOyBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY2VsbCB8fCBob21lIHx8IHdvcmsgfHwgb3RoZXIgfHwgcGVyc29uLnBob25lc1swXT8ucGhvbmUgfHwgbnVsbDtcbiAgfVxuXG4gIC8vIFRPRE86IE1ha2UgYmV0dGVyXG4gIHN0YXRpYyBjdXJyZW50Um9sZShwZXJzb24/OiBQYXJ0aWFsPElQZXJzb24+IHwgbnVsbCk6IElFeHBlcmllbmNlIHwgbnVsbCB7XG4gICAgaWYgKCFwZXJzb24pIHsgcmV0dXJuIG51bGw7IH1cbiAgICBpZiAoIXBlcnNvbi5leHBlcmllbmNlIHx8IHBlcnNvbi5leHBlcmllbmNlLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gbnVsbDsgfVxuXG4gICAgbGV0IGN1cnJlbnRSb2xlOiBJRXhwZXJpZW5jZSB8IG51bGwgPSBudWxsO1xuICAgIGZvciAoY29uc3Qgcm9sZSBvZiBwZXJzb24uZXhwZXJpZW5jZSkge1xuICAgICAgaWYgKCFjdXJyZW50Um9sZSB8fCAhY3VycmVudFJvbGUuc3RhcnREYXRlIHx8ICsocm9sZS5zdGFydERhdGUgfHwgMCkgPiArKGN1cnJlbnRSb2xlPy5zdGFydERhdGUgfHwgMCkpIHtcbiAgICAgICAgY3VycmVudFJvbGUgPSByb2xlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjdXJyZW50Um9sZTtcbiAgfVxuXG4gIC8vIFRPRE86IE1ha2UgYmV0dGVyXG4gIHN0YXRpYyBwcmVmZXJyZWRFbWFpbChwZXJzb24/OiBQYXJ0aWFsPElQZXJzb24+IHwgbnVsbCk6IElFbWFpbCB8IG51bGwge1xuICAgIGlmICghcGVyc29uKSB7IHJldHVybiBudWxsOyB9XG4gICAgaWYgKCFwZXJzb24uZW1haWxzIHx8IHBlcnNvbi5lbWFpbHMubGVuZ3RoID09PSAwKSB7IHJldHVybiBudWxsOyB9XG5cbiAgICBmb3IgKGNvbnN0IGVtYWlsIG9mIHBlcnNvbi5lbWFpbHMpIHtcbiAgICAgIGlmIChlbWFpbC5kZWxpdmVyYWJsZSkgeyByZXR1cm4gZW1haWw7IH1cbiAgICB9XG5cbiAgICByZXR1cm4gcGVyc29uLmVtYWlsc1swXSB8fCBudWxsO1xuICB9XG5cbiAgc3RhdGljIHJlc2lkZW50aWFsQWRkcmVzcyhwZXJzb24/OiBQYXJ0aWFsPElQZXJzb24+IHwgbnVsbCk6IElBZGRyZXNzIHwgbnVsbCB7XG4gICAgaWYgKCFwZXJzb24pIHsgcmV0dXJuIG51bGw7IH1cbiAgICBpZiAoIXBlcnNvbi5hZGRyZXNzZXMgfHwgcGVyc29uLmFkZHJlc3Nlcy5sZW5ndGggPT09IDApIHsgcmV0dXJuIG51bGw7IH1cbiAgICBsZXQgcHJlZmVycmVkOiBJQWRkcmVzcyB8IG51bGwgPSBudWxsO1xuICAgIGZvciAoY29uc3QgYWRkciBvZiBwZXJzb24uYWRkcmVzc2VzKSB7XG4gICAgICBpZiAoYWRkci50eXBlICE9PSBBZGRyZXNzVHlwZS5JTlYgJiYgYWRkci50eXBlICE9PSBBZGRyZXNzVHlwZS5NQUlMKSB7XG4gICAgICAgIHByZWZlcnJlZCA9IHByZWZlcnJlZEFkZHJlc3MocHJlZmVycmVkLCBhZGRyLmFkZHJlc3MgfHwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZWZlcnJlZDtcbiAgfVxuXG4gIHN0YXRpYyBtYWlsQWRkcmVzcyhwZXJzb24/OiBQYXJ0aWFsPElQZXJzb24+IHwgbnVsbCk6IElBZGRyZXNzIHwgbnVsbCB7XG4gICAgaWYgKCFwZXJzb24pIHsgcmV0dXJuIG51bGw7IH1cbiAgICBpZiAoIXBlcnNvbi5hZGRyZXNzZXMgfHwgcGVyc29uLmFkZHJlc3Nlcy5sZW5ndGggPT09IDApIHsgcmV0dXJuIG51bGw7IH1cblxuICAgIGxldCBwcmVmZXJyZWQ6IElBZGRyZXNzIHwgbnVsbCA9IG51bGw7XG4gICAgZm9yIChjb25zdCBhZGRyIG9mIHBlcnNvbi5hZGRyZXNzZXMpIHtcbiAgICAgIGlmIChhZGRyLnR5cGUgPT09IEFkZHJlc3NUeXBlLk1BSUwpIHtcbiAgICAgICAgcHJlZmVycmVkID0gcHJlZmVycmVkQWRkcmVzcyhwcmVmZXJyZWQsIGFkZHIuYWRkcmVzcyB8fCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcHJlZmVycmVkIHx8IFBlcnNvbi5yZXNpZGVudGlhbEFkZHJlc3MocGVyc29uKTtcbiAgfVxuXG4gIHN0YXRpYyBhZ2UocGVyc29uPzogUGFydGlhbDxJUGVyc29uPiB8IG51bGwpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAoIXBlcnNvbiB8fCAhcGVyc29uLmJpcnRoRGF0ZSkgeyByZXR1cm4gbnVsbDsgfVxuICAgIGNvbnN0IGJpcnRoZGF5ID0gK25ldyBEYXRlKHBlcnNvbi5iaXJ0aERhdGUpO1xuICAgIHJldHVybiB+figoRGF0ZS5ub3coKSAtIGJpcnRoZGF5KSAvICgzMTU1NzYwMDAwMCkpOyAvLyBNYWdpYyB3YXkgdG8gdHVybiBhIGRhdGUgaW4gdG8gYWdlLlxuICB9XG5cbiAgc3RhdGljIGZ1bGxOYW1lKHBlcnNvbj86IFBhcnRpYWw8SVBlcnNvbj4gfCBudWxsKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFwZXJzb24pIHsgcmV0dXJuIG51bGw7IH1cbiAgICByZXR1cm4gWyBwZXJzb24uZmlyc3ROYW1lLCBwZXJzb24ubGFzdE5hbWUgXS5qb2luKCcgJykudHJpbSgpO1xuICB9XG5cbiAgZ2V0IGZ1bGxOYW1lKCk6IHN0cmluZyB8IG51bGwgeyByZXR1cm4gUGVyc29uLmZ1bGxOYW1lKHRoaXMpOyB9XG4gIGdldCBhZ2UoKTogbnVtYmVyIHwgbnVsbCB7IHJldHVybiBQZXJzb24uYWdlKHRoaXMpOyB9XG4gIGdldCBwcmVmZXJyZWRQaG9uZSgpOiBJUGhvbmUgfCBudWxsIHsgcmV0dXJuIFBlcnNvbi5wcmVmZXJyZWRQaG9uZSh0aGlzKTsgfVxuICBnZXQgcHJlZmVycmVkRW1haWwoKTogSUVtYWlsIHwgbnVsbCB7IHJldHVybiBQZXJzb24ucHJlZmVycmVkRW1haWwodGhpcyk7IH1cbiAgZ2V0IHJlc2lkZW50aWFsQWRkcmVzcygpOiBJQWRkcmVzcyB8IG51bGwgeyByZXR1cm4gUGVyc29uLnJlc2lkZW50aWFsQWRkcmVzcyh0aGlzKTsgfVxuICBnZXQgbWFpbEFkZHJlc3MoKTogSUFkZHJlc3MgfCBudWxsIHsgcmV0dXJuIFBlcnNvbi5tYWlsQWRkcmVzcyh0aGlzKTsgfVxuICBnZXQgY3VycmVudFJvbGUoKTogSUV4cGVyaWVuY2UgfCBudWxsIHsgcmV0dXJuIFBlcnNvbi5jdXJyZW50Um9sZSh0aGlzKTsgfVxuXG4gIGdldCBwcmltYXJ5TGFuZ3VhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLnByaW1hcnlMYW5ndWFnZUNvZGUpIHsgcmV0dXJuIG51bGw7IH1cbiAgICByZXR1cm4gTGFuZ0NvZGVUb05hbWVbdGhpcy5wcmltYXJ5TGFuZ3VhZ2VDb2RlXTtcbiAgfVxuXG4gIGdldCBzZWNvbmRhcnlMYW5ndWFnZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuc2Vjb25kYXJ5TGFuZ3VhZ2VDb2RlKSB7IHJldHVybiBudWxsOyB9XG4gICAgcmV0dXJuIExhbmdDb2RlVG9OYW1lW3RoaXMuc2Vjb25kYXJ5TGFuZ3VhZ2VDb2RlXTtcbiAgfVxuXG4gIGdldCBwcmltYXJ5RXRobmljaXR5KCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5wcmltYXJ5RXRobmljaXR5Q29kZSkgeyByZXR1cm4gbnVsbDsgfVxuICAgIHJldHVybiB0aGlzLnByaW1hcnlFdGhuaWNpdHlDb2RlO1xuICB9XG5cbiAgZ2V0IHNlY29uZGFyeUV0aG5pY2l0eSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuc2Vjb25kYXJ5RXRobmljaXR5Q29kZSkgeyByZXR1cm4gbnVsbDsgfVxuICAgIHJldHVybiB0aGlzLnNlY29uZGFyeUV0aG5pY2l0eUNvZGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN0YW1wUGVyc29uKGRhdGE6IFBhcnRpYWw8SVBlcnNvbj4gPSB7fSk6IElQZXJzb24ge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7XG4gICAgaWQ6IE5JTF9VVUlELFxuICAgIGNvdW50eUlkOiBudWxsLFxuICAgIGFmZmlkYXZpdE51bTogbnVsbCxcblxuICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKSxcbiAgICB1cGRhdGVkQXQ6IG5ldyBEYXRlKCksXG4gICAgZGVsZXRlZEF0OiBudWxsLFxuXG4gICAgcHJlTm9taW5hbDogbnVsbCxcbiAgICBmaXJzdE5hbWU6IG51bGwsXG4gICAgbWlkZGxlTmFtZTogbnVsbCxcbiAgICBsYXN0TmFtZTogbnVsbCxcbiAgICBzdWZmaXg6IG51bGwsXG4gICAgcG9zdE5vbWluYWw6IG51bGwsXG4gICAgbmlja25hbWU6IG51bGwsXG5cbiAgICB2b3RlczogW10sXG4gICAgYWNjb3VudHM6IFtdLFxuICAgIGFkZHJlc3NlczogW10sXG4gICAgZW1haWxzOiBbXSxcbiAgICBwaG9uZXM6IFtdLFxuICAgIGV4cGVyaWVuY2U6IFtdLFxuICAgIHNjb3JlczogW10sXG5cbiAgICBnZW5kZXI6IG51bGwsXG4gICAgcGFydHk6IG51bGwsXG4gICAgYmlydGhEYXRlOiBudWxsLFxuICAgIGJpcnRoU3RhdGU6IG51bGwsXG4gICAgYmlydGhDb3VudHJ5OiBudWxsLFxuICAgIHJlbGlnaW9uOiBudWxsLFxuICAgIGVkdWNhdGlvbjogbnVsbCxcbiAgICBtaWxpdGFyeTogbnVsbCxcbiAgICBpbmNvbWU6IG51bGwsXG4gICAgcHJpbWFyeUxhbmd1YWdlQ29kZTogbnVsbCxcbiAgICBzZWNvbmRhcnlMYW5ndWFnZUNvZGU6IG51bGwsXG4gICAgcHJpbWFyeUV0aG5pY2l0eUNvZGU6IG51bGwsXG4gICAgc2Vjb25kYXJ5RXRobmljaXR5Q29kZTogbnVsbCxcblxuICAgIGJhbGxvdDogbnVsbCxcbiAgICBwcmVjaW5jdDogbnVsbCxcblxuICB9LCBkYXRhKTtcbn1cblxuZXhwb3J0IHR5cGUgUGVyc29uUHJvcHMgPSBrZXlvZiBJUGVyc29uO1xuXG5jb25zdCBkZWZhdWx0UGVyc29uOiBJUGVyc29uID0gc3RhbXBQZXJzb24oKTtcbmV4cG9ydCBjb25zdCBwZXJzb25Qcm9wcyA9IE9iamVjdC5mcmVlemUoT2JqZWN0LmtleXMoZGVmYXVsdFBlcnNvbikpIGFzIFJlYWRvbmx5PFBlcnNvblByb3BzW10+O1xuLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmV4cG9ydCBjb25zdCBpc1BlcnNvblByb3AgPSAoa2V5OiBzdHJpbmcpOiBrZXkgaXMgUGVyc29uUHJvcHMgPT4gcGVyc29uUHJvcHMuaW5jbHVkZXMoKGtleSBhcyBhbnkpKTtcblxuZXhwb3J0IGNvbnN0IHBlcnNvblZhbGlkYXRvcjogVmFsaWRhdG9yPElQZXJzb24+ID0ge1xuXG4gIGlkOiBpc1V1aWQsXG4gIGNvdW50eUlkOiBpc1N0cmluZ09yTnVsbCxcbiAgYWZmaWRhdml0TnVtOiBpc1N0cmluZ09yTnVsbCxcblxuICBjcmVhdGVkQXQ6IGlzRGF0ZSxcbiAgdXBkYXRlZEF0OiBpc0RhdGUsXG4gIGRlbGV0ZWRBdDogaXNEYXRlT3JOdWxsLFxuXG4gIHByZU5vbWluYWw6IGlzUHJlTm9taW5hbE9yTnVsbCxcbiAgZmlyc3ROYW1lOiBpc1N0cmluZ09yTnVsbCxcbiAgbWlkZGxlTmFtZTogaXNTdHJpbmdPck51bGwsXG4gIGxhc3ROYW1lOiBpc1N0cmluZ09yTnVsbCxcbiAgcG9zdE5vbWluYWw6IGlzUG9zdE5vbWluYWxPck51bGwsXG4gIHN1ZmZpeDogaXNOYW1lU3VmZml4T3JOdWxsLFxuICBuaWNrbmFtZTogaXNTdHJpbmdPck51bGwsXG5cbiAgdm90ZXM6ICh2OiB1bmtub3duKTogdiBpcyBJVm90ZVtdID0+IEFycmF5LmlzQXJyYXkodiksIC8vIGlzVm90ZU9yTnVsbCxcbiAgYWNjb3VudHM6ICh2OiB1bmtub3duKTogdiBpcyBJQWNjb3VudFtdID0+IEFycmF5LmlzQXJyYXkodiksIC8vIGlzQWNjb3VudE9yTnVsbCxcbiAgYWRkcmVzc2VzOiAodjogdW5rbm93bik6IHYgaXMgSVBlcnNvbkFkZHJlc3NbXSA9PiBBcnJheS5pc0FycmF5KHYpLCAvLyBpc0FkZHJlc3NPck51bGwsXG4gIGVtYWlsczogKHY6IHVua25vd24pOiB2IGlzIElFbWFpbFtdID0+IEFycmF5LmlzQXJyYXkodiksIC8vIFRPRE86IEltcGxlbWVudCB0ZWwgdmFsaWRhdGlvbi5cbiAgcGhvbmVzOiAodjogdW5rbm93bik6IHYgaXMgSVBlcnNvblBob25lW10gPT4gQXJyYXkuaXNBcnJheSh2KSwgLy8gVE9ETzogSW1wbGVtZW50IHRlbCB2YWxpZGF0aW9uLlxuICBleHBlcmllbmNlOiAodjogdW5rbm93bik6IHYgaXMgSUV4cGVyaWVuY2VbXSA9PiBBcnJheS5pc0FycmF5KHYpLCAvLyBUT0RPOiBJbXBsZW1lbnQgZXhwZXJpZW5jZSB2YWxpZGF0aW9uLlxuICBzY29yZXM6ICh2OiB1bmtub3duKTogdiBpcyBJU2NvcmVbXSA9PiBBcnJheS5pc0FycmF5KHYpLCAvLyBUT0RPOiBJbXBsZW1lbnQgc2NvcmUgdmFsaWRhdGlvbi5cblxuICBnZW5kZXI6IGlzR2VuZGVyT3JOdWxsLFxuICBwYXJ0eTogaXNQYXJ0eU9yTnVsbCxcbiAgYmlydGhEYXRlOiBpc0RhdGVPck51bGwsXG4gIGJpcnRoU3RhdGU6IGlzU3RhdGVPck51bGwsXG4gIGJpcnRoQ291bnRyeTogaXNDb3VudHJ5T3JOdWxsLFxuICByZWxpZ2lvbjogaXNSZWxpZ2lvbk9yTnVsbCxcbiAgZWR1Y2F0aW9uOiBpc0VkdWNhdGlvbk9yTnVsbCxcbiAgbWlsaXRhcnk6IGlzTWlsaXRhcnlTdGF0dXNPck51bGwsXG4gIGluY29tZTogaXNOdW1iZXJPck51bGwsXG5cbiAgcHJpbWFyeUxhbmd1YWdlQ29kZTogaXNMYW5ndWFnZUNvZGVPck51bGwsXG4gIHNlY29uZGFyeUxhbmd1YWdlQ29kZTogaXNMYW5ndWFnZUNvZGVPck51bGwsXG4gIHByaW1hcnlFdGhuaWNpdHlDb2RlOiBpc1N0cmluZ09yTnVsbCxcbiAgc2Vjb25kYXJ5RXRobmljaXR5Q29kZTogaXNTdHJpbmdPck51bGwsXG5cbiAgYmFsbG90OiBpc0JhbGxvdFR5cGVPck51bGwsXG4gIHByZWNpbmN0OiBpc1N0cmluZ09yTnVsbCxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUGVyc29uKG86IHVua25vd24sIGxvZzogTG9nZ2VyID0gZmFsc2UpOiBvIGlzIElQZXJzb24ge1xuICBpZiAoIW8gfHwgdHlwZW9mIG8gIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbGV0IHJldCA9IHRydWU7XG4gIGNvbnN0IHBlcnNvbjogUGFydGlhbDxJUGVyc29uPiA9IG8gYXMgUGFydGlhbDxJUGVyc29uPjtcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZGVmYXVsdFBlcnNvbikpIHtcbiAgICBpZiAoIXBlcnNvblZhbGlkYXRvcltrZXldKHBlcnNvbltrZXldKSkge1xuICAgICAgbG9nICYmIGxvZyhgVW5zYW5pdGFyeSBEYXRhIGZvciBwZXJzb24gXCIke3BlcnNvbi5pZH1cIi4gSW52YWxpZCB2YWx1ZSBmb3IgJHtrZXl9OiAke0pTT04uc3RyaW5naWZ5KHBlcnNvbltrZXldLCBudWxsLCAyKX1gKTtcbiAgICAgIHJldCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlUGVyc29uKG86IFBhcnRpYWw8SVBlcnNvbj4pOiBQZXJzb24ge1xuICBpZiAobyBpbnN0YW5jZW9mIFBlcnNvbikgeyByZXR1cm4gbzsgfVxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhvKSkge1xuICAgIGlmICghaXNQZXJzb25Qcm9wKGtleSkpIHsgZGVsZXRlIG9ba2V5XTsgfVxuICB9XG4gIGZvciAoY29uc3Qga2V5IG9mIHBlcnNvblByb3BzKSB7XG4gICAgaWYgKCFwZXJzb25WYWxpZGF0b3Jba2V5XT8uKG9ba2V5XSkpIHsgKG9ba2V5XSBhcyB1bmtub3duKSA9IGRlZmF1bHRQZXJzb25ba2V5XTsgfVxuICB9XG4gIHJldHVybiBuZXcgUGVyc29uKG8gYXMgSVBlcnNvbik7XG59XG5cbmV4cG9ydCB7IElQZXJzb24gfTtcbiJdfQ==
{
"name": "@universe/models",
"version": "2.1.2",
"version": "2.2.0",
"main": "dist/src/index.js",

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

"scripts": {
"build:ext": "node ./ext/build/index.mjs",
"build:gen": "rm -rf dist && tsc --b tsconfig.plugins.json ",
"build": "rm -rf dist && tsc -b tsconfig.plugins.json && yarn run generate && rm -rf dist && tsc -b tsconfig.json",
"build": "rm -rf dist && yarn build:ext && tsc -b tsconfig.plugins.json && yarn run generate && rm -rf dist && tsc -b tsconfig.json",
"generate": "gql-gen",

@@ -21,0 +22,0 @@ "pretest": "yarn run build",

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