studiokit-scaffolding-js 7.7.3 → 7.8.0-next.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,10 +42,10 @@ const defaultAppConfiguration = exports.defaultAppConfiguration = {
42
42
  };
43
43
  const defaultLocation = exports.defaultLocation = {
44
44
  hash: '',
45
- host: 'purdue.dev.studiokit.org',
46
- hostname: 'purdue.dev.studiokit.org',
47
- href: 'https://purdue.dev.studiokit.org/',
48
- origin: 'https://purdue.dev.studiokit.org',
45
+ host: 'purdue.studiokit.org',
46
+ hostname: 'purdue.studiokit.org',
47
+ href: 'https://purdue.studiokit.org/',
48
+ origin: 'https://purdue.studiokit.org',
49
49
  pathname: '/',
50
50
  port: '',
51
51
  protocol: 'https:',
@@ -79,8 +79,8 @@ const defaultOAuthToken = exports.defaultOAuthToken = {
79
79
  const defaultPurdueIdentityProvider = exports.defaultPurdueIdentityProvider = {
80
80
  id: 1,
81
81
  name: 'Purdue University',
82
- loginUrl: 'https://sso.purdue.edu/idp/profile/cas/login?service=https://purdue.dev.studiokit.org/',
83
- logoutUrl: 'https://sso.purdue.edu/idp/profile/cas/logout?service=https://purdue.dev.studiokit.org/',
82
+ loginUrl: 'https://purdue.api.studiokit.org/api/account/authorize?returnUrl=https%3A%2F%2Fpurdue.studiokit.org',
83
+ logoutUrl: 'https://purdue.studiokit.org',
84
84
  image: null,
85
85
  text: null
86
86
  };
@@ -470,4 +470,4 @@ const defaultCancelledData = exports.defaultCancelledData = {
470
470
  };
471
471
 
472
472
  //#endregion FetchCancelledData
473
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9leHRlcm5hbFByb3ZpZGVyVHlwZSIsIl90eXBlcyIsIl9iYXNlUm9sZSIsIl9zbG90IiwiX3RpZXIiLCJkZWZhdWx0QXBwQ29uZmlndXJhdGlvbiIsImV4cG9ydHMiLCJOT0RFX0VOViIsIkFQUF9OQU1FIiwiVElFUiIsIlBST0QiLCJTTE9UIiwiUFJPRFVDVElPTiIsIlJPT1RfRE9NQUlOIiwiSVNfU0hBUkRFRCIsIkFQSV9VUkwiLCJDTElFTlRfSUQiLCJDTElFTlRfU0VDUkVUIiwiU0VTU0lPTl9JRExFX1RIUkVTSE9MRCIsIlNFU1NJT05fUkVGUkVTSF9USFJFU0hPTEQiLCJJU19ET1dOVElNRSIsIkxNU19OQU1FIiwiR1JBREFCTEVfREVTQ1JJUFRPUiIsImRlZmF1bHRMb2NhdGlvbiIsImhhc2giLCJob3N0IiwiaG9zdG5hbWUiLCJocmVmIiwib3JpZ2luIiwicGF0aG5hbWUiLCJwb3J0IiwicHJvdG9jb2wiLCJzZWFyY2giLCJtb2NrSGlzdG9yeSIsImxlbmd0aCIsInNjcm9sbFJlc3RvcmF0aW9uIiwic3RhdGUiLCJiYWNrIiwiamVzdCIsImZuIiwiZm9yd2FyZCIsImdvIiwicHVzaFN0YXRlIiwicmVwbGFjZVN0YXRlIiwiZGVmYXVsdE9BdXRoVG9rZW4iLCJhY2Nlc3NfdG9rZW4iLCJyZWZyZXNoX3Rva2VuIiwiY2xpZW50X2lkIiwidG9rZW5fdHlwZSIsImV4cGlyZXNfaW4iLCJkZWZhdWx0UHVyZHVlSWRlbnRpdHlQcm92aWRlciIsImlkIiwibmFtZSIsImxvZ2luVXJsIiwibG9nb3V0VXJsIiwiaW1hZ2UiLCJ0ZXh0IiwicGFzdERhdGVzIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsImN1cnJlbnREYXRlcyIsImRlZmF1bHREYXRlIiwiZGVmYXVsdFVzZXIiLCJ1c2VySW5mbyIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiZW1haWwiLCJ1aWQiLCJhY3Rpdml0aWVzIiwicm9sZXMiLCJkYXRlRGVtb0dlbmVyYXRpb25TdWNjZWVkZWQiLCJkYXRlU3RvcmVkIiwiZGF0ZUxhc3RVcGRhdGVkIiwiaXNJbXBlcnNvbmF0ZWQiLCJjYXJlZXJBY2NvdW50QWxpYXMiLCJlbXBsb3llZU51bWJlciIsInVzZXJOYW1lIiwicHVpZCIsImxvY2tEb3duQnJvd3NlclRlc3RMYXVuY2hVcmwiLCJkZWZhdWx0TmFtZWxlc3NVc2VySW5mbyIsImRlZmF1bHROYW1lZFVzZXJJbmZvIiwibW9ja1VzZXIiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJtZXJnZSIsImRlZmF1bHRHcm91cE93bmVyVXNlckluZm8iLCJkZWZhdWx0R3JvdXBPd25lciIsInVzZXJJZCIsImVudGl0eUlkIiwicm9sZSIsIkJBU0VfUk9MRSIsIkdST1VQX09XTkVSIiwiaXNFeHRlcm5hbCIsImRlZmF1bHROYW1lbGVzc0dyb3VwTGVhcm5lciIsIkdST1VQX0xFQVJORVIiLCJkZWZhdWx0TmFtZWRHcm91cExlYXJuZXIiLCJkZWZhdWx0R3JvdXBMZWFybmVyIiwiZGVmYXVsdEV4dGVybmFsR3JvdXBMZWFybmVyIiwiZGVmYXVsdEdyb3VwR3JhZGVyIiwiR1JPVVBfR1JBREVSIiwiZGVmYXVsdEdyb3VwVXNlclJvbGVzIiwiZGVmYXVsdEFkbWluVXNlclJvbGVzIiwiQURNSU4iLCJkZWZhdWx0R3JvdXAiLCJvd25lcnMiLCJncmFkZXJzIiwiZXh0ZXJuYWxUZXJtSWQiLCJpc0RlbGV0ZWQiLCJpc1Jvc3RlclN5bmNFbmFibGVkIiwiZXh0ZXJuYWxHcm91cHMiLCJtb2NrR3JvdXBzIiwibW9ja1N5bmNlZEdyb3VwcyIsInJvc3RlclN5bmNFbmFibGVkR3JvdXAiLCJtb2NrTHRpR3JvdXBzIiwibHRpR3JvdXAiLCJleHRlcm5hbFByb3ZpZGVySWQiLCJncm91cElkIiwiZGVzY3JpcHRpb24iLCJncmFkZXNVcmwiLCJyb3N0ZXJVcmwiLCJpc0F1dG9HcmFkZVB1c2hFbmFibGVkIiwiZXh0ZXJuYWxJZCIsInR5cGVuYW1lIiwibW9ja1Rlcm1Hcm91cHMiLCJncm91cCIsIm1vY2tUZXJtQW5kVW5pVGltZUdyb3VwcyIsIm1vY2tQYXN0R3JvdXBzIiwicGFzdEdyb3VwIiwibW9ja1Bhc3RBbmRDdXJyZW50R3JvdXBzIiwiY3VycmVudEdyb3VwIiwiZGVmYXVsdEV4dGVybmFsUHJvdmlkZXJzIiwiRVhURVJOQUxfUFJPVklERVJfVFlQRSIsIlVOSVRJTUUiLCJ0ZXJtU3luY0VuYWJsZWQiLCJyb3N0ZXJTeW5jRW5hYmxlZCIsImdyYWRlUHVzaEVuYWJsZWQiLCJzaG91bGREaXNwbGF5Q3JlYXRlTm9uTHRpR3JvdXBBbGVydCIsIkxUSSIsImRlZmF1bHRFeHRlcm5hbFRlcm1zIiwiaW50ZXJuYWxTZXJ2ZXJFcnJvckRhdGEiLCJzdGF0dXMiLCJIVFRQX1NUQVRVU19DT0RFIiwiSU5URVJOQUxfU0VSVkVSX0VSUk9SIiwidGl0bGUiLCJkZXRhaWwiLCJyZXF1ZXN0VGltZWRPdXRFcnJvckRhdGEiLCJSRVFVRVNUX1RJTUVPVVQiLCJmb3JiaWRkZW5FcnJvckRhdGEiLCJGT1JCSURERU4iLCJ1bmF1dGhvcml6ZWRFcnJvckRhdGEiLCJVTkFVVEhPUklaRUQiLCJiYWRSZXF1ZXN0RXJyb3JEYXRhIiwiQkFEX1JFUVVFU1QiLCJiYWRSZXF1ZXN0RnVsbEVycm9yRGF0YSIsInR5cGUiLCJpbnN0YW5jZSIsInRyYWNlSWQiLCJlcnJvcnMiLCJwYXNzd29yZCIsImRlZmF1bHRDYW5jZWxsZWREYXRhIiwiY2FuY2VsbGVkTWVzc2FnZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdGFudHMvbW9ja0RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBFWFRFUk5BTF9QUk9WSURFUl9UWVBFIH0gZnJvbSAnLi4vY29uc3RhbnRzL2V4dGVybmFsUHJvdmlkZXJUeXBlJ1xuaW1wb3J0IHtcblx0QXBwQ29uZmlndXJhdGlvbixcblx0RXh0ZXJuYWxQcm92aWRlcixcblx0RXh0ZXJuYWxUZXJtLFxuXHRGZXRjaENhbmNlbGxlZERhdGEsXG5cdEZldGNoRXJyb3JEYXRhLFxuXHRHcm91cCxcblx0R3JvdXBVc2VyUm9sZSxcblx0SFRUUF9TVEFUVVNfQ09ERSxcblx0SWRlbnRpdHlQcm92aWRlcixcblx0TW9kZWxDb2xsZWN0aW9uLFxuXHRPQXV0aFRva2VuLFxuXHRTaW1wbGVMb2NhdGlvbixcblx0VXNlckluZm8sXG5cdFVzZXJSb2xlXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgQkFTRV9ST0xFIH0gZnJvbSAnLi9iYXNlUm9sZSdcbmltcG9ydCB7IFNMT1QgfSBmcm9tICcuL3Nsb3QnXG5pbXBvcnQgeyBUSUVSIH0gZnJvbSAnLi90aWVyJ1xuXG4vLyNyZWdpb24gR2VuZXJhbFxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEFwcENvbmZpZ3VyYXRpb246IEFwcENvbmZpZ3VyYXRpb24gPSB7XG5cdE5PREVfRU5WOiAndGVzdCcsXG5cdEFQUF9OQU1FOiAnU3R1ZGlvS2l0Jyxcblx0VElFUjogVElFUi5QUk9ELFxuXHRTTE9UOiBTTE9ULlBST0RVQ1RJT04sXG5cdFJPT1RfRE9NQUlOOiAnc3R1ZGlva2l0Lm9yZycsXG5cdElTX1NIQVJERUQ6IHRydWUsXG5cdEFQSV9VUkw6ICcnLFxuXHRDTElFTlRfSUQ6ICd3ZWInLFxuXHRDTElFTlRfU0VDUkVUOiAnKioqKicsXG5cdFNFU1NJT05fSURMRV9USFJFU0hPTEQ6IDEwMDAgKiA2MCAqIDE1LCAvLyAxNSBtaW51dGVzXG5cdFNFU1NJT05fUkVGUkVTSF9USFJFU0hPTEQ6IDEwMDAgKiA2MCAqIDUsIC8vIDUgbWludXRlc1xuXHRJU19ET1dOVElNRTogZmFsc2UsXG5cdExNU19OQU1FOiAnQnJpZ2h0c3BhY2UnLFxuXHRHUkFEQUJMRV9ERVNDUklQVE9SOiAnYXNzZXNzbWVudCdcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMb2NhdGlvbjogU2ltcGxlTG9jYXRpb24gPSB7XG5cdGhhc2g6ICcnLFxuXHRob3N0OiAncHVyZHVlLmRldi5zdHVkaW9raXQub3JnJyxcblx0aG9zdG5hbWU6ICdwdXJkdWUuZGV2LnN0dWRpb2tpdC5vcmcnLFxuXHRocmVmOiAnaHR0cHM6Ly9wdXJkdWUuZGV2LnN0dWRpb2tpdC5vcmcvJyxcblx0b3JpZ2luOiAnaHR0cHM6Ly9wdXJkdWUuZGV2LnN0dWRpb2tpdC5vcmcnLFxuXHRwYXRobmFtZTogJy8nLFxuXHRwb3J0OiAnJyxcblx0cHJvdG9jb2w6ICdodHRwczonLFxuXHRzZWFyY2g6ICcnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrSGlzdG9yeSgpOiBIaXN0b3J5IHtcblx0cmV0dXJuIHtcblx0XHRsZW5ndGg6IDAsXG5cdFx0c2Nyb2xsUmVzdG9yYXRpb246ICdhdXRvJyxcblx0XHRzdGF0ZToge30sXG5cdFx0YmFjazogamVzdC5mbigpLFxuXHRcdGZvcndhcmQ6IGplc3QuZm4oKSxcblx0XHRnbzogamVzdC5mbigpLFxuXHRcdHB1c2hTdGF0ZTogamVzdC5mbigpLFxuXHRcdHJlcGxhY2VTdGF0ZTogamVzdC5mbigpXG5cdH1cbn1cblxuLyoqIERlZmF1bHQgT0F1dGhUb2tlbiB0aGF0IGlzIG5vdCBleHBpcmVkIGFuZCBjYW4gYmUgcmVmcmVzaGVkICovXG5leHBvcnQgY29uc3QgZGVmYXVsdE9BdXRoVG9rZW46IE9BdXRoVG9rZW4gPSB7XG5cdGFjY2Vzc190b2tlbjogJ3NvbWUtYWNjZXNzLXRva2VuJyxcblx0cmVmcmVzaF90b2tlbjogJ3NvbWUtcmVmcmVzaC10b2tlbicsXG5cdGNsaWVudF9pZDogJ3dlYicsXG5cdHRva2VuX3R5cGU6ICdCZWFyZXInLFxuXHRleHBpcmVzX2luOiAzNjAwLFxuXHQvLyBiYXNlZCBvbiBgZGVmYXVsdERhdGVgIGJlbG93XG5cdCcuZXhwaXJlcyc6ICcyMDE4LTA5LTE1VDA1OjAwOjAwLjAwMFonLFxuXHQnLmlzc3VlZCc6ICcyMDE4LTA5LTE1VDA0OjAwOjAwLjAwMFonLFxuXHQnLnJlZnJlc2hfdG9rZW5fZXhwaXJlcyc6ICcyMDE4LTA5LTE1VDA1OjAwOjAwLjAwMFonXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0UHVyZHVlSWRlbnRpdHlQcm92aWRlcjogSWRlbnRpdHlQcm92aWRlciA9IHtcblx0aWQ6IDEsXG5cdG5hbWU6ICdQdXJkdWUgVW5pdmVyc2l0eScsXG5cdGxvZ2luVXJsOiAnaHR0cHM6Ly9zc28ucHVyZHVlLmVkdS9pZHAvcHJvZmlsZS9jYXMvbG9naW4/c2VydmljZT1odHRwczovL3B1cmR1ZS5kZXYuc3R1ZGlva2l0Lm9yZy8nLFxuXHRsb2dvdXRVcmw6ICdodHRwczovL3Nzby5wdXJkdWUuZWR1L2lkcC9wcm9maWxlL2Nhcy9sb2dvdXQ/c2VydmljZT1odHRwczovL3B1cmR1ZS5kZXYuc3R1ZGlva2l0Lm9yZy8nLFxuXHRpbWFnZTogbnVsbCxcblx0dGV4dDogbnVsbFxufVxuXG4vLyNlbmRyZWdpb24gR2VuZXJhbFxuXG4vLyNyZWdpb24gRGF0ZXNcblxuLyoqIDUvMTUvMTggLSA4LzE0LzE4ICovXG5leHBvcnQgY29uc3QgcGFzdERhdGVzID0ge1xuXHRzdGFydERhdGU6ICcyMDE4LTA1LTE1VDA0OjAwOjAwLjAwMFonLFxuXHRlbmREYXRlOiAnMjAxOC0wOC0xNVQwMzo1OTo1OS45OTlaJ1xufVxuXG4vKiogOC8xNS8xOCAtIDEyLzMxLzE4OiAqL1xuZXhwb3J0IGNvbnN0IGN1cnJlbnREYXRlcyA9IHtcblx0c3RhcnREYXRlOiAnMjAxOC0wOC0xNVQwNDowMDowMC4wMDBaJyxcblx0ZW5kRGF0ZTogJzIwMTktMDEtMDFUMDQ6NTk6NTkuOTk5Widcbn1cblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBkYXRlIGFuZCB0aW1lIGZvciBhbGwgdGVzdHMuIFVzZWQgYnkgdGhlICdtb2NrZGF0ZScgcGFja2FnZS4gT25lIG1vbnRoIGludG8gYGN1cnJlbnREYXRlc2AuXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0RGF0ZSA9ICcyMDE4LTA5LTE1VDA0OjAwOjAwLjAwMFonXG5cbi8vI2VuZHJlZ2lvbiBEYXRlc1xuXG4vLyNyZWdpb24gVXNlcnNcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRVc2VyID0ge1xuXHR1c2VySW5mbzoge1xuXHRcdGlkOiAnMScsXG5cdFx0Zmlyc3ROYW1lOiBudWxsLFxuXHRcdGxhc3ROYW1lOiBudWxsLFxuXHRcdGVtYWlsOiBudWxsLFxuXHRcdHVpZDogbnVsbCxcblx0XHRhY3Rpdml0aWVzOiBbXSxcblx0XHRyb2xlczogW10sXG5cdFx0ZGF0ZURlbW9HZW5lcmF0aW9uU3VjY2VlZGVkOiBudWxsLFxuXHRcdGRhdGVTdG9yZWQ6IGRlZmF1bHREYXRlLFxuXHRcdGRhdGVMYXN0VXBkYXRlZDogZGVmYXVsdERhdGUsXG5cdFx0aXNJbXBlcnNvbmF0ZWQ6IGZhbHNlLFxuXHRcdGNhcmVlckFjY291bnRBbGlhczogbnVsbCxcblx0XHRlbXBsb3llZU51bWJlcjogbnVsbCxcblx0XHR1c2VyTmFtZTogJ3Rlc3QnLFxuXHRcdHB1aWQ6IG51bGwsXG5cdFx0bG9ja0Rvd25Ccm93c2VyVGVzdExhdW5jaFVybDogbnVsbFxuXHR9IGFzIFVzZXJJbmZvXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TmFtZWxlc3NVc2VySW5mbyA9IHtcblx0Li4uZGVmYXVsdFVzZXIudXNlckluZm8sXG5cdC4uLntcblx0XHRlbWFpbDogJ25pY2tpQG1pbmFqLnN1cGVyYmFzcycsXG5cdFx0dWlkOiAnbm0tbmFtZWxlc3MnXG5cdH1cbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHROYW1lZFVzZXJJbmZvID0ge1xuXHQuLi5kZWZhdWx0VXNlci51c2VySW5mbyxcblx0Li4ue1xuXHRcdGZpcnN0TmFtZTogJ05pY2tpJyxcblx0XHRsYXN0TmFtZTogJ01pbmFqJyxcblx0XHR1aWQ6ICdubS1uYW1lZCdcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1VzZXIoYWN0aXZpdGllczogc3RyaW5nW10gPSBbXSk6IHsgdXNlckluZm86IFVzZXJJbmZvIH0ge1xuXHRyZXR1cm4gbWVyZ2UoeyB1c2VySW5mbzogeyBhY3Rpdml0aWVzIH0gfSwgZGVmYXVsdFVzZXIpXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0R3JvdXBPd25lclVzZXJJbmZvOiBVc2VySW5mbyA9IHtcblx0Li4uZGVmYXVsdFVzZXIudXNlckluZm8sXG5cdGlkOiAnMicsXG5cdGZpcnN0TmFtZTogJ0phbmUnLFxuXHRsYXN0TmFtZTogJ0RvZScsXG5cdGVtYWlsOiAnamFuZUBnbWFpbC5jb20nXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0R3JvdXBPd25lcjogR3JvdXBVc2VyUm9sZSA9IHtcblx0aWQ6ICcxJyxcblx0dXNlcklkOiAnMicsXG5cdGZpcnN0TmFtZTogJ0phbmUnLFxuXHRsYXN0TmFtZTogJ0RvZScsXG5cdGVtYWlsOiAnamFuZUBnbWFpbC5jb20nLFxuXHR1aWQ6ICdqYW5lJyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9PV05FUixcblx0aXNFeHRlcm5hbDogZmFsc2Vcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHROYW1lbGVzc0dyb3VwTGVhcm5lcjogR3JvdXBVc2VyUm9sZSA9IHtcblx0aWQ6ICcyJyxcblx0dXNlcklkOiAnMycsXG5cdGZpcnN0TmFtZTogbnVsbCxcblx0bGFzdE5hbWU6IG51bGwsXG5cdGVtYWlsOiAnbmlja2lAbWluYWouc3VwZXJiYXNzJyxcblx0dWlkOiAnbm0tbmFtZWxlc3MnLFxuXHRlbnRpdHlJZDogMSxcblx0cm9sZTogQkFTRV9ST0xFLkdST1VQX0xFQVJORVIsXG5cdGlzRXh0ZXJuYWw6IGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TmFtZWRHcm91cExlYXJuZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnMycsXG5cdHVzZXJJZDogJzQnLFxuXHRmaXJzdE5hbWU6ICdOaWNraScsXG5cdGxhc3ROYW1lOiAnTWluYWonLFxuXHRlbWFpbDogbnVsbCxcblx0dWlkOiAnbm0tbmFtZWQnLFxuXHRlbnRpdHlJZDogMSxcblx0cm9sZTogQkFTRV9ST0xFLkdST1VQX0xFQVJORVIsXG5cdGlzRXh0ZXJuYWw6IGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0R3JvdXBMZWFybmVyOiBHcm91cFVzZXJSb2xlID0ge1xuXHRpZDogJzQnLFxuXHR1c2VySWQ6ICc1Jyxcblx0Zmlyc3ROYW1lOiAnSm9lJyxcblx0bGFzdE5hbWU6ICdTY2htb2UnLFxuXHRlbWFpbDogJ25vcGVAZ21haWwuY29tJyxcblx0dWlkOiAnbm9wZScsXG5cdGVudGl0eUlkOiAxLFxuXHRyb2xlOiBCQVNFX1JPTEUuR1JPVVBfTEVBUk5FUixcblx0aXNFeHRlcm5hbDogZmFsc2Vcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRFeHRlcm5hbEdyb3VwTGVhcm5lcjogR3JvdXBVc2VyUm9sZSA9IHtcblx0aWQ6ICc1Jyxcblx0dXNlcklkOiAnNicsXG5cdGZpcnN0TmFtZTogJ0JvYicsXG5cdGxhc3ROYW1lOiAnTG9ibGF3Jyxcblx0ZW1haWw6ICdib2Jsb2JsYXdAbGF3YmxvZy5jb20nLFxuXHR1aWQ6ICdib2Jsb2JsYXcnLFxuXHRlbnRpdHlJZDogMSxcblx0cm9sZTogQkFTRV9ST0xFLkdST1VQX0xFQVJORVIsXG5cdGlzRXh0ZXJuYWw6IHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRHcm91cEdyYWRlcjogR3JvdXBVc2VyUm9sZSA9IHtcblx0aWQ6ICc2Jyxcblx0dXNlcklkOiAnNycsXG5cdGZpcnN0TmFtZTogJ0dyYWRlcicsXG5cdGxhc3ROYW1lOiAnTWNHcmFkZWZhY2UnLFxuXHRlbWFpbDogJ2dyYWRlckBnbWFpbC5jb20nLFxuXHR1aWQ6ICdncmFkZXInLFxuXHRlbnRpdHlJZDogMSxcblx0cm9sZTogQkFTRV9ST0xFLkdST1VQX0dSQURFUixcblx0aXNFeHRlcm5hbDogZmFsc2Vcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRHcm91cFVzZXJSb2xlcyA9IFtkZWZhdWx0R3JvdXBPd25lciwgZGVmYXVsdEdyb3VwTGVhcm5lciwgZGVmYXVsdEV4dGVybmFsR3JvdXBMZWFybmVyXVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEFkbWluVXNlclJvbGVzOiBVc2VyUm9sZVtdID0gW1xuXHR7XG5cdFx0aWQ6ICcxJyxcblx0XHRmaXJzdE5hbWU6ICdKb2UnLFxuXHRcdGxhc3ROYW1lOiAnU2NobW8nLFxuXHRcdGVtYWlsOiBudWxsLFxuXHRcdHVpZDogbnVsbCxcblx0XHRyb2xlOiBCQVNFX1JPTEUuQURNSU5cblx0fSxcblx0e1xuXHRcdGlkOiAnMicsXG5cdFx0Zmlyc3ROYW1lOiBudWxsLFxuXHRcdGxhc3ROYW1lOiBudWxsLFxuXHRcdGVtYWlsOiAnY2FybHlzaW1vbkBjbG91ZHMuaW4uY29mZmVlJyxcblx0XHR1aWQ6ICdjYXJseXNpbW9uJyxcblx0XHRyb2xlOiBCQVNFX1JPTEUuQURNSU5cblx0fVxuXVxuXG4vLyNlbmRyZWdpb24gVXNlcnNcblxuLy8jcmVnaW9uIEdyb3Vwc1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEdyb3VwOiBHcm91cCA9IHtcblx0cm9sZXM6IFtdLFxuXHRhY3Rpdml0aWVzOiBbXSxcblx0b3duZXJzOiBbXG5cdFx0e1xuXHRcdFx0aWQ6ICcxJyxcblx0XHRcdGVudGl0eUlkOiAxLFxuXHRcdFx0Zmlyc3ROYW1lOiAnSW5zdHJ1Y3RvcicsXG5cdFx0XHRsYXN0TmFtZTogJ01jSW5zdHJ1Y3RvcicsXG5cdFx0XHRlbWFpbDogbnVsbCxcblx0XHRcdHVpZDogbnVsbFxuXHRcdH1cblx0XSxcblx0Z3JhZGVyczogW10sXG5cdGlkOiAxLFxuXHRuYW1lOiAnTWNHcm91cCcsXG5cdGV4dGVybmFsVGVybUlkOiBudWxsLFxuXHRzdGFydERhdGU6IGN1cnJlbnREYXRlcy5zdGFydERhdGUsXG5cdGVuZERhdGU6IGN1cnJlbnREYXRlcy5lbmREYXRlLFxuXHRpc0RlbGV0ZWQ6IGZhbHNlLFxuXHRpc1Jvc3RlclN5bmNFbmFibGVkOiBmYWxzZSxcblx0ZXh0ZXJuYWxHcm91cHM6IFtdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrR3JvdXBzKGFjdGl2aXRpZXM6IHN0cmluZ1tdID0gW10sIHJvbGVzOiBzdHJpbmdbXSA9IFtdKTogTW9kZWxDb2xsZWN0aW9uPEdyb3VwPiB7XG5cdHJldHVybiB7ICcxJzogbWVyZ2UoeyBhY3Rpdml0aWVzLCByb2xlcyB9LCBkZWZhdWx0R3JvdXApIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tTeW5jZWRHcm91cHMoYWN0aXZpdGllczogc3RyaW5nW10gPSBbXSwgcm9sZXM6IHN0cmluZ1tdID0gW10pOiBNb2RlbENvbGxlY3Rpb248R3JvdXA+IHtcblx0Y29uc3Qgcm9zdGVyU3luY0VuYWJsZWRHcm91cDogR3JvdXAgPSBtZXJnZSh7IGFjdGl2aXRpZXMsIHJvbGVzIH0sIGRlZmF1bHRHcm91cClcblx0cm9zdGVyU3luY0VuYWJsZWRHcm91cC5pc1Jvc3RlclN5bmNFbmFibGVkID0gdHJ1ZVxuXHRyZXR1cm4geyAnMSc6IHJvc3RlclN5bmNFbmFibGVkR3JvdXAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja0x0aUdyb3VwcyhhY3Rpdml0aWVzOiBzdHJpbmdbXSA9IFtdLCByb2xlczogc3RyaW5nW10gPSBbXSk6IE1vZGVsQ29sbGVjdGlvbjxHcm91cD4ge1xuXHRjb25zdCBsdGlHcm91cDogR3JvdXAgPSBtZXJnZSh7IGFjdGl2aXRpZXMsIHJvbGVzIH0sIGRlZmF1bHRHcm91cClcblx0bHRpR3JvdXAuaXNSb3N0ZXJTeW5jRW5hYmxlZCA9IHRydWVcblx0bHRpR3JvdXAuZXh0ZXJuYWxHcm91cHMgPSBbXG5cdFx0e1xuXHRcdFx0aWQ6IDEsXG5cdFx0XHRleHRlcm5hbFByb3ZpZGVySWQ6IDIsXG5cdFx0XHRncm91cElkOiAxLFxuXHRcdFx0dXNlcklkOiAnMScsXG5cdFx0XHRuYW1lOiAnTFRJIEV4dGVybmFsR3JvdXAnLFxuXHRcdFx0ZGVzY3JpcHRpb246ICdMVEkgMTAxJyxcblx0XHRcdGdyYWRlc1VybDogJ3d3dy5sdGkub3JnJyxcblx0XHRcdHJvc3RlclVybDogbnVsbCxcblx0XHRcdGlzQXV0b0dyYWRlUHVzaEVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0ZXh0ZXJuYWxJZDogJzEnLFxuXHRcdFx0dHlwZW5hbWU6ICdFeHRlcm5hbEdyb3VwJ1xuXHRcdH1cblx0XVxuXHRyZXR1cm4geyAnMSc6IGx0aUdyb3VwIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tUZXJtR3JvdXBzKGFjdGl2aXRpZXM6IHN0cmluZ1tdID0gW10sIHJvbGVzOiBzdHJpbmdbXSA9IFtdKTogTW9kZWxDb2xsZWN0aW9uPEdyb3VwPiB7XG5cdGNvbnN0IGdyb3VwOiBHcm91cCA9IG1lcmdlKHsgYWN0aXZpdGllcywgcm9sZXMgfSwgZGVmYXVsdEdyb3VwKVxuXHRncm91cC5zdGFydERhdGUgPSBudWxsXG5cdGdyb3VwLmVuZERhdGUgPSBudWxsXG5cdGdyb3VwLmV4dGVybmFsVGVybUlkID0gMVxuXHRyZXR1cm4geyAnMSc6IGdyb3VwIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tUZXJtQW5kVW5pVGltZUdyb3VwcyhhY3Rpdml0aWVzOiBzdHJpbmdbXSA9IFtdLCByb2xlczogc3RyaW5nW10gPSBbXSk6IE1vZGVsQ29sbGVjdGlvbjxHcm91cD4ge1xuXHRjb25zdCBncm91cDogR3JvdXAgPSBtZXJnZSh7IGFjdGl2aXRpZXMsIHJvbGVzIH0sIGRlZmF1bHRHcm91cClcblx0Z3JvdXAuc3RhcnREYXRlID0gbnVsbFxuXHRncm91cC5lbmREYXRlID0gbnVsbFxuXHRncm91cC5leHRlcm5hbFRlcm1JZCA9IDFcblx0Z3JvdXAuZXh0ZXJuYWxHcm91cHMgPSBbXG5cdFx0e1xuXHRcdFx0aWQ6IDEsXG5cdFx0XHRleHRlcm5hbFByb3ZpZGVySWQ6IDEsXG5cdFx0XHRncm91cElkOiAxLFxuXHRcdFx0dXNlcklkOiAnMScsXG5cdFx0XHRuYW1lOiAnVW5pVGltZSBFeHRlcm5hbEdyb3VwJyxcblx0XHRcdGRlc2NyaXB0aW9uOiAnVW5pVGltZSAxMDEnLFxuXHRcdFx0Z3JhZGVzVXJsOiBudWxsLFxuXHRcdFx0cm9zdGVyVXJsOiBudWxsLFxuXHRcdFx0aXNBdXRvR3JhZGVQdXNoRW5hYmxlZDogZmFsc2UsXG5cdFx0XHRleHRlcm5hbElkOiAnMScsXG5cdFx0XHR0eXBlbmFtZTogJ0V4dGVybmFsR3JvdXAnXG5cdFx0fVxuXHRdXG5cdHJldHVybiB7ICcxJzogZ3JvdXAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1Bhc3RHcm91cHMoYWN0aXZpdGllczogc3RyaW5nW10gPSBbXSwgcm9sZXM6IHN0cmluZ1tdID0gW10pOiBNb2RlbENvbGxlY3Rpb248R3JvdXA+IHtcblx0Y29uc3QgcGFzdEdyb3VwOiBHcm91cCA9IG1lcmdlKHsgYWN0aXZpdGllcywgcm9sZXMgfSwgZGVmYXVsdEdyb3VwLCBwYXN0RGF0ZXMpXG5cdHJldHVybiB7ICcxJzogcGFzdEdyb3VwIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tQYXN0QW5kQ3VycmVudEdyb3VwcyhhY3Rpdml0aWVzOiBzdHJpbmdbXSA9IFtdLCByb2xlczogc3RyaW5nW10gPSBbXSk6IE1vZGVsQ29sbGVjdGlvbjxHcm91cD4ge1xuXHRjb25zdCBwYXN0R3JvdXA6IEdyb3VwID0gbWVyZ2UoeyBhY3Rpdml0aWVzLCByb2xlcyB9LCBkZWZhdWx0R3JvdXAsIHBhc3REYXRlcylcblx0Y29uc3QgY3VycmVudEdyb3VwOiBHcm91cCA9IG1lcmdlKFxuXHRcdHsgYWN0aXZpdGllcywgcm9sZXMgfSxcblx0XHRkZWZhdWx0R3JvdXAsXG5cdFx0e1xuXHRcdFx0aWQ6ICcyJ1xuXHRcdH0sXG5cdFx0Y3VycmVudERhdGVzXG5cdClcblx0cmV0dXJuIHsgJzEnOiBwYXN0R3JvdXAsICcyJzogY3VycmVudEdyb3VwIH1cbn1cblxuLy8jZW5kcmVnaW9uIEdyb3Vwc1xuXG4vLyNyZWdpb24gRXh0ZXJuYWxUZXJtcyArIEV4dGVybmFsUHJvdmlkZXJzXG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RXh0ZXJuYWxQcm92aWRlcnM6IE1vZGVsQ29sbGVjdGlvbjxFeHRlcm5hbFByb3ZpZGVyPiA9IHtcblx0JzEnOiB7XG5cdFx0aWQ6IDEsXG5cdFx0dHlwZW5hbWU6IEVYVEVSTkFMX1BST1ZJREVSX1RZUEUuVU5JVElNRSxcblx0XHR0ZXJtU3luY0VuYWJsZWQ6IHRydWUsXG5cdFx0cm9zdGVyU3luY0VuYWJsZWQ6IHRydWUsXG5cdFx0Z3JhZGVQdXNoRW5hYmxlZDogZmFsc2UsXG5cdFx0c2hvdWxkRGlzcGxheUNyZWF0ZU5vbkx0aUdyb3VwQWxlcnQ6IGZhbHNlXG5cdH0sXG5cdCcyJzoge1xuXHRcdGlkOiAyLFxuXHRcdHR5cGVuYW1lOiBFWFRFUk5BTF9QUk9WSURFUl9UWVBFLkxUSSxcblx0XHR0ZXJtU3luY0VuYWJsZWQ6IGZhbHNlLFxuXHRcdHJvc3RlclN5bmNFbmFibGVkOiBmYWxzZSxcblx0XHRncmFkZVB1c2hFbmFibGVkOiB0cnVlLFxuXHRcdHNob3VsZERpc3BsYXlDcmVhdGVOb25MdGlHcm91cEFsZXJ0OiB0cnVlXG5cdH1cbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRFeHRlcm5hbFRlcm1zOiBNb2RlbENvbGxlY3Rpb248RXh0ZXJuYWxUZXJtPiA9IHtcblx0JzEnOiB7XG5cdFx0aWQ6IDEsXG5cdFx0ZXh0ZXJuYWxQcm92aWRlcklkOiAxLFxuXHRcdGV4dGVybmFsSWQ6ICdmb28nLFxuXHRcdG5hbWU6ICdVbmlUaW1lIEZhbGwgVGVybScsXG5cdFx0c3RhcnREYXRlOiBjdXJyZW50RGF0ZXMuc3RhcnREYXRlLFxuXHRcdGVuZERhdGU6IGN1cnJlbnREYXRlcy5lbmREYXRlXG5cdH1cbn1cblxuLy8jZW5kcmVnaW9uIEV4dGVybmFsVGVybXMgKyBFeHRlcm5hbFByb3ZpZGVyc1xuXG4vLyNyZWdpb24gRmV0Y2hFcnJvckRhdGFcblxuZXhwb3J0IGNvbnN0IGludGVybmFsU2VydmVyRXJyb3JEYXRhOiBGZXRjaEVycm9yRGF0YSA9IHtcblx0c3RhdHVzOiBIVFRQX1NUQVRVU19DT0RFLklOVEVSTkFMX1NFUlZFUl9FUlJPUixcblx0dGl0bGU6ICdFcnJvcicsXG5cdGRldGFpbDogJ0FuIGVycm9yIGhhcyBvY2N1cnJlZC4nXG59XG5cbmV4cG9ydCBjb25zdCByZXF1ZXN0VGltZWRPdXRFcnJvckRhdGE6IEZldGNoRXJyb3JEYXRhID0ge1xuXHRzdGF0dXM6IEhUVFBfU1RBVFVTX0NPREUuUkVRVUVTVF9USU1FT1VULFxuXHR0aXRsZTogJ1JlcXVlc3QgVGltZW91dCcsXG5cdGRldGFpbDogbnVsbFxufVxuXG5leHBvcnQgY29uc3QgZm9yYmlkZGVuRXJyb3JEYXRhOiBGZXRjaEVycm9yRGF0YSA9IHtcblx0c3RhdHVzOiBIVFRQX1NUQVRVU19DT0RFLkZPUkJJRERFTixcblx0dGl0bGU6ICdGb3JiaWRkZW4nLFxuXHRkZXRhaWw6ICdZb3VyIHJlcXVlc3QgaGFzIGJlZW4gZGVuaWVkLiBZb3UgZG8gbm90IGhhdmUgYWNjZXNzLidcbn1cblxuZXhwb3J0IGNvbnN0IHVuYXV0aG9yaXplZEVycm9yRGF0YTogRmV0Y2hFcnJvckRhdGEgPSB7XG5cdHN0YXR1czogSFRUUF9TVEFUVVNfQ09ERS5VTkFVVEhPUklaRUQsXG5cdHRpdGxlOiAnVW5hdXRob3JpemVkJyxcblx0ZGV0YWlsOiAnWW91ciByZXF1ZXN0IGlzIHVuYXV0aG9yaXplZC4gWW91IG11c3QgYXV0aGVudGljYXRlLidcbn1cblxuZXhwb3J0IGNvbnN0IGJhZFJlcXVlc3RFcnJvckRhdGE6IEZldGNoRXJyb3JEYXRhID0ge1xuXHRzdGF0dXM6IEhUVFBfU1RBVFVTX0NPREUuQkFEX1JFUVVFU1QsXG5cdHRpdGxlOiAnQmFkIFJlcXVlc3QnLFxuXHRkZXRhaWw6ICdSZWFzb25zJ1xufVxuXG5leHBvcnQgY29uc3QgYmFkUmVxdWVzdEZ1bGxFcnJvckRhdGE6IEZldGNoRXJyb3JEYXRhID0ge1xuXHRzdGF0dXM6IEhUVFBfU1RBVFVTX0NPREUuQkFEX1JFUVVFU1QsXG5cdHRpdGxlOiAnQmFkIFJlcXVlc3QnLFxuXHRkZXRhaWw6ICdSZWFzb25zJyxcblx0Ly8gaW5jbHVkZSBhbGwgb3B0aW9uYWwgcHJvcGVydGllc1xuXHR0eXBlOiAnaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzcyMzEjc2VjdGlvbi02LjUuMScsXG5cdGluc3RhbmNlOiAnaW5zdGFuY2UnLFxuXHR0cmFjZUlkOiAnMDAtMzkxNGI0M2I0NTJiOTRlM2ZmNGMzMjc5MjI4ODBhMDMtNGNmZWQ2ZmU0MmFmZGQ4Zi0wMCcsXG5cdGVycm9yczoge1xuXHRcdHBhc3N3b3JkOiBbJ1RoZSBQYXNzd29yZCBtdXN0IGJlIGF0IGxlYXN0IDYgY2hhcmFjdGVycyBsb25nLiddXG5cdH1cbn1cblxuLy8jZW5kcmVnaW9uIEZldGNoRXJyb3JEYXRhXG5cbi8vI3JlZ2lvbiBGZXRjaENhbmNlbGxlZERhdGFcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDYW5jZWxsZWREYXRhOiBGZXRjaENhbmNlbGxlZERhdGEgPSB7XG5cdGNhbmNlbGxlZE1lc3NhZ2U6ICdUaGUgb3BlcmF0aW9uIHdhcyBhYm9ydGVkLidcbn1cblxuLy8jZW5kcmVnaW9uIEZldGNoQ2FuY2VsbGVkRGF0YVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMscUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQWdCQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxLQUFBLEdBQUFMLE9BQUE7QUFFQTs7QUFFTyxNQUFNTSx1QkFBeUMsR0FBQUMsT0FBQSxDQUFBRCx1QkFBQSxHQUFHO0VBQ3hERSxRQUFRLEVBQUUsTUFBTTtFQUNoQkMsUUFBUSxFQUFFLFdBQVc7RUFDckJDLElBQUksRUFBRUEsVUFBSSxDQUFDQyxJQUFJO0VBQ2ZDLElBQUksRUFBRUEsVUFBSSxDQUFDQyxVQUFVO0VBQ3JCQyxXQUFXLEVBQUUsZUFBZTtFQUM1QkMsVUFBVSxFQUFFLElBQUk7RUFDaEJDLE9BQU8sRUFBRSxFQUFFO0VBQ1hDLFNBQVMsRUFBRSxLQUFLO0VB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S0FBSztJQUNqQnJFLElBQUksRUFBRSxtQkFBbUI7SUFDekJNLFNBQVMsRUFBRUUsWUFBWSxDQUFDRixTQUFTO0lBQ2pDQyxPQUFPLEVBQUVDLFlBQVksQ0FBQ0Q7RUFDdkI7QUFDRCxDQUFDOztBQUVEOztBQUVBOztBQUVPLE1BQU1nRix1QkFBdUMsR0FBQXJJLE9BQUEsQ0FBQXFJLHVCQUFBLEdBQUc7RUFDdERDLE1BQU0sRUFBRUMsdUJBQWdCLENBQUNDLHFCQUFxQjtFQUM5Q0MsS0FBSyxFQUFFLE9BQU87RUFDZEMsTUFBTSxFQUFFO0FBQ1QsQ0FBQztBQUVNLE1BQU1DLHdCQUF3QyxHQUFBM0ksT0FBQSxDQUFBMkksd0JBQUEsR0FBRztFQUN2REwsTUFBTSxFQUFFQyx1QkFBZ0IsQ0FBQ0ssZUFBZTtFQUN4Q0gsS0FBSyxFQUFFLGlCQUFpQjtFQUN4QkMsTUFBTSxFQUFFO0FBQ1QsQ0FBQztBQUVNLE1BQU1HLGtCQUFrQyxHQUFBN0ksT0FBQSxDQUFBNkksa0JBQUEsR0FBRztFQUNqRFAsTUFBTSxFQUFFQyx1QkFBZ0IsQ0FBQ08sU0FBUztFQUNsQ0wsS0FBSyxFQUFFLFdBQVc7RUFDbEJDLE1BQU0sRUFBRTtBQUNULENBQUM7QUFFTSxNQUFNSyxxQkFBcUMsR0FBQS9JLE9BQUEsQ0FBQStJLHFCQUFBLEdBQUc7RUFDcERULE1BQU0sRUFBRUMsdUJBQWdCLENBQUNTLFlBQVk7RUFDckNQLEtBQUssRUFBRSxjQUFjO0VBQ3JCQyxNQUFNLEVBQUU7QUFDVCxDQUFDO0FBRU0sTUFBTU8sbUJBQW1DLEdBQUFqSixPQUFBLENBQUFpSixtQkFBQSxHQUFHO0VBQ2xEWCxNQUFNLEVBQUVDLHVCQUFnQixDQUFDVyxXQUFXO0VBQ3BDVCxLQUFLLEVBQUUsYUFBYTtFQUNwQkMsTUFBTSxFQUFFO0FBQ1QsQ0FBQztBQUVNLE1BQU1TLHVCQUF1QyxHQUFBbkosT0FBQSxDQUFBbUosdUJBQUEsR0FBRztFQUN0RGIsTUFBTSxFQUFFQyx1QkFBZ0IsQ0FBQ1csV0FBVztFQUNwQ1QsS0FBSyxFQUFFLGFBQWE7RUFDcEJDLE1BQU0sRUFBRSxTQUFTO0VBQ2pCO0VBQ0FVLElBQUksRUFBRSxtREFBbUQ7RUFDekRDLFFBQVEsRUFBRSxVQUFVO0VBQ3BCQyxPQUFPLEVBQUUseURBQXlEO0VBQ2xFQyxNQUFNLEVBQUU7SUFDUEMsUUFBUSxFQUFFLENBQUMsa0RBQWtEO0VBQzlEO0FBQ0QsQ0FBQzs7QUFFRDs7QUFFQTs7QUFFTyxNQUFNQyxvQkFBd0MsR0FBQXpKLE9BQUEsQ0FBQXlKLG9CQUFBLEdBQUc7RUFDdkRDLGdCQUFnQixFQUFFO0FBQ25CLENBQUM7O0FBRUQiLCJpZ25vcmVMaXN0IjpbXX0=
473
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9leHRlcm5hbFByb3ZpZGVyVHlwZSIsIl90eXBlcyIsIl9iYXNlUm9sZSIsIl9zbG90IiwiX3RpZXIiLCJkZWZhdWx0QXBwQ29uZmlndXJhdGlvbiIsImV4cG9ydHMiLCJOT0RFX0VOViIsIkFQUF9OQU1FIiwiVElFUiIsIlBST0QiLCJTTE9UIiwiUFJPRFVDVElPTiIsIlJPT1RfRE9NQUlOIiwiSVNfU0hBUkRFRCIsIkFQSV9VUkwiLCJDTElFTlRfSUQiLCJDTElFTlRfU0VDUkVUIiwiU0VTU0lPTl9JRExFX1RIUkVTSE9MRCIsIlNFU1NJT05fUkVGUkVTSF9USFJFU0hPTEQiLCJJU19ET1dOVElNRSIsIkxNU19OQU1FIiwiR1JBREFCTEVfREVTQ1JJUFRPUiIsImRlZmF1bHRMb2NhdGlvbiIsImhhc2giLCJob3N0IiwiaG9zdG5hbWUiLCJocmVmIiwib3JpZ2luIiwicGF0aG5hbWUiLCJwb3J0IiwicHJvdG9jb2wiLCJzZWFyY2giLCJtb2NrSGlzdG9yeSIsImxlbmd0aCIsInNjcm9sbFJlc3RvcmF0aW9uIiwic3RhdGUiLCJiYWNrIiwiamVzdCIsImZuIiwiZm9yd2FyZCIsImdvIiwicHVzaFN0YXRlIiwicmVwbGFjZVN0YXRlIiwiZGVmYXVsdE9BdXRoVG9rZW4iLCJhY2Nlc3NfdG9rZW4iLCJyZWZyZXNoX3Rva2VuIiwiY2xpZW50X2lkIiwidG9rZW5fdHlwZSIsImV4cGlyZXNfaW4iLCJkZWZhdWx0UHVyZHVlSWRlbnRpdHlQcm92aWRlciIsImlkIiwibmFtZSIsImxvZ2luVXJsIiwibG9nb3V0VXJsIiwiaW1hZ2UiLCJ0ZXh0IiwicGFzdERhdGVzIiwic3RhcnREYXRlIiwiZW5kRGF0ZSIsImN1cnJlbnREYXRlcyIsImRlZmF1bHREYXRlIiwiZGVmYXVsdFVzZXIiLCJ1c2VySW5mbyIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiZW1haWwiLCJ1aWQiLCJhY3Rpdml0aWVzIiwicm9sZXMiLCJkYXRlRGVtb0dlbmVyYXRpb25TdWNjZWVkZWQiLCJkYXRlU3RvcmVkIiwiZGF0ZUxhc3RVcGRhdGVkIiwiaXNJbXBlcnNvbmF0ZWQiLCJjYXJlZXJBY2NvdW50QWxpYXMiLCJlbXBsb3llZU51bWJlciIsInVzZXJOYW1lIiwicHVpZCIsImxvY2tEb3duQnJvd3NlclRlc3RMYXVuY2hVcmwiLCJkZWZhdWx0TmFtZWxlc3NVc2VySW5mbyIsImRlZmF1bHROYW1lZFVzZXJJbmZvIiwibW9ja1VzZXIiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJtZXJnZSIsImRlZmF1bHRHcm91cE93bmVyVXNlckluZm8iLCJkZWZhdWx0R3JvdXBPd25lciIsInVzZXJJZCIsImVudGl0eUlkIiwicm9sZSIsIkJBU0VfUk9MRSIsIkdST1VQX09XTkVSIiwiaXNFeHRlcm5hbCIsImRlZmF1bHROYW1lbGVzc0dyb3VwTGVhcm5lciIsIkdST1VQX0xFQVJORVIiLCJkZWZhdWx0TmFtZWRHcm91cExlYXJuZXIiLCJkZWZhdWx0R3JvdXBMZWFybmVyIiwiZGVmYXVsdEV4dGVybmFsR3JvdXBMZWFybmVyIiwiZGVmYXVsdEdyb3VwR3JhZGVyIiwiR1JPVVBfR1JBREVSIiwiZGVmYXVsdEdyb3VwVXNlclJvbGVzIiwiZGVmYXVsdEFkbWluVXNlclJvbGVzIiwiQURNSU4iLCJkZWZhdWx0R3JvdXAiLCJvd25lcnMiLCJncmFkZXJzIiwiZXh0ZXJuYWxUZXJtSWQiLCJpc0RlbGV0ZWQiLCJpc1Jvc3RlclN5bmNFbmFibGVkIiwiZXh0ZXJuYWxHcm91cHMiLCJtb2NrR3JvdXBzIiwibW9ja1N5bmNlZEdyb3VwcyIsInJvc3RlclN5bmNFbmFibGVkR3JvdXAiLCJtb2NrTHRpR3JvdXBzIiwibHRpR3JvdXAiLCJleHRlcm5hbFByb3ZpZGVySWQiLCJncm91cElkIiwiZGVzY3JpcHRpb24iLCJncmFkZXNVcmwiLCJyb3N0ZXJVcmwiLCJpc0F1dG9HcmFkZVB1c2hFbmFibGVkIiwiZXh0ZXJuYWxJZCIsInR5cGVuYW1lIiwibW9ja1Rlcm1Hcm91cHMiLCJncm91cCIsIm1vY2tUZXJtQW5kVW5pVGltZUdyb3VwcyIsIm1vY2tQYXN0R3JvdXBzIiwicGFzdEdyb3VwIiwibW9ja1Bhc3RBbmRDdXJyZW50R3JvdXBzIiwiY3VycmVudEdyb3VwIiwiZGVmYXVsdEV4dGVybmFsUHJvdmlkZXJzIiwiRVhURVJOQUxfUFJPVklERVJfVFlQRSIsIlVOSVRJTUUiLCJ0ZXJtU3luY0VuYWJsZWQiLCJyb3N0ZXJTeW5jRW5hYmxlZCIsImdyYWRlUHVzaEVuYWJsZWQiLCJzaG91bGREaXNwbGF5Q3JlYXRlTm9uTHRpR3JvdXBBbGVydCIsIkxUSSIsImRlZmF1bHRFeHRlcm5hbFRlcm1zIiwiaW50ZXJuYWxTZXJ2ZXJFcnJvckRhdGEiLCJzdGF0dXMiLCJIVFRQX1NUQVRVU19DT0RFIiwiSU5URVJOQUxfU0VSVkVSX0VSUk9SIiwidGl0bGUiLCJkZXRhaWwiLCJyZXF1ZXN0VGltZWRPdXRFcnJvckRhdGEiLCJSRVFVRVNUX1RJTUVPVVQiLCJmb3JiaWRkZW5FcnJvckRhdGEiLCJGT1JCSURERU4iLCJ1bmF1dGhvcml6ZWRFcnJvckRhdGEiLCJVTkFVVEhPUklaRUQiLCJiYWRSZXF1ZXN0RXJyb3JEYXRhIiwiQkFEX1JFUVVFU1QiLCJiYWRSZXF1ZXN0RnVsbEVycm9yRGF0YSIsInR5cGUiLCJpbnN0YW5jZSIsInRyYWNlSWQiLCJlcnJvcnMiLCJwYXNzd29yZCIsImRlZmF1bHRDYW5jZWxsZWREYXRhIiwiY2FuY2VsbGVkTWVzc2FnZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdGFudHMvbW9ja0RhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdsb2Rhc2gnXG5pbXBvcnQgeyBFWFRFUk5BTF9QUk9WSURFUl9UWVBFIH0gZnJvbSAnLi4vY29uc3RhbnRzL2V4dGVybmFsUHJvdmlkZXJUeXBlJ1xuaW1wb3J0IHtcblx0QXBwQ29uZmlndXJhdGlvbixcblx0RXh0ZXJuYWxQcm92aWRlcixcblx0RXh0ZXJuYWxUZXJtLFxuXHRGZXRjaENhbmNlbGxlZERhdGEsXG5cdEZldGNoRXJyb3JEYXRhLFxuXHRHcm91cCxcblx0R3JvdXBVc2VyUm9sZSxcblx0SFRUUF9TVEFUVVNfQ09ERSxcblx0SWRlbnRpdHlQcm92aWRlcixcblx0TW9kZWxDb2xsZWN0aW9uLFxuXHRPQXV0aFRva2VuLFxuXHRTaW1wbGVMb2NhdGlvbixcblx0VXNlckluZm8sXG5cdFVzZXJSb2xlXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgQkFTRV9ST0xFIH0gZnJvbSAnLi9iYXNlUm9sZSdcbmltcG9ydCB7IFNMT1QgfSBmcm9tICcuL3Nsb3QnXG5pbXBvcnQgeyBUSUVSIH0gZnJvbSAnLi90aWVyJ1xuXG4vLyNyZWdpb24gR2VuZXJhbFxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEFwcENvbmZpZ3VyYXRpb246IEFwcENvbmZpZ3VyYXRpb24gPSB7XG5cdE5PREVfRU5WOiAndGVzdCcsXG5cdEFQUF9OQU1FOiAnU3R1ZGlvS2l0Jyxcblx0VElFUjogVElFUi5QUk9ELFxuXHRTTE9UOiBTTE9ULlBST0RVQ1RJT04sXG5cdFJPT1RfRE9NQUlOOiAnc3R1ZGlva2l0Lm9yZycsXG5cdElTX1NIQVJERUQ6IHRydWUsXG5cdEFQSV9VUkw6ICcnLFxuXHRDTElFTlRfSUQ6ICd3ZWInLFxuXHRDTElFTlRfU0VDUkVUOiAnKioqKicsXG5cdFNFU1NJT05fSURMRV9USFJFU0hPTEQ6IDEwMDAgKiA2MCAqIDE1LCAvLyAxNSBtaW51dGVzXG5cdFNFU1NJT05fUkVGUkVTSF9USFJFU0hPTEQ6IDEwMDAgKiA2MCAqIDUsIC8vIDUgbWludXRlc1xuXHRJU19ET1dOVElNRTogZmFsc2UsXG5cdExNU19OQU1FOiAnQnJpZ2h0c3BhY2UnLFxuXHRHUkFEQUJMRV9ERVNDUklQVE9SOiAnYXNzZXNzbWVudCdcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMb2NhdGlvbjogU2ltcGxlTG9jYXRpb24gPSB7XG5cdGhhc2g6ICcnLFxuXHRob3N0OiAncHVyZHVlLnN0dWRpb2tpdC5vcmcnLFxuXHRob3N0bmFtZTogJ3B1cmR1ZS5zdHVkaW9raXQub3JnJyxcblx0aHJlZjogJ2h0dHBzOi8vcHVyZHVlLnN0dWRpb2tpdC5vcmcvJyxcblx0b3JpZ2luOiAnaHR0cHM6Ly9wdXJkdWUuc3R1ZGlva2l0Lm9yZycsXG5cdHBhdGhuYW1lOiAnLycsXG5cdHBvcnQ6ICcnLFxuXHRwcm90b2NvbDogJ2h0dHBzOicsXG5cdHNlYXJjaDogJydcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tIaXN0b3J5KCk6IEhpc3Rvcnkge1xuXHRyZXR1cm4ge1xuXHRcdGxlbmd0aDogMCxcblx0XHRzY3JvbGxSZXN0b3JhdGlvbjogJ2F1dG8nLFxuXHRcdHN0YXRlOiB7fSxcblx0XHRiYWNrOiBqZXN0LmZuKCksXG5cdFx0Zm9yd2FyZDogamVzdC5mbigpLFxuXHRcdGdvOiBqZXN0LmZuKCksXG5cdFx0cHVzaFN0YXRlOiBqZXN0LmZuKCksXG5cdFx0cmVwbGFjZVN0YXRlOiBqZXN0LmZuKClcblx0fVxufVxuXG4vKiogRGVmYXVsdCBPQXV0aFRva2VuIHRoYXQgaXMgbm90IGV4cGlyZWQgYW5kIGNhbiBiZSByZWZyZXNoZWQgKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0T0F1dGhUb2tlbjogT0F1dGhUb2tlbiA9IHtcblx0YWNjZXNzX3Rva2VuOiAnc29tZS1hY2Nlc3MtdG9rZW4nLFxuXHRyZWZyZXNoX3Rva2VuOiAnc29tZS1yZWZyZXNoLXRva2VuJyxcblx0Y2xpZW50X2lkOiAnd2ViJyxcblx0dG9rZW5fdHlwZTogJ0JlYXJlcicsXG5cdGV4cGlyZXNfaW46IDM2MDAsXG5cdC8vIGJhc2VkIG9uIGBkZWZhdWx0RGF0ZWAgYmVsb3dcblx0Jy5leHBpcmVzJzogJzIwMTgtMDktMTVUMDU6MDA6MDAuMDAwWicsXG5cdCcuaXNzdWVkJzogJzIwMTgtMDktMTVUMDQ6MDA6MDAuMDAwWicsXG5cdCcucmVmcmVzaF90b2tlbl9leHBpcmVzJzogJzIwMTgtMDktMTVUMDU6MDA6MDAuMDAwWidcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRQdXJkdWVJZGVudGl0eVByb3ZpZGVyOiBJZGVudGl0eVByb3ZpZGVyID0ge1xuXHRpZDogMSxcblx0bmFtZTogJ1B1cmR1ZSBVbml2ZXJzaXR5Jyxcblx0bG9naW5Vcmw6ICdodHRwczovL3B1cmR1ZS5hcGkuc3R1ZGlva2l0Lm9yZy9hcGkvYWNjb3VudC9hdXRob3JpemU/cmV0dXJuVXJsPWh0dHBzJTNBJTJGJTJGcHVyZHVlLnN0dWRpb2tpdC5vcmcnLFxuXHRsb2dvdXRVcmw6ICdodHRwczovL3B1cmR1ZS5zdHVkaW9raXQub3JnJyxcblx0aW1hZ2U6IG51bGwsXG5cdHRleHQ6IG51bGxcbn1cblxuLy8jZW5kcmVnaW9uIEdlbmVyYWxcblxuLy8jcmVnaW9uIERhdGVzXG5cbi8qKiA1LzE1LzE4IC0gOC8xNC8xOCAqL1xuZXhwb3J0IGNvbnN0IHBhc3REYXRlcyA9IHtcblx0c3RhcnREYXRlOiAnMjAxOC0wNS0xNVQwNDowMDowMC4wMDBaJyxcblx0ZW5kRGF0ZTogJzIwMTgtMDgtMTVUMDM6NTk6NTkuOTk5Widcbn1cblxuLyoqIDgvMTUvMTggLSAxMi8zMS8xODogKi9cbmV4cG9ydCBjb25zdCBjdXJyZW50RGF0ZXMgPSB7XG5cdHN0YXJ0RGF0ZTogJzIwMTgtMDgtMTVUMDQ6MDA6MDAuMDAwWicsXG5cdGVuZERhdGU6ICcyMDE5LTAxLTAxVDA0OjU5OjU5Ljk5OVonXG59XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgZGF0ZSBhbmQgdGltZSBmb3IgYWxsIHRlc3RzLiBVc2VkIGJ5IHRoZSAnbW9ja2RhdGUnIHBhY2thZ2UuIE9uZSBtb250aCBpbnRvIGBjdXJyZW50RGF0ZXNgLlxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGUgPSAnMjAxOC0wOS0xNVQwNDowMDowMC4wMDBaJ1xuXG4vLyNlbmRyZWdpb24gRGF0ZXNcblxuLy8jcmVnaW9uIFVzZXJzXG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0VXNlciA9IHtcblx0dXNlckluZm86IHtcblx0XHRpZDogJzEnLFxuXHRcdGZpcnN0TmFtZTogbnVsbCxcblx0XHRsYXN0TmFtZTogbnVsbCxcblx0XHRlbWFpbDogbnVsbCxcblx0XHR1aWQ6IG51bGwsXG5cdFx0YWN0aXZpdGllczogW10sXG5cdFx0cm9sZXM6IFtdLFxuXHRcdGRhdGVEZW1vR2VuZXJhdGlvblN1Y2NlZWRlZDogbnVsbCxcblx0XHRkYXRlU3RvcmVkOiBkZWZhdWx0RGF0ZSxcblx0XHRkYXRlTGFzdFVwZGF0ZWQ6IGRlZmF1bHREYXRlLFxuXHRcdGlzSW1wZXJzb25hdGVkOiBmYWxzZSxcblx0XHRjYXJlZXJBY2NvdW50QWxpYXM6IG51bGwsXG5cdFx0ZW1wbG95ZWVOdW1iZXI6IG51bGwsXG5cdFx0dXNlck5hbWU6ICd0ZXN0Jyxcblx0XHRwdWlkOiBudWxsLFxuXHRcdGxvY2tEb3duQnJvd3NlclRlc3RMYXVuY2hVcmw6IG51bGxcblx0fSBhcyBVc2VySW5mb1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdE5hbWVsZXNzVXNlckluZm8gPSB7XG5cdC4uLmRlZmF1bHRVc2VyLnVzZXJJbmZvLFxuXHQuLi57XG5cdFx0ZW1haWw6ICduaWNraUBtaW5hai5zdXBlcmJhc3MnLFxuXHRcdHVpZDogJ25tLW5hbWVsZXNzJ1xuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TmFtZWRVc2VySW5mbyA9IHtcblx0Li4uZGVmYXVsdFVzZXIudXNlckluZm8sXG5cdC4uLntcblx0XHRmaXJzdE5hbWU6ICdOaWNraScsXG5cdFx0bGFzdE5hbWU6ICdNaW5haicsXG5cdFx0dWlkOiAnbm0tbmFtZWQnXG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tVc2VyKGFjdGl2aXRpZXM6IHN0cmluZ1tdID0gW10pOiB7IHVzZXJJbmZvOiBVc2VySW5mbyB9IHtcblx0cmV0dXJuIG1lcmdlKHsgdXNlckluZm86IHsgYWN0aXZpdGllcyB9IH0sIGRlZmF1bHRVc2VyKVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEdyb3VwT3duZXJVc2VySW5mbzogVXNlckluZm8gPSB7XG5cdC4uLmRlZmF1bHRVc2VyLnVzZXJJbmZvLFxuXHRpZDogJzInLFxuXHRmaXJzdE5hbWU6ICdKYW5lJyxcblx0bGFzdE5hbWU6ICdEb2UnLFxuXHRlbWFpbDogJ2phbmVAZ21haWwuY29tJ1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEdyb3VwT3duZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnMScsXG5cdHVzZXJJZDogJzInLFxuXHRmaXJzdE5hbWU6ICdKYW5lJyxcblx0bGFzdE5hbWU6ICdEb2UnLFxuXHRlbWFpbDogJ2phbmVAZ21haWwuY29tJyxcblx0dWlkOiAnamFuZScsXG5cdGVudGl0eUlkOiAxLFxuXHRyb2xlOiBCQVNFX1JPTEUuR1JPVVBfT1dORVIsXG5cdGlzRXh0ZXJuYWw6IGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TmFtZWxlc3NHcm91cExlYXJuZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnMicsXG5cdHVzZXJJZDogJzMnLFxuXHRmaXJzdE5hbWU6IG51bGwsXG5cdGxhc3ROYW1lOiBudWxsLFxuXHRlbWFpbDogJ25pY2tpQG1pbmFqLnN1cGVyYmFzcycsXG5cdHVpZDogJ25tLW5hbWVsZXNzJyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSLFxuXHRpc0V4dGVybmFsOiBmYWxzZVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdE5hbWVkR3JvdXBMZWFybmVyOiBHcm91cFVzZXJSb2xlID0ge1xuXHRpZDogJzMnLFxuXHR1c2VySWQ6ICc0Jyxcblx0Zmlyc3ROYW1lOiAnTmlja2knLFxuXHRsYXN0TmFtZTogJ01pbmFqJyxcblx0ZW1haWw6IG51bGwsXG5cdHVpZDogJ25tLW5hbWVkJyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSLFxuXHRpc0V4dGVybmFsOiBmYWxzZVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEdyb3VwTGVhcm5lcjogR3JvdXBVc2VyUm9sZSA9IHtcblx0aWQ6ICc0Jyxcblx0dXNlcklkOiAnNScsXG5cdGZpcnN0TmFtZTogJ0pvZScsXG5cdGxhc3ROYW1lOiAnU2NobW9lJyxcblx0ZW1haWw6ICdub3BlQGdtYWlsLmNvbScsXG5cdHVpZDogJ25vcGUnLFxuXHRlbnRpdHlJZDogMSxcblx0cm9sZTogQkFTRV9ST0xFLkdST1VQX0xFQVJORVIsXG5cdGlzRXh0ZXJuYWw6IGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RXh0ZXJuYWxHcm91cExlYXJuZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnNScsXG5cdHVzZXJJZDogJzYnLFxuXHRmaXJzdE5hbWU6ICdCb2InLFxuXHRsYXN0TmFtZTogJ0xvYmxhdycsXG5cdGVtYWlsOiAnYm9ibG9ibGF3QGxhd2Jsb2cuY29tJyxcblx0dWlkOiAnYm9ibG9ibGF3Jyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSLFxuXHRpc0V4dGVybmFsOiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0R3JvdXBHcmFkZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnNicsXG5cdHVzZXJJZDogJzcnLFxuXHRmaXJzdE5hbWU6ICdHcmFkZXInLFxuXHRsYXN0TmFtZTogJ01jR3JhZGVmYWNlJyxcblx0ZW1haWw6ICdncmFkZXJAZ21haWwuY29tJyxcblx0dWlkOiAnZ3JhZGVyJyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9HUkFERVIsXG5cdGlzRXh0ZXJuYWw6IGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0R3JvdXBVc2VyUm9sZXMgPSBbZGVmYXVsdEdyb3VwT3duZXIsIGRlZmF1bHRHcm91cExlYXJuZXIsIGRlZmF1bHRFeHRlcm5hbEdyb3VwTGVhcm5lcl1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRBZG1pblVzZXJSb2xlczogVXNlclJvbGVbXSA9IFtcblx0e1xuXHRcdGlkOiAnMScsXG5cdFx0Zmlyc3ROYW1lOiAnSm9lJyxcblx0XHRsYXN0TmFtZTogJ1NjaG1vJyxcblx0XHRlbWFpbDogbnVsbCxcblx0XHR1aWQ6IG51bGwsXG5cdFx0cm9sZTogQkFTRV9ST0xFLkFETUlOXG5cdH0sXG5cdHtcblx0XHRpZDogJzInLFxuXHRcdGZpcnN0TmFtZTogbnVsbCxcblx0XHRsYXN0TmFtZTogbnVsbCxcblx0XHRlbWFpbDogJ2Nhcmx5c2ltb25AY2xvdWRzLmluLmNvZmZlZScsXG5cdFx0dWlkOiAnY2FybHlzaW1vbicsXG5cdFx0cm9sZTogQkFTRV9ST0xFLkFETUlOXG5cdH1cbl1cblxuLy8jZW5kcmVnaW9uIFVzZXJzXG5cbi8vI3JlZ2lvbiBHcm91cHNcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRHcm91cDogR3JvdXAgPSB7XG5cdHJvbGVzOiBbXSxcblx0YWN0aXZpdGllczogW10sXG5cdG93bmVyczogW1xuXHRcdHtcblx0XHRcdGlkOiAnMScsXG5cdFx0XHRlbnRpdHlJZDogMSxcblx0XHRcdGZpcnN0TmFtZTogJ0luc3RydWN0b3InLFxuXHRcdFx0bGFzdE5hbWU6ICdNY0luc3RydWN0b3InLFxuXHRcdFx0ZW1haWw6IG51bGwsXG5cdFx0XHR1aWQ6IG51bGxcblx0XHR9XG5cdF0sXG5cdGdyYWRlcnM6IFtdLFxuXHRpZDogMSxcblx0bmFtZTogJ01jR3JvdXAnLFxuXHRleHRlcm5hbFRlcm1JZDogbnVsbCxcblx0c3RhcnREYXRlOiBjdXJyZW50RGF0ZXMuc3RhcnREYXRlLFxuXHRlbmREYXRlOiBjdXJyZW50RGF0ZXMuZW5kRGF0ZSxcblx0aXNEZWxldGVkOiBmYWxzZSxcblx0aXNSb3N0ZXJTeW5jRW5hYmxlZDogZmFsc2UsXG5cdGV4dGVybmFsR3JvdXBzOiBbXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja0dyb3VwcyhhY3Rpdml0aWVzOiBzdHJpbmdbXSA9IFtdLCByb2xlczogc3RyaW5nW10gPSBbXSk6IE1vZGVsQ29sbGVjdGlvbjxHcm91cD4ge1xuXHRyZXR1cm4geyAnMSc6IG1lcmdlKHsgYWN0aXZpdGllcywgcm9sZXMgfSwgZGVmYXVsdEdyb3VwKSB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrU3luY2VkR3JvdXBzKGFjdGl2aXRpZXM6IHN0cmluZ1tdID0gW10sIHJvbGVzOiBzdHJpbmdbXSA9IFtdKTogTW9kZWxDb2xsZWN0aW9uPEdyb3VwPiB7XG5cdGNvbnN0IHJvc3RlclN5bmNFbmFibGVkR3JvdXA6IEdyb3VwID0gbWVyZ2UoeyBhY3Rpdml0aWVzLCByb2xlcyB9LCBkZWZhdWx0R3JvdXApXG5cdHJvc3RlclN5bmNFbmFibGVkR3JvdXAuaXNSb3N0ZXJTeW5jRW5hYmxlZCA9IHRydWVcblx0cmV0dXJuIHsgJzEnOiByb3N0ZXJTeW5jRW5hYmxlZEdyb3VwIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tMdGlHcm91cHMoYWN0aXZpdGllczogc3RyaW5nW10gPSBbXSwgcm9sZXM6IHN0cmluZ1tdID0gW10pOiBNb2RlbENvbGxlY3Rpb248R3JvdXA+IHtcblx0Y29uc3QgbHRpR3JvdXA6IEdyb3VwID0gbWVyZ2UoeyBhY3Rpdml0aWVzLCByb2xlcyB9LCBkZWZhdWx0R3JvdXApXG5cdGx0aUdyb3VwLmlzUm9zdGVyU3luY0VuYWJsZWQgPSB0cnVlXG5cdGx0aUdyb3VwLmV4dGVybmFsR3JvdXBzID0gW1xuXHRcdHtcblx0XHRcdGlkOiAxLFxuXHRcdFx0ZXh0ZXJuYWxQcm92aWRlcklkOiAyLFxuXHRcdFx0Z3JvdXBJZDogMSxcblx0XHRcdHVzZXJJZDogJzEnLFxuXHRcdFx0bmFtZTogJ0xUSSBFeHRlcm5hbEdyb3VwJyxcblx0XHRcdGRlc2NyaXB0aW9uOiAnTFRJIDEwMScsXG5cdFx0XHRncmFkZXNVcmw6ICd3d3cubHRpLm9yZycsXG5cdFx0XHRyb3N0ZXJVcmw6IG51bGwsXG5cdFx0XHRpc0F1dG9HcmFkZVB1c2hFbmFibGVkOiBmYWxzZSxcblx0XHRcdGV4dGVybmFsSWQ6ICcxJyxcblx0XHRcdHR5cGVuYW1lOiAnRXh0ZXJuYWxHcm91cCdcblx0XHR9XG5cdF1cblx0cmV0dXJuIHsgJzEnOiBsdGlHcm91cCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrVGVybUdyb3VwcyhhY3Rpdml0aWVzOiBzdHJpbmdbXSA9IFtdLCByb2xlczogc3RyaW5nW10gPSBbXSk6IE1vZGVsQ29sbGVjdGlvbjxHcm91cD4ge1xuXHRjb25zdCBncm91cDogR3JvdXAgPSBtZXJnZSh7IGFjdGl2aXRpZXMsIHJvbGVzIH0sIGRlZmF1bHRHcm91cClcblx0Z3JvdXAuc3RhcnREYXRlID0gbnVsbFxuXHRncm91cC5lbmREYXRlID0gbnVsbFxuXHRncm91cC5leHRlcm5hbFRlcm1JZCA9IDFcblx0cmV0dXJuIHsgJzEnOiBncm91cCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrVGVybUFuZFVuaVRpbWVHcm91cHMoYWN0aXZpdGllczogc3RyaW5nW10gPSBbXSwgcm9sZXM6IHN0cmluZ1tdID0gW10pOiBNb2RlbENvbGxlY3Rpb248R3JvdXA+IHtcblx0Y29uc3QgZ3JvdXA6IEdyb3VwID0gbWVyZ2UoeyBhY3Rpdml0aWVzLCByb2xlcyB9LCBkZWZhdWx0R3JvdXApXG5cdGdyb3VwLnN0YXJ0RGF0ZSA9IG51bGxcblx0Z3JvdXAuZW5kRGF0ZSA9IG51bGxcblx0Z3JvdXAuZXh0ZXJuYWxUZXJtSWQgPSAxXG5cdGdyb3VwLmV4dGVybmFsR3JvdXBzID0gW1xuXHRcdHtcblx0XHRcdGlkOiAxLFxuXHRcdFx0ZXh0ZXJuYWxQcm92aWRlcklkOiAxLFxuXHRcdFx0Z3JvdXBJZDogMSxcblx0XHRcdHVzZXJJZDogJzEnLFxuXHRcdFx0bmFtZTogJ1VuaVRpbWUgRXh0ZXJuYWxHcm91cCcsXG5cdFx0XHRkZXNjcmlwdGlvbjogJ1VuaVRpbWUgMTAxJyxcblx0XHRcdGdyYWRlc1VybDogbnVsbCxcblx0XHRcdHJvc3RlclVybDogbnVsbCxcblx0XHRcdGlzQXV0b0dyYWRlUHVzaEVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0ZXh0ZXJuYWxJZDogJzEnLFxuXHRcdFx0dHlwZW5hbWU6ICdFeHRlcm5hbEdyb3VwJ1xuXHRcdH1cblx0XVxuXHRyZXR1cm4geyAnMSc6IGdyb3VwIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tQYXN0R3JvdXBzKGFjdGl2aXRpZXM6IHN0cmluZ1tdID0gW10sIHJvbGVzOiBzdHJpbmdbXSA9IFtdKTogTW9kZWxDb2xsZWN0aW9uPEdyb3VwPiB7XG5cdGNvbnN0IHBhc3RHcm91cDogR3JvdXAgPSBtZXJnZSh7IGFjdGl2aXRpZXMsIHJvbGVzIH0sIGRlZmF1bHRHcm91cCwgcGFzdERhdGVzKVxuXHRyZXR1cm4geyAnMSc6IHBhc3RHcm91cCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUGFzdEFuZEN1cnJlbnRHcm91cHMoYWN0aXZpdGllczogc3RyaW5nW10gPSBbXSwgcm9sZXM6IHN0cmluZ1tdID0gW10pOiBNb2RlbENvbGxlY3Rpb248R3JvdXA+IHtcblx0Y29uc3QgcGFzdEdyb3VwOiBHcm91cCA9IG1lcmdlKHsgYWN0aXZpdGllcywgcm9sZXMgfSwgZGVmYXVsdEdyb3VwLCBwYXN0RGF0ZXMpXG5cdGNvbnN0IGN1cnJlbnRHcm91cDogR3JvdXAgPSBtZXJnZShcblx0XHR7IGFjdGl2aXRpZXMsIHJvbGVzIH0sXG5cdFx0ZGVmYXVsdEdyb3VwLFxuXHRcdHtcblx0XHRcdGlkOiAnMidcblx0XHR9LFxuXHRcdGN1cnJlbnREYXRlc1xuXHQpXG5cdHJldHVybiB7ICcxJzogcGFzdEdyb3VwLCAnMic6IGN1cnJlbnRHcm91cCB9XG59XG5cbi8vI2VuZHJlZ2lvbiBHcm91cHNcblxuLy8jcmVnaW9uIEV4dGVybmFsVGVybXMgKyBFeHRlcm5hbFByb3ZpZGVyc1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEV4dGVybmFsUHJvdmlkZXJzOiBNb2RlbENvbGxlY3Rpb248RXh0ZXJuYWxQcm92aWRlcj4gPSB7XG5cdCcxJzoge1xuXHRcdGlkOiAxLFxuXHRcdHR5cGVuYW1lOiBFWFRFUk5BTF9QUk9WSURFUl9UWVBFLlVOSVRJTUUsXG5cdFx0dGVybVN5bmNFbmFibGVkOiB0cnVlLFxuXHRcdHJvc3RlclN5bmNFbmFibGVkOiB0cnVlLFxuXHRcdGdyYWRlUHVzaEVuYWJsZWQ6IGZhbHNlLFxuXHRcdHNob3VsZERpc3BsYXlDcmVhdGVOb25MdGlHcm91cEFsZXJ0OiBmYWxzZVxuXHR9LFxuXHQnMic6IHtcblx0XHRpZDogMixcblx0XHR0eXBlbmFtZTogRVhURVJOQUxfUFJPVklERVJfVFlQRS5MVEksXG5cdFx0dGVybVN5bmNFbmFibGVkOiBmYWxzZSxcblx0XHRyb3N0ZXJTeW5jRW5hYmxlZDogZmFsc2UsXG5cdFx0Z3JhZGVQdXNoRW5hYmxlZDogdHJ1ZSxcblx0XHRzaG91bGREaXNwbGF5Q3JlYXRlTm9uTHRpR3JvdXBBbGVydDogdHJ1ZVxuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RXh0ZXJuYWxUZXJtczogTW9kZWxDb2xsZWN0aW9uPEV4dGVybmFsVGVybT4gPSB7XG5cdCcxJzoge1xuXHRcdGlkOiAxLFxuXHRcdGV4dGVybmFsUHJvdmlkZXJJZDogMSxcblx0XHRleHRlcm5hbElkOiAnZm9vJyxcblx0XHRuYW1lOiAnVW5pVGltZSBGYWxsIFRlcm0nLFxuXHRcdHN0YXJ0RGF0ZTogY3VycmVudERhdGVzLnN0YXJ0RGF0ZSxcblx0XHRlbmREYXRlOiBjdXJyZW50RGF0ZXMuZW5kRGF0ZVxuXHR9XG59XG5cbi8vI2VuZHJlZ2lvbiBFeHRlcm5hbFRlcm1zICsgRXh0ZXJuYWxQcm92aWRlcnNcblxuLy8jcmVnaW9uIEZldGNoRXJyb3JEYXRhXG5cbmV4cG9ydCBjb25zdCBpbnRlcm5hbFNlcnZlckVycm9yRGF0YTogRmV0Y2hFcnJvckRhdGEgPSB7XG5cdHN0YXR1czogSFRUUF9TVEFUVVNfQ09ERS5JTlRFUk5BTF9TRVJWRVJfRVJST1IsXG5cdHRpdGxlOiAnRXJyb3InLFxuXHRkZXRhaWw6ICdBbiBlcnJvciBoYXMgb2NjdXJyZWQuJ1xufVxuXG5leHBvcnQgY29uc3QgcmVxdWVzdFRpbWVkT3V0RXJyb3JEYXRhOiBGZXRjaEVycm9yRGF0YSA9IHtcblx0c3RhdHVzOiBIVFRQX1NUQVRVU19DT0RFLlJFUVVFU1RfVElNRU9VVCxcblx0dGl0bGU6ICdSZXF1ZXN0IFRpbWVvdXQnLFxuXHRkZXRhaWw6IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IGZvcmJpZGRlbkVycm9yRGF0YTogRmV0Y2hFcnJvckRhdGEgPSB7XG5cdHN0YXR1czogSFRUUF9TVEFUVVNfQ09ERS5GT1JCSURERU4sXG5cdHRpdGxlOiAnRm9yYmlkZGVuJyxcblx0ZGV0YWlsOiAnWW91ciByZXF1ZXN0IGhhcyBiZWVuIGRlbmllZC4gWW91IGRvIG5vdCBoYXZlIGFjY2Vzcy4nXG59XG5cbmV4cG9ydCBjb25zdCB1bmF1dGhvcml6ZWRFcnJvckRhdGE6IEZldGNoRXJyb3JEYXRhID0ge1xuXHRzdGF0dXM6IEhUVFBfU1RBVFVTX0NPREUuVU5BVVRIT1JJWkVELFxuXHR0aXRsZTogJ1VuYXV0aG9yaXplZCcsXG5cdGRldGFpbDogJ1lvdXIgcmVxdWVzdCBpcyB1bmF1dGhvcml6ZWQuIFlvdSBtdXN0IGF1dGhlbnRpY2F0ZS4nXG59XG5cbmV4cG9ydCBjb25zdCBiYWRSZXF1ZXN0RXJyb3JEYXRhOiBGZXRjaEVycm9yRGF0YSA9IHtcblx0c3RhdHVzOiBIVFRQX1NUQVRVU19DT0RFLkJBRF9SRVFVRVNULFxuXHR0aXRsZTogJ0JhZCBSZXF1ZXN0Jyxcblx0ZGV0YWlsOiAnUmVhc29ucydcbn1cblxuZXhwb3J0IGNvbnN0IGJhZFJlcXVlc3RGdWxsRXJyb3JEYXRhOiBGZXRjaEVycm9yRGF0YSA9IHtcblx0c3RhdHVzOiBIVFRQX1NUQVRVU19DT0RFLkJBRF9SRVFVRVNULFxuXHR0aXRsZTogJ0JhZCBSZXF1ZXN0Jyxcblx0ZGV0YWlsOiAnUmVhc29ucycsXG5cdC8vIGluY2x1ZGUgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXNcblx0dHlwZTogJ2h0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjEnLFxuXHRpbnN0YW5jZTogJ2luc3RhbmNlJyxcblx0dHJhY2VJZDogJzAwLTM5MTRiNDNiNDUyYjk0ZTNmZjRjMzI3OTIyODgwYTAzLTRjZmVkNmZlNDJhZmRkOGYtMDAnLFxuXHRlcnJvcnM6IHtcblx0XHRwYXNzd29yZDogWydUaGUgUGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMgbG9uZy4nXVxuXHR9XG59XG5cbi8vI2VuZHJlZ2lvbiBGZXRjaEVycm9yRGF0YVxuXG4vLyNyZWdpb24gRmV0Y2hDYW5jZWxsZWREYXRhXG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0Q2FuY2VsbGVkRGF0YTogRmV0Y2hDYW5jZWxsZWREYXRhID0ge1xuXHRjYW5jZWxsZWRNZXNzYWdlOiAnVGhlIG9wZXJhdGlvbiB3YXMgYWJvcnRlZC4nXG59XG5cbi8vI2VuZHJlZ2lvbiBGZXRjaENhbmNlbGxlZERhdGFcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLHFCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7QUFnQkEsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksS0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBRUE7O0FBRU8sTUFBTU0sdUJBQXlDLEdBQUFDLE9BQUEsQ0FBQUQsdUJBQUEsR0FBRztFQUN4REUsUUFBUSxFQUFFLE1BQU07RUFDaEJDLFFBQVEsRUFBRSxXQUFXO0VBQ3JCQyxJQUFJLEVBQUVBLFVBQUksQ0FBQ0MsSUFBSTtFQUNmQyxJQUFJLEVBQUVBLFVBQUksQ0FBQ0MsVUFBVTtFQUNyQkMsV0FBVyxFQUFFLGVBQWU7RUFDNUJDLFVBQVUsRUFBRSxJQUFJO0VBQ2hCQyxPQUFPLEVBQUUsRUFBRTtFQUNYQyxTQUFTLEVBQUUsS0FBSztFQUNoQkMsYUFBYSxFQUFFLE1BQU07RUFDckJDLHNCQUFzQixFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsRUFB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UztJQUNqQ0MsT0FBTyxFQUFFQyxZQUFZLENBQUNEO0VBQ3ZCO0FBQ0QsQ0FBQzs7QUFFRDs7QUFFQTs7QUFFTyxNQUFNZ0YsdUJBQXVDLEdBQUFySSxPQUFBLENBQUFxSSx1QkFBQSxHQUFHO0VBQ3REQyxNQUFNLEVBQUVDLHVCQUFnQixDQUFDQyxxQkFBcUI7RUFDOUNDLEtBQUssRUFBRSxPQUFPO0VBQ2RDLE1BQU0sRUFBRTtBQUNULENBQUM7QUFFTSxNQUFNQyx3QkFBd0MsR0FBQTNJLE9BQUEsQ0FBQTJJLHdCQUFBLEdBQUc7RUFDdkRMLE1BQU0sRUFBRUMsdUJBQWdCLENBQUNLLGVBQWU7RUFDeENILEtBQUssRUFBRSxpQkFBaUI7RUFDeEJDLE1BQU0sRUFBRTtBQUNULENBQUM7QUFFTSxNQUFNRyxrQkFBa0MsR0FBQTdJLE9BQUEsQ0FBQTZJLGtCQUFBLEdBQUc7RUFDakRQLE1BQU0sRUFBRUMsdUJBQWdCLENBQUNPLFNBQVM7RUFDbENMLEtBQUssRUFBRSxXQUFXO0VBQ2xCQyxNQUFNLEVBQUU7QUFDVCxDQUFDO0FBRU0sTUFBTUsscUJBQXFDLEdBQUEvSSxPQUFBLENBQUErSSxxQkFBQSxHQUFHO0VBQ3BEVCxNQUFNLEVBQUVDLHVCQUFnQixDQUFDUyxZQUFZO0VBQ3JDUCxLQUFLLEVBQUUsY0FBYztFQUNyQkMsTUFBTSxFQUFFO0FBQ1QsQ0FBQztBQUVNLE1BQU1PLG1CQUFtQyxHQUFBakosT0FBQSxDQUFBaUosbUJBQUEsR0FBRztFQUNsRFgsTUFBTSxFQUFFQyx1QkFBZ0IsQ0FBQ1csV0FBVztFQUNwQ1QsS0FBSyxFQUFFLGFBQWE7RUFDcEJDLE1BQU0sRUFBRTtBQUNULENBQUM7QUFFTSxNQUFNUyx1QkFBdUMsR0FBQW5KLE9BQUEsQ0FBQW1KLHVCQUFBLEdBQUc7RUFDdERiLE1BQU0sRUFBRUMsdUJBQWdCLENBQUNXLFdBQVc7RUFDcENULEtBQUssRUFBRSxhQUFhO0VBQ3BCQyxNQUFNLEVBQUUsU0FBUztFQUNqQjtFQUNBVSxJQUFJLEVBQUUsbURBQW1EO0VBQ3pEQyxRQUFRLEVBQUUsVUFBVTtFQUNwQkMsT0FBTyxFQUFFLHlEQUF5RDtFQUNsRUMsTUFBTSxFQUFFO0lBQ1BDLFFBQVEsRUFBRSxDQUFDLGtEQUFrRDtFQUM5RDtBQUNELENBQUM7O0FBRUQ7O0FBRUE7O0FBRU8sTUFBTUMsb0JBQXdDLEdBQUF6SixPQUFBLENBQUF5SixvQkFBQSxHQUFHO0VBQ3ZEQyxnQkFBZ0IsRUFBRTtBQUNuQixDQUFDOztBQUVEIiwiaWdub3JlTGlzdCI6W119
@@ -52,23 +52,6 @@ const endpointMappings = exports.endpointMappings = {
52
52
  }
53
53
  }
54
54
  },
55
- codeFromCasV1: {
56
- _config: {
57
- fetch: {
58
- path: '/api/account/casV1',
59
- method: 'POST',
60
- isAnonymous: true
61
- }
62
- }
63
- },
64
- codeFromCasTicket: {
65
- _config: {
66
- fetch: {
67
- path: '/api/account/validateCasTicket',
68
- isAnonymous: true
69
- }
70
- }
71
- },
72
55
  getToken: {
73
56
  _config: {
74
57
  fetch: {
@@ -221,4 +204,4 @@ const endpointMappings = exports.endpointMappings = {
221
204
  }
222
205
  }
223
206
  };
224
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlbnRpdHlVc2VyUm9sZUVuZHBvaW50TWFwcGluZ3MiLCJlbmRwb2ludE5hbWUiLCJfY29uZmlnIiwiaXNDb2xsZWN0aW9uIiwiZmV0Y2giLCJwYXRoIiwiYWRkVXNlclJvbGVzIiwibWV0aG9kIiwiZXhwb3J0cyIsImdyb3VwRW5kcG9pbnRNYXBwaW5nIiwic3luY1Jvc3RlciIsImVuZHBvaW50TWFwcGluZ3MiLCJjb2RlRnJvbUxvY2FsQ3JlZGVudGlhbHMiLCJpc0Fub255bW91cyIsImNvZGVGcm9tQ2FzVjEiLCJjb2RlRnJvbUNhc1RpY2tldCIsImdldFRva2VuIiwiaGVhZGVycyIsInVzZXIiLCJ1c2VySW5mbyIsInVybENoZWNrZXIiLCJjYWxpcGVyVG9rZW4iLCJjb25maWd1cmF0aW9uIiwiY2xpZW50IiwiaWRlbnRpdHlQcm92aWRlcnMiLCJleHRlcm5hbFRlcm1zIiwiZXh0ZXJuYWxQcm92aWRlcnMiLCJ1c2VyUm9sZXMiLCJ1bmlUaW1lSW5zdHJ1Y3RvclNjaGVkdWxlIiwibHRpTGF1bmNoZXMiLCJkZWVwTGlua2luZ1Jlc3BvbnNlIiwic2VhcmNoIiwidXNlcnMiLCJ0aW1lIiwic3RhcnRJbXBlcnNvbmF0aW9uIiwic3RvcEltcGVyc29uYXRpb24iLCJsb2NrRG93bkJyb3dzZXJUZXN0IiwiY3JlZGVudGlhbHMiXSwic291cmNlcyI6WyIuLi9zcmMvZW5kcG9pbnRNYXBwaW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludE1hcHBpbmcsIEVuZHBvaW50TWFwcGluZ3MgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgZW50aXR5VXNlclJvbGVFbmRwb2ludE1hcHBpbmdzID0gKGVuZHBvaW50TmFtZTogc3RyaW5nKTogRW5kcG9pbnRNYXBwaW5ncyA9PiB7XG5cdHJldHVybiB7XG5cdFx0W2VuZHBvaW50TmFtZV06IHtcblx0XHRcdF9jb25maWc6IHtcblx0XHRcdFx0aXNDb2xsZWN0aW9uOiB0cnVlLFxuXHRcdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRcdHBhdGg6IGAvYXBpLyR7ZW5kcG9pbnROYW1lfWBcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Ly8gdXNlIHNlcGFyYXRlIG1vZGVsIGZvciB0cmFuc2llbnQgUE9TVHNcblx0XHRhZGRVc2VyUm9sZXM6IHtcblx0XHRcdF9jb25maWc6IHtcblx0XHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0XHRwYXRoOiBgL2FwaS8ke2VuZHBvaW50TmFtZX1gLFxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGNvbnN0IGdyb3VwRW5kcG9pbnRNYXBwaW5nOiBFbmRwb2ludE1hcHBpbmcgPSB7XG5cdF9jb25maWc6IHtcblx0XHRpc0NvbGxlY3Rpb246IHRydWUsXG5cdFx0ZmV0Y2g6IHtcblx0XHRcdHBhdGg6ICcvYXBpL2dyb3Vwcydcblx0XHR9XG5cdH0sXG5cdHN5bmNSb3N0ZXI6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRtZXRob2Q6ICdQT1NUJ1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0Li4uZW50aXR5VXNlclJvbGVFbmRwb2ludE1hcHBpbmdzKCdncm91cFVzZXJSb2xlcycpXG59XG5cbmV4cG9ydCBjb25zdCBlbmRwb2ludE1hcHBpbmdzOiBFbmRwb2ludE1hcHBpbmdzID0ge1xuXHRjb2RlRnJvbUxvY2FsQ3JlZGVudGlhbHM6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRwYXRoOiAnL2FwaS9hY2NvdW50L2xvY2FsJyxcblx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHRcdGlzQW5vbnltb3VzOiB0cnVlXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRjb2RlRnJvbUNhc1YxOiB7XG5cdFx0X2NvbmZpZzoge1xuXHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0cGF0aDogJy9hcGkvYWNjb3VudC9jYXNWMScsXG5cdFx0XHRcdG1ldGhvZDogJ1BPU1QnLFxuXHRcdFx0XHRpc0Fub255bW91czogdHJ1ZVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0Y29kZUZyb21DYXNUaWNrZXQ6IHtcblx0XHRfY29uZmlnOiB7IGZldGNoOiB7IHBhdGg6ICcvYXBpL2FjY291bnQvdmFsaWRhdGVDYXNUaWNrZXQnLCBpc0Fub255bW91czogdHJ1ZSB9IH1cblx0fSxcblx0Z2V0VG9rZW46IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRwYXRoOiAnL3Rva2VuJyxcblx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHRcdGhlYWRlcnM6IHtcblx0XHRcdFx0XHQnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCdcblx0XHRcdFx0fSxcblx0XHRcdFx0aXNBbm9ueW1vdXM6IHRydWVcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHVzZXI6IHtcblx0XHR1c2VySW5mbzoge1xuXHRcdFx0X2NvbmZpZzogeyBmZXRjaDogeyBwYXRoOiAnL2FwaS9hY2NvdW50L3VzZXJJbmZvJyB9IH1cblx0XHR9XG5cdH0sXG5cdHVybENoZWNrZXI6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRwYXRoOiAnL2FwaS91cmwvaGVhZGVycydcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGNhbGlwZXJUb2tlbjoge1xuXHRcdF9jb25maWc6IHtcblx0XHRcdGZldGNoOiB7XG5cdFx0XHRcdHBhdGg6ICcvYXBpL2NhbGlwZXItZXZlbnRzdG9yZS90b2tlbidcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGNvbmZpZ3VyYXRpb246IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRwYXRoOiAnL2FwaS9jb25maWd1cmF0aW9uJyxcblx0XHRcdFx0aXNBbm9ueW1vdXM6IHRydWVcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGNsaWVudDoge1xuXHRcdF9jb25maWc6IHtcblx0XHRcdGZldGNoOiB7XG5cdFx0XHRcdHBhdGg6ICcvYXBpL2FwcENsaWVudHMvd2ViJyxcblx0XHRcdFx0aXNBbm9ueW1vdXM6IHRydWVcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGlkZW50aXR5UHJvdmlkZXJzOiB7XG5cdFx0X2NvbmZpZzoge1xuXHRcdFx0aXNDb2xsZWN0aW9uOiB0cnVlLFxuXHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0aXNBbm9ueW1vdXM6IHRydWVcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGV4dGVybmFsVGVybXM6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRpc0NvbGxlY3Rpb246IHRydWUsXG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRpc0Fub255bW91czogdHJ1ZVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0ZXh0ZXJuYWxQcm92aWRlcnM6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRpc0NvbGxlY3Rpb246IHRydWVcblx0XHR9XG5cdH0sXG5cdHVzZXJSb2xlczoge1xuXHRcdF9jb25maWc6IHtcblx0XHRcdGlzQ29sbGVjdGlvbjogdHJ1ZVxuXHRcdH1cblx0fSxcblx0Ly8gdXNlIHNlcGFyYXRlIG1vZGVsIGZvciB0cmFuc2llbnQgUE9TVHNcblx0YWRkVXNlclJvbGVzOiB7XG5cdFx0X2NvbmZpZzoge1xuXHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0cGF0aDogJy9hcGkvdXNlclJvbGVzJyxcblx0XHRcdFx0bWV0aG9kOiAnUE9TVCdcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHVuaVRpbWVJbnN0cnVjdG9yU2NoZWR1bGU6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRwYXRoOiAnL2FwaS91bmlUaW1lL2luc3RydWN0b3JTY2hlZHVsZSdcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGx0aUxhdW5jaGVzOiB7XG5cdFx0X2NvbmZpZzoge1xuXHRcdFx0aXNDb2xsZWN0aW9uOiB0cnVlXG5cdFx0fSxcblx0XHRkZWVwTGlua2luZ1Jlc3BvbnNlOiB7XG5cdFx0XHRfY29uZmlnOiB7XG5cdFx0XHRcdGZldGNoOiB7XG5cdFx0XHRcdFx0bWV0aG9kOiAnUE9TVCdcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0c2VhcmNoOiB7XG5cdFx0X2NvbmZpZzoge1xuXHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0cGF0aDogJydcblx0XHRcdH1cblx0XHR9LFxuXHRcdHVzZXJzOiB7XG5cdFx0XHRfY29uZmlnOiB7XG5cdFx0XHRcdGlzQ29sbGVjdGlvbjogdHJ1ZSxcblx0XHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0XHRwYXRoOiAnL2FwaS91c2Vycydcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0dGltZToge1xuXHRcdF9jb25maWc6IHtcblx0XHRcdGZldGNoOiB7XG5cdFx0XHRcdHBhdGg6ICcvYXBpL3RpbWUnLFxuXHRcdFx0XHRpc0Fub255bW91czogdHJ1ZVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0c3RhcnRJbXBlcnNvbmF0aW9uOiB7XG5cdFx0X2NvbmZpZzoge1xuXHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0cGF0aDogJy9hcGkvYWNjb3VudC9zdGFydEltcGVyc29uYXRpb24nXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRzdG9wSW1wZXJzb25hdGlvbjoge1xuXHRcdF9jb25maWc6IHtcblx0XHRcdGZldGNoOiB7XG5cdFx0XHRcdHBhdGg6ICcvYXBpL2FjY291bnQvc3RvcEltcGVyc29uYXRpb24nXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRsb2NrRG93bkJyb3dzZXJUZXN0OiB7XG5cdFx0X2NvbmZpZzoge1xuXHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0cGF0aDogJy9hcGkvbGRiL3Rlc3QnLFxuXHRcdFx0XHQvLyBmb3J3YXJkIExvY2tEb3duIEJyb3dzZXIgY29va2llcyB0byBBUElcblx0XHRcdFx0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
207
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlbnRpdHlVc2VyUm9sZUVuZHBvaW50TWFwcGluZ3MiLCJlbmRwb2ludE5hbWUiLCJfY29uZmlnIiwiaXNDb2xsZWN0aW9uIiwiZmV0Y2giLCJwYXRoIiwiYWRkVXNlclJvbGVzIiwibWV0aG9kIiwiZXhwb3J0cyIsImdyb3VwRW5kcG9pbnRNYXBwaW5nIiwic3luY1Jvc3RlciIsImVuZHBvaW50TWFwcGluZ3MiLCJjb2RlRnJvbUxvY2FsQ3JlZGVudGlhbHMiLCJpc0Fub255bW91cyIsImdldFRva2VuIiwiaGVhZGVycyIsInVzZXIiLCJ1c2VySW5mbyIsInVybENoZWNrZXIiLCJjYWxpcGVyVG9rZW4iLCJjb25maWd1cmF0aW9uIiwiY2xpZW50IiwiaWRlbnRpdHlQcm92aWRlcnMiLCJleHRlcm5hbFRlcm1zIiwiZXh0ZXJuYWxQcm92aWRlcnMiLCJ1c2VyUm9sZXMiLCJ1bmlUaW1lSW5zdHJ1Y3RvclNjaGVkdWxlIiwibHRpTGF1bmNoZXMiLCJkZWVwTGlua2luZ1Jlc3BvbnNlIiwic2VhcmNoIiwidXNlcnMiLCJ0aW1lIiwic3RhcnRJbXBlcnNvbmF0aW9uIiwic3RvcEltcGVyc29uYXRpb24iLCJsb2NrRG93bkJyb3dzZXJUZXN0IiwiY3JlZGVudGlhbHMiXSwic291cmNlcyI6WyIuLi9zcmMvZW5kcG9pbnRNYXBwaW5ncy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbmRwb2ludE1hcHBpbmcsIEVuZHBvaW50TWFwcGluZ3MgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgZW50aXR5VXNlclJvbGVFbmRwb2ludE1hcHBpbmdzID0gKGVuZHBvaW50TmFtZTogc3RyaW5nKTogRW5kcG9pbnRNYXBwaW5ncyA9PiB7XG5cdHJldHVybiB7XG5cdFx0W2VuZHBvaW50TmFtZV06IHtcblx0XHRcdF9jb25maWc6IHtcblx0XHRcdFx0aXNDb2xsZWN0aW9uOiB0cnVlLFxuXHRcdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRcdHBhdGg6IGAvYXBpLyR7ZW5kcG9pbnROYW1lfWBcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0Ly8gdXNlIHNlcGFyYXRlIG1vZGVsIGZvciB0cmFuc2llbnQgUE9TVHNcblx0XHRhZGRVc2VyUm9sZXM6IHtcblx0XHRcdF9jb25maWc6IHtcblx0XHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0XHRwYXRoOiBgL2FwaS8ke2VuZHBvaW50TmFtZX1gLFxuXHRcdFx0XHRcdG1ldGhvZDogJ1BPU1QnXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGNvbnN0IGdyb3VwRW5kcG9pbnRNYXBwaW5nOiBFbmRwb2ludE1hcHBpbmcgPSB7XG5cdF9jb25maWc6IHtcblx0XHRpc0NvbGxlY3Rpb246IHRydWUsXG5cdFx0ZmV0Y2g6IHtcblx0XHRcdHBhdGg6ICcvYXBpL2dyb3Vwcydcblx0XHR9XG5cdH0sXG5cdHN5bmNSb3N0ZXI6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRtZXRob2Q6ICdQT1NUJ1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0Li4uZW50aXR5VXNlclJvbGVFbmRwb2ludE1hcHBpbmdzKCdncm91cFVzZXJSb2xlcycpXG59XG5cbmV4cG9ydCBjb25zdCBlbmRwb2ludE1hcHBpbmdzOiBFbmRwb2ludE1hcHBpbmdzID0ge1xuXHRjb2RlRnJvbUxvY2FsQ3JlZGVudGlhbHM6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRwYXRoOiAnL2FwaS9hY2NvdW50L2xvY2FsJyxcblx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHRcdGlzQW5vbnltb3VzOiB0cnVlXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRnZXRUb2tlbjoge1xuXHRcdF9jb25maWc6IHtcblx0XHRcdGZldGNoOiB7XG5cdFx0XHRcdHBhdGg6ICcvdG9rZW4nLFxuXHRcdFx0XHRtZXRob2Q6ICdQT1NUJyxcblx0XHRcdFx0aGVhZGVyczoge1xuXHRcdFx0XHRcdCdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJ1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRpc0Fub255bW91czogdHJ1ZVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0dXNlcjoge1xuXHRcdHVzZXJJbmZvOiB7XG5cdFx0XHRfY29uZmlnOiB7IGZldGNoOiB7IHBhdGg6ICcvYXBpL2FjY291bnQvdXNlckluZm8nIH0gfVxuXHRcdH1cblx0fSxcblx0dXJsQ2hlY2tlcjoge1xuXHRcdF9jb25maWc6IHtcblx0XHRcdGZldGNoOiB7XG5cdFx0XHRcdHBhdGg6ICcvYXBpL3VybC9oZWFkZXJzJ1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0Y2FsaXBlclRva2VuOiB7XG5cdFx0X2NvbmZpZzoge1xuXHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0cGF0aDogJy9hcGkvY2FsaXBlci1ldmVudHN0b3JlL3Rva2VuJ1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0Y29uZmlndXJhdGlvbjoge1xuXHRcdF9jb25maWc6IHtcblx0XHRcdGZldGNoOiB7XG5cdFx0XHRcdHBhdGg6ICcvYXBpL2NvbmZpZ3VyYXRpb24nLFxuXHRcdFx0XHRpc0Fub255bW91czogdHJ1ZVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0Y2xpZW50OiB7XG5cdFx0X2NvbmZpZzoge1xuXHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0cGF0aDogJy9hcGkvYXBwQ2xpZW50cy93ZWInLFxuXHRcdFx0XHRpc0Fub255bW91czogdHJ1ZVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0aWRlbnRpdHlQcm92aWRlcnM6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRpc0NvbGxlY3Rpb246IHRydWUsXG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRpc0Fub255bW91czogdHJ1ZVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0ZXh0ZXJuYWxUZXJtczoge1xuXHRcdF9jb25maWc6IHtcblx0XHRcdGlzQ29sbGVjdGlvbjogdHJ1ZSxcblx0XHRcdGZldGNoOiB7XG5cdFx0XHRcdGlzQW5vbnltb3VzOiB0cnVlXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRleHRlcm5hbFByb3ZpZGVyczoge1xuXHRcdF9jb25maWc6IHtcblx0XHRcdGlzQ29sbGVjdGlvbjogdHJ1ZVxuXHRcdH1cblx0fSxcblx0dXNlclJvbGVzOiB7XG5cdFx0X2NvbmZpZzoge1xuXHRcdFx0aXNDb2xsZWN0aW9uOiB0cnVlXG5cdFx0fVxuXHR9LFxuXHQvLyB1c2Ugc2VwYXJhdGUgbW9kZWwgZm9yIHRyYW5zaWVudCBQT1NUc1xuXHRhZGRVc2VyUm9sZXM6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRwYXRoOiAnL2FwaS91c2VyUm9sZXMnLFxuXHRcdFx0XHRtZXRob2Q6ICdQT1NUJ1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0dW5pVGltZUluc3RydWN0b3JTY2hlZHVsZToge1xuXHRcdF9jb25maWc6IHtcblx0XHRcdGZldGNoOiB7XG5cdFx0XHRcdHBhdGg6ICcvYXBpL3VuaVRpbWUvaW5zdHJ1Y3RvclNjaGVkdWxlJ1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0bHRpTGF1bmNoZXM6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRpc0NvbGxlY3Rpb246IHRydWVcblx0XHR9LFxuXHRcdGRlZXBMaW5raW5nUmVzcG9uc2U6IHtcblx0XHRcdF9jb25maWc6IHtcblx0XHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0XHRtZXRob2Q6ICdQT1NUJ1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRzZWFyY2g6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRwYXRoOiAnJ1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0dXNlcnM6IHtcblx0XHRcdF9jb25maWc6IHtcblx0XHRcdFx0aXNDb2xsZWN0aW9uOiB0cnVlLFxuXHRcdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRcdHBhdGg6ICcvYXBpL3VzZXJzJ1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHR0aW1lOiB7XG5cdFx0X2NvbmZpZzoge1xuXHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0cGF0aDogJy9hcGkvdGltZScsXG5cdFx0XHRcdGlzQW5vbnltb3VzOiB0cnVlXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRzdGFydEltcGVyc29uYXRpb246IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRwYXRoOiAnL2FwaS9hY2NvdW50L3N0YXJ0SW1wZXJzb25hdGlvbidcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdHN0b3BJbXBlcnNvbmF0aW9uOiB7XG5cdFx0X2NvbmZpZzoge1xuXHRcdFx0ZmV0Y2g6IHtcblx0XHRcdFx0cGF0aDogJy9hcGkvYWNjb3VudC9zdG9wSW1wZXJzb25hdGlvbidcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGxvY2tEb3duQnJvd3NlclRlc3Q6IHtcblx0XHRfY29uZmlnOiB7XG5cdFx0XHRmZXRjaDoge1xuXHRcdFx0XHRwYXRoOiAnL2FwaS9sZGIvdGVzdCcsXG5cdFx0XHRcdC8vIGZvcndhcmQgTG9ja0Rvd24gQnJvd3NlciBjb29raWVzIHRvIEFQSVxuXHRcdFx0XHRjcmVkZW50aWFsczogJ2luY2x1ZGUnXG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVPLE1BQU1BLDhCQUE4QixHQUFJQyxZQUFvQixJQUF1QjtFQUN6RixPQUFPO0lBQ04sQ0FBQ0EsWUFBWSxHQUFHO01BQ2ZDLE9BQU8sRUFBRTtRQUNSQyxZQUFZLEVBQUUsSUFBSTtRQUNsQkMsS0FBSyxFQUFFO1VBQ05DLElBQUksRUFBRSxRQUFRSixZQUFZO1FBQzNCO01BQ0Q7SUFDRCxDQUFDO0lBQ0Q7SUFDQUssWUFBWSxFQUFFO01BQ2JKLE9BQU8sRUFBRTtRQUNSRSxLQUFLLEVBQUU7VUFDTkMsSUFBSSxFQUFFLFFBQVFKLFlB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
@@ -1,5 +1,5 @@
1
1
  import { Action, AnyAction } from 'redux';
2
- import { CasV1LoginRequestBody, IdentityProvider } from '../../types';
2
+ import { IdentityProvider } from '../../types';
3
3
  import { LocalLoginRequestBody } from '../../types/auth/LocalLoginRequestBody';
4
4
  import { OAuthToken, OAuthTokenResponse } from '../../types/net';
5
5
  export declare enum AUTH_ACTION_TYPE {
@@ -49,12 +49,6 @@ export declare enum AUTH_IDENTITY_PROVIDER_REQUEST_ACTION_TYPE {
49
49
  export interface AuthIdentityProviderRequestAction extends Action<AUTH_IDENTITY_PROVIDER_REQUEST_ACTION_TYPE> {
50
50
  identityProvider: IdentityProvider;
51
51
  }
52
- export declare enum AUTH_CAS_V1_LOGIN_REQUEST_ACTION_TYPE {
53
- CAS_V1_LOGIN_REQUEST = "auth/CAS_V1_LOGIN_REQUEST"
54
- }
55
- export interface AuthCasV1LoginRequestAction extends Action<AUTH_CAS_V1_LOGIN_REQUEST_ACTION_TYPE> {
56
- body: CasV1LoginRequestBody;
57
- }
58
52
  export declare enum AUTH_LOCAL_LOGIN_REQUEST_ACTION_TYPE {
59
53
  LOCAL_LOGIN_REQUEST = "auth/LOCAL_LOGIN_REQUEST"
60
54
  }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isAuthLogOutAction = exports.AUTH_TOKEN_SUCCESS_ACTION_TYPE = exports.AUTH_TOKEN_ACTION_TYPE = exports.AUTH_PKCE_LOGIN_REQUEST_ACTION_TYPE = exports.AUTH_LOG_OUT_ACTION_TYPE = exports.AUTH_LOCAL_LOGIN_REQUEST_ACTION_TYPE = exports.AUTH_IDENTITY_PROVIDER_REQUEST_ACTION_TYPE = exports.AUTH_CAS_V1_LOGIN_REQUEST_ACTION_TYPE = exports.AUTH_ACTION_TYPE = void 0;
6
+ exports.isAuthLogOutAction = exports.AUTH_TOKEN_SUCCESS_ACTION_TYPE = exports.AUTH_TOKEN_ACTION_TYPE = exports.AUTH_PKCE_LOGIN_REQUEST_ACTION_TYPE = exports.AUTH_LOG_OUT_ACTION_TYPE = exports.AUTH_LOCAL_LOGIN_REQUEST_ACTION_TYPE = exports.AUTH_IDENTITY_PROVIDER_REQUEST_ACTION_TYPE = exports.AUTH_ACTION_TYPE = void 0;
7
7
  let AUTH_ACTION_TYPE = exports.AUTH_ACTION_TYPE = /*#__PURE__*/function (AUTH_ACTION_TYPE) {
8
8
  AUTH_ACTION_TYPE["LOGIN_REQUESTED"] = "auth/LOGIN_REQUESTED";
9
9
  AUTH_ACTION_TYPE["TOKEN_REFRESH_FAILED"] = "auth/TOKEN_REFRESH_FAILED";
@@ -43,10 +43,6 @@ let AUTH_IDENTITY_PROVIDER_REQUEST_ACTION_TYPE = exports.AUTH_IDENTITY_PROVIDER_
43
43
  AUTH_IDENTITY_PROVIDER_REQUEST_ACTION_TYPE["IDENTITY_PROVIDER_LOGIN_REQUEST"] = "auth/IDENTITY_PROVIDER_LOGIN_REQUEST";
44
44
  return AUTH_IDENTITY_PROVIDER_REQUEST_ACTION_TYPE;
45
45
  }({});
46
- let AUTH_CAS_V1_LOGIN_REQUEST_ACTION_TYPE = exports.AUTH_CAS_V1_LOGIN_REQUEST_ACTION_TYPE = /*#__PURE__*/function (AUTH_CAS_V1_LOGIN_REQUEST_ACTION_TYPE) {
47
- AUTH_CAS_V1_LOGIN_REQUEST_ACTION_TYPE["CAS_V1_LOGIN_REQUEST"] = "auth/CAS_V1_LOGIN_REQUEST";
48
- return AUTH_CAS_V1_LOGIN_REQUEST_ACTION_TYPE;
49
- }({});
50
46
  let AUTH_LOCAL_LOGIN_REQUEST_ACTION_TYPE = exports.AUTH_LOCAL_LOGIN_REQUEST_ACTION_TYPE = /*#__PURE__*/function (AUTH_LOCAL_LOGIN_REQUEST_ACTION_TYPE) {
51
47
  AUTH_LOCAL_LOGIN_REQUEST_ACTION_TYPE["LOCAL_LOGIN_REQUEST"] = "auth/LOCAL_LOGIN_REQUEST";
52
48
  return AUTH_LOCAL_LOGIN_REQUEST_ACTION_TYPE;
@@ -55,4 +51,4 @@ let AUTH_PKCE_LOGIN_REQUEST_ACTION_TYPE = exports.AUTH_PKCE_LOGIN_REQUEST_ACTION
55
51
  AUTH_PKCE_LOGIN_REQUEST_ACTION_TYPE["PKCE_LOGIN_REQUEST"] = "auth/PKCE_LOGIN_REQUEST";
56
52
  return AUTH_PKCE_LOGIN_REQUEST_ACTION_TYPE;
57
53
  }({});
58
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBVVRIX0FDVElPTl9UWVBFIiwiZXhwb3J0cyIsIkFVVEhfTE9HX09VVF9BQ1RJT05fVFlQRSIsImlzQXV0aExvZ091dEFjdGlvbiIsImFjdGlvbiIsInR5cGUiLCJMT0dfT1VUIiwiQVVUSF9UT0tFTl9BQ1RJT05fVFlQRSIsIkFVVEhfVE9LRU5fU1VDQ0VTU19BQ1RJT05fVFlQRSIsIkFVVEhfSURFTlRJVFlfUFJPVklERVJfUkVRVUVTVF9BQ1RJT05fVFlQRSIsIkFVVEhfQ0FTX1YxX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUiLCJBVVRIX0xPQ0FMX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUiLCJBVVRIX1BLQ0VfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWR1eC9hY3Rpb25zL0F1dGhBY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uLCBBbnlBY3Rpb24gfSBmcm9tICdyZWR1eCdcbmltcG9ydCB7IENhc1YxTG9naW5SZXF1ZXN0Qm9keSwgSWRlbnRpdHlQcm92aWRlciB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgTG9jYWxMb2dpblJlcXVlc3RCb2R5IH0gZnJvbSAnLi4vLi4vdHlwZXMvYXV0aC9Mb2NhbExvZ2luUmVxdWVzdEJvZHknXG5pbXBvcnQgeyBPQXV0aFRva2VuLCBPQXV0aFRva2VuUmVzcG9uc2UgfSBmcm9tICcuLi8uLi90eXBlcy9uZXQnXG5cbmV4cG9ydCBlbnVtIEFVVEhfQUNUSU9OX1RZUEUge1xuXHRMT0dJTl9SRVFVRVNURUQgPSAnYXV0aC9MT0dJTl9SRVFVRVNURUQnLFxuXHRUT0tFTl9SRUZSRVNIX0ZBSUxFRCA9ICdhdXRoL1RPS0VOX1JFRlJFU0hfRkFJTEVEJyxcblx0TE9HSU5fRkFJTEVEID0gJ2F1dGgvTE9HSU5fRkFJTEVEJyxcblx0RVhQSVJJTkdfU09PTiA9ICdhdXRoL0VYUElSSU5HX1NPT04nLFxuXHRFWFRFTlNJT05fUkVRVUVTVEVEID0gJ2F1dGgvRVhURU5TSU9OX1JFUVVFU1RFRCdcbn1cblxuLyoqXG4gKiBBY3Rpb24gd2l0aCBubyBhZGRpdGlvbmFsIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aEFjdGlvbiBleHRlbmRzIEFjdGlvbjxBVVRIX0FDVElPTl9UWVBFPiB7fVxuXG5leHBvcnQgZW51bSBBVVRIX0xPR19PVVRfQUNUSU9OX1RZUEUge1xuXHRMT0dfT1VUID0gJ2F1dGgvTE9HX09VVCdcbn1cblxuLyoqXG4gKiBBY3Rpb24gd2l0aCBvcHRpb25hbCBib29sZWFuIGB0b2tlbkV4cGlyZWRgLCB0byBkZW5vdGUgZWl0aGVyIGEgdXNlciBpbml0aWF0ZWQgYWN0aW9uLCBvciBmcm9tIGFuIGV4cGlyZWQgdG9rZW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoTG9nT3V0QWN0aW9uIGV4dGVuZHMgQWN0aW9uPEFVVEhfTE9HX09VVF9BQ1RJT05fVFlQRT4ge1xuXHR0b2tlbkV4cGlyZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBpc0F1dGhMb2dPdXRBY3Rpb24gPSAoYWN0aW9uOiBBbnlBY3Rpb24pOiBhY3Rpb24gaXMgQXV0aExvZ091dEFjdGlvbiA9PlxuXHRhY3Rpb24udHlwZSA9PT0gQVVUSF9MT0dfT1VUX0FDVElPTl9UWVBFLkxPR19PVVRcblxuZXhwb3J0IGVudW0gQVVUSF9UT0tFTl9BQ1RJT05fVFlQRSB7XG5cdEFVVEhfSU5JVElBTElaRUQgPSAnYXV0aC9JTklUSUFMSVpFRCdcbn1cblxuLyoqXG4gKiBBY3Rpb24gd2l0aCBhIG51bGxhYmxlIGBvYXV0aFRva2VuYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoVG9rZW5BY3Rpb24gZXh0ZW5kcyBBY3Rpb248QVVUSF9UT0tFTl9BQ1RJT05fVFlQRT4ge1xuXHRvYXV0aFRva2VuOiBPQXV0aFRva2VuUmVzcG9uc2Vcbn1cblxuZXhwb3J0IGVudW0gQVVUSF9UT0tFTl9TVUNDRVNTX0FDVElPTl9UWVBFIHtcblx0R0VUX1RPS0VOX1NVQ0NFRURFRCA9ICdhdXRoL0dFVF9UT0tFTl9TVUNDRUVERUQnLFxuXHRUT0tFTl9SRUZSRVNIX1NVQ0NFRURFRCA9ICdhdXRoL1RPS0VOX1JFRlJFU0hfU1VDQ0VFREVEJ1xufVxuXG4vKipcbiAqIEFjdGlvbiB3aXRoIGFuIGBvYXV0aFRva2VuYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoVG9rZW5TdWNjZXNzQWN0aW9uIGV4dGVuZHMgQWN0aW9uPEFVVEhfVE9LRU5fU1VDQ0VTU19BQ1RJT05fVFlQRT4ge1xuXHRvYXV0aFRva2VuOiBPQXV0aFRva2VuXG59XG5cbmV4cG9ydCBlbnVtIEFVVEhfSURFTlRJVFlfUFJPVklERVJfUkVRVUVTVF9BQ1RJT05fVFlQRSB7XG5cdElERU5USVRZX1BST1ZJREVSX0xPR0lOX1JFUVVFU1QgPSAnYXV0aC9JREVOVElUWV9QUk9WSURFUl9MT0dJTl9SRVFVRVNUJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhJZGVudGl0eVByb3ZpZGVyUmVxdWVzdEFjdGlvbiBleHRlbmRzIEFjdGlvbjxBVVRIX0lERU5USVRZX1BST1ZJREVSX1JFUVVFU1RfQUNUSU9OX1RZUEU+IHtcblx0aWRlbnRpdHlQcm92aWRlcjogSWRlbnRpdHlQcm92aWRlclxufVxuXG5leHBvcnQgZW51bSBBVVRIX0NBU19WMV9MT0dJTl9SRVFVRVNUX0FDVElPTl9UWVBFIHtcblx0Q0FTX1YxX0xPR0lOX1JFUVVFU1QgPSAnYXV0aC9DQVNfVjFfTE9HSU5fUkVRVUVTVCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoQ2FzVjFMb2dpblJlcXVlc3RBY3Rpb24gZXh0ZW5kcyBBY3Rpb248QVVUSF9DQVNfVjFfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRT4ge1xuXHRib2R5OiBDYXNWMUxvZ2luUmVxdWVzdEJvZHlcbn1cblxuZXhwb3J0IGVudW0gQVVUSF9MT0NBTF9MT0dJTl9SRVFVRVNUX0FDVElPTl9UWVBFIHtcblx0TE9DQUxfTE9HSU5fUkVRVUVTVCA9ICdhdXRoL0xPQ0FMX0xPR0lOX1JFUVVFU1QnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aExvY2FsTG9naW5SZXF1ZXN0QWN0aW9uIGV4dGVuZHMgQWN0aW9uPEFVVEhfTE9DQUxfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRT4ge1xuXHRib2R5OiBMb2NhbExvZ2luUmVxdWVzdEJvZHlcbn1cblxuZXhwb3J0IGVudW0gQVVUSF9QS0NFX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUge1xuXHRQS0NFX0xPR0lOX1JFUVVFU1QgPSAnYXV0aC9QS0NFX0xPR0lOX1JFUVVFU1QnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFBLQ0VMb2dpblJlcXVlc3RBY3Rpb24gZXh0ZW5kcyBBY3Rpb248QVVUSF9QS0NFX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEU+IHt9XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztJQUtZQSxnQkFBZ0IsR0FBQUMsT0FBQSxDQUFBRCxnQkFBQSwwQkFBaEJBLGdCQUFnQjtFQUFoQkEsZ0JBQWdCO0VBQWhCQSxnQkFBZ0I7RUFBaEJBLGdCQUFnQjtFQUFoQkEsZ0JBQWdCO0VBQWhCQSxnQkFBZ0I7RUFBQSxPQUFoQkEsZ0JBQWdCO0FBQUE7QUFRNUI7QUFDQTtBQUNBO0FBRkEsSUFLWUUsd0JBQXdCLEdBQUFELE9BQUEsQ0FBQUMsd0JBQUEsMEJBQXhCQSx3QkFBd0I7RUFBeEJBLHdCQUF3QjtFQUFBLE9BQXhCQSx3QkFBd0I7QUFBQTtBQUlwQztBQUNBO0FBQ0E7QUFLTyxNQUFNQyxrQkFBa0IsR0FBSUMsTUFBaUIsSUFDbkRBLE1BQU0sQ0FBQ0MsSUFBSSxLQUFLSCx3QkFBd0IsQ0FBQ0ksT0FBTztBQUFBTCxPQUFBLENBQUFFLGtCQUFBLEdBQUFBLGtCQUFBO0FBQUEsSUFFckNJLHNCQUFzQixHQUFBTixPQUFBLENBQUFNLHNCQUFBLDBCQUF0QkEsc0JBQXNCO0VBQXRCQSxzQkFBc0I7RUFBQSxPQUF0QkEsc0JBQXNCO0FBQUE7QUFJbEM7QUFDQTtBQUNBO0FBRkEsSUFPWUMsOEJBQThCLEdBQUFQLE9BQUEsQ0FBQU8sOEJBQUEsMEJBQTlCQSw4QkFBOEI7RUFBOUJBLDhCQUE4QjtFQUE5QkEsOEJBQThCO0VBQUEsT0FBOUJBLDhCQUE4QjtBQUFBO0FBSzFDO0FBQ0E7QUFDQTtBQUZBLElBT1lDLDBDQUEwQyxHQUFBUixPQUFBLENBQUFRLDBDQUFBLDBCQUExQ0EsMENBQTBDO0VBQTFDQSwwQ0FBMEM7RUFBQSxPQUExQ0EsMENBQTBDO0FBQUE7QUFBQSxJQVExQ0MscUNBQXFDLEdBQUFULE9BQUEsQ0FBQVMscUNBQUEsMEJBQXJDQSxxQ0FBcUM7RUFBckNBLHFDQUFxQztFQUFBLE9BQXJDQSxxQ0FBcUM7QUFBQTtBQUFBLElBUXJDQyxvQ0FBb0MsR0FBQVYsT0FBQSxDQUFBVSxvQ0FBQSwwQkFBcENBLG9DQUFvQztFQUFwQ0Esb0NBQW9DO0VBQUEsT0FBcENBLG9DQUFvQztBQUFBO0FBQUEsSUFRcENDLG1DQUFtQyxHQUFBWCxPQUFBLENBQUFXLG1DQUFBLDBCQUFuQ0EsbUNBQW1DO0VBQW5DQSxtQ0FBbUM7RUFBQSxPQUFuQ0EsbUNBQW1DO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBVVRIX0FDVElPTl9UWVBFIiwiZXhwb3J0cyIsIkFVVEhfTE9HX09VVF9BQ1RJT05fVFlQRSIsImlzQXV0aExvZ091dEFjdGlvbiIsImFjdGlvbiIsInR5cGUiLCJMT0dfT1VUIiwiQVVUSF9UT0tFTl9BQ1RJT05fVFlQRSIsIkFVVEhfVE9LRU5fU1VDQ0VTU19BQ1RJT05fVFlQRSIsIkFVVEhfSURFTlRJVFlfUFJPVklERVJfUkVRVUVTVF9BQ1RJT05fVFlQRSIsIkFVVEhfTE9DQUxfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSIsIkFVVEhfUEtDRV9MT0dJTl9SRVFVRVNUX0FDVElPTl9UWVBFIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlZHV4L2FjdGlvbnMvQXV0aEFjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24sIEFueUFjdGlvbiB9IGZyb20gJ3JlZHV4J1xuaW1wb3J0IHsgSWRlbnRpdHlQcm92aWRlciB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgTG9jYWxMb2dpblJlcXVlc3RCb2R5IH0gZnJvbSAnLi4vLi4vdHlwZXMvYXV0aC9Mb2NhbExvZ2luUmVxdWVzdEJvZHknXG5pbXBvcnQgeyBPQXV0aFRva2VuLCBPQXV0aFRva2VuUmVzcG9uc2UgfSBmcm9tICcuLi8uLi90eXBlcy9uZXQnXG5cbmV4cG9ydCBlbnVtIEFVVEhfQUNUSU9OX1RZUEUge1xuXHRMT0dJTl9SRVFVRVNURUQgPSAnYXV0aC9MT0dJTl9SRVFVRVNURUQnLFxuXHRUT0tFTl9SRUZSRVNIX0ZBSUxFRCA9ICdhdXRoL1RPS0VOX1JFRlJFU0hfRkFJTEVEJyxcblx0TE9HSU5fRkFJTEVEID0gJ2F1dGgvTE9HSU5fRkFJTEVEJyxcblx0RVhQSVJJTkdfU09PTiA9ICdhdXRoL0VYUElSSU5HX1NPT04nLFxuXHRFWFRFTlNJT05fUkVRVUVTVEVEID0gJ2F1dGgvRVhURU5TSU9OX1JFUVVFU1RFRCdcbn1cblxuLyoqXG4gKiBBY3Rpb24gd2l0aCBubyBhZGRpdGlvbmFsIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aEFjdGlvbiBleHRlbmRzIEFjdGlvbjxBVVRIX0FDVElPTl9UWVBFPiB7fVxuXG5leHBvcnQgZW51bSBBVVRIX0xPR19PVVRfQUNUSU9OX1RZUEUge1xuXHRMT0dfT1VUID0gJ2F1dGgvTE9HX09VVCdcbn1cblxuLyoqXG4gKiBBY3Rpb24gd2l0aCBvcHRpb25hbCBib29sZWFuIGB0b2tlbkV4cGlyZWRgLCB0byBkZW5vdGUgZWl0aGVyIGEgdXNlciBpbml0aWF0ZWQgYWN0aW9uLCBvciBmcm9tIGFuIGV4cGlyZWQgdG9rZW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoTG9nT3V0QWN0aW9uIGV4dGVuZHMgQWN0aW9uPEFVVEhfTE9HX09VVF9BQ1RJT05fVFlQRT4ge1xuXHR0b2tlbkV4cGlyZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBpc0F1dGhMb2dPdXRBY3Rpb24gPSAoYWN0aW9uOiBBbnlBY3Rpb24pOiBhY3Rpb24gaXMgQXV0aExvZ091dEFjdGlvbiA9PlxuXHRhY3Rpb24udHlwZSA9PT0gQVVUSF9MT0dfT1VUX0FDVElPTl9UWVBFLkxPR19PVVRcblxuZXhwb3J0IGVudW0gQVVUSF9UT0tFTl9BQ1RJT05fVFlQRSB7XG5cdEFVVEhfSU5JVElBTElaRUQgPSAnYXV0aC9JTklUSUFMSVpFRCdcbn1cblxuLyoqXG4gKiBBY3Rpb24gd2l0aCBhIG51bGxhYmxlIGBvYXV0aFRva2VuYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoVG9rZW5BY3Rpb24gZXh0ZW5kcyBBY3Rpb248QVVUSF9UT0tFTl9BQ1RJT05fVFlQRT4ge1xuXHRvYXV0aFRva2VuOiBPQXV0aFRva2VuUmVzcG9uc2Vcbn1cblxuZXhwb3J0IGVudW0gQVVUSF9UT0tFTl9TVUNDRVNTX0FDVElPTl9UWVBFIHtcblx0R0VUX1RPS0VOX1NVQ0NFRURFRCA9ICdhdXRoL0dFVF9UT0tFTl9TVUNDRUVERUQnLFxuXHRUT0tFTl9SRUZSRVNIX1NVQ0NFRURFRCA9ICdhdXRoL1RPS0VOX1JFRlJFU0hfU1VDQ0VFREVEJ1xufVxuXG4vKipcbiAqIEFjdGlvbiB3aXRoIGFuIGBvYXV0aFRva2VuYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoVG9rZW5TdWNjZXNzQWN0aW9uIGV4dGVuZHMgQWN0aW9uPEFVVEhfVE9LRU5fU1VDQ0VTU19BQ1RJT05fVFlQRT4ge1xuXHRvYXV0aFRva2VuOiBPQXV0aFRva2VuXG59XG5cbmV4cG9ydCBlbnVtIEFVVEhfSURFTlRJVFlfUFJPVklERVJfUkVRVUVTVF9BQ1RJT05fVFlQRSB7XG5cdElERU5USVRZX1BST1ZJREVSX0xPR0lOX1JFUVVFU1QgPSAnYXV0aC9JREVOVElUWV9QUk9WSURFUl9MT0dJTl9SRVFVRVNUJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhJZGVudGl0eVByb3ZpZGVyUmVxdWVzdEFjdGlvbiBleHRlbmRzIEFjdGlvbjxBVVRIX0lERU5USVRZX1BST1ZJREVSX1JFUVVFU1RfQUNUSU9OX1RZUEU+IHtcblx0aWRlbnRpdHlQcm92aWRlcjogSWRlbnRpdHlQcm92aWRlclxufVxuXG5leHBvcnQgZW51bSBBVVRIX0xPQ0FMX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUge1xuXHRMT0NBTF9MT0dJTl9SRVFVRVNUID0gJ2F1dGgvTE9DQUxfTE9HSU5fUkVRVUVTVCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoTG9jYWxMb2dpblJlcXVlc3RBY3Rpb24gZXh0ZW5kcyBBY3Rpb248QVVUSF9MT0NBTF9MT0dJTl9SRVFVRVNUX0FDVElPTl9UWVBFPiB7XG5cdGJvZHk6IExvY2FsTG9naW5SZXF1ZXN0Qm9keVxufVxuXG5leHBvcnQgZW51bSBBVVRIX1BLQ0VfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSB7XG5cdFBLQ0VfTE9HSU5fUkVRVUVTVCA9ICdhdXRoL1BLQ0VfTE9HSU5fUkVRVUVTVCdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXRoUEtDRUxvZ2luUmVxdWVzdEFjdGlvbiBleHRlbmRzIEFjdGlvbjxBVVRIX1BLQ0VfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRT4ge31cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0lBS1lBLGdCQUFnQixHQUFBQyxPQUFBLENBQUFELGdCQUFBLDBCQUFoQkEsZ0JBQWdCO0VBQWhCQSxnQkFBZ0I7RUFBaEJBLGdCQUFnQjtFQUFoQkEsZ0JBQWdCO0VBQWhCQSxnQkFBZ0I7RUFBaEJBLGdCQUFnQjtFQUFBLE9BQWhCQSxnQkFBZ0I7QUFBQTtBQVE1QjtBQUNBO0FBQ0E7QUFGQSxJQUtZRSx3QkFBd0IsR0FBQUQsT0FBQSxDQUFBQyx3QkFBQSwwQkFBeEJBLHdCQUF3QjtFQUF4QkEsd0JBQXdCO0VBQUEsT0FBeEJBLHdCQUF3QjtBQUFBO0FBSXBDO0FBQ0E7QUFDQTtBQUtPLE1BQU1DLGtCQUFrQixHQUFJQyxNQUFpQixJQUNuREEsTUFBTSxDQUFDQyxJQUFJLEtBQUtILHdCQUF3QixDQUFDSSxPQUFPO0FBQUFMLE9BQUEsQ0FBQUUsa0JBQUEsR0FBQUEsa0JBQUE7QUFBQSxJQUVyQ0ksc0JBQXNCLEdBQUFOLE9BQUEsQ0FBQU0sc0JBQUEsMEJBQXRCQSxzQkFBc0I7RUFBdEJBLHNCQUFzQjtFQUFBLE9BQXRCQSxzQkFBc0I7QUFBQTtBQUlsQztBQUNBO0FBQ0E7QUFGQSxJQU9ZQyw4QkFBOEIsR0FBQVAsT0FBQSxDQUFBTyw4QkFBQSwwQkFBOUJBLDhCQUE4QjtFQUE5QkEsOEJBQThCO0VBQTlCQSw4QkFBOEI7RUFBQSxPQUE5QkEsOEJBQThCO0FBQUE7QUFLMUM7QUFDQTtBQUNBO0FBRkEsSUFPWUMsMENBQTBDLEdBQUFSLE9BQUEsQ0FBQVEsMENBQUEsMEJBQTFDQSwwQ0FBMEM7RUFBMUNBLDBDQUEwQztFQUFBLE9BQTFDQSwwQ0FBMEM7QUFBQTtBQUFBLElBUTFDQyxvQ0FBb0MsR0FBQVQsT0FBQSxDQUFBUyxvQ0FBQSwwQkFBcENBLG9DQUFvQztFQUFwQ0Esb0NBQW9DO0VBQUEsT0FBcENBLG9DQUFvQztBQUFBO0FBQUEsSUFRcENDLG1DQUFtQyxHQUFBVixPQUFBLENBQUFVLG1DQUFBLDBCQUFuQ0EsbUNBQW1DO0VBQW5DQSxtQ0FBbUM7RUFBQSxPQUFuQ0EsbUNBQW1DO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,7 +1,7 @@
1
1
  import { SagaIterator } from '@redux-saga/core';
2
2
  import { AnyAction } from 'redux';
3
- import { AuthPersistenceService, CodeProviderService, ErrorHandler, OAuthToken, TicketProviderService, TokenAccessFunction } from '../../types';
4
- import { AuthCasV1LoginRequestAction, AuthLocalLoginRequestAction, AuthPKCELoginRequestAction, ModelFetchErrorAction, ModelFetchRequestAction } from '../actions';
3
+ import { AuthPersistenceService, CodeProviderService, ErrorHandler, OAuthToken, TokenAccessFunction } from '../../types';
4
+ import { AuthLocalLoginRequestAction, AuthPKCELoginRequestAction, ModelFetchErrorAction, ModelFetchRequestAction } from '../actions';
5
5
  export declare const matchesModelFetchReceived: (action: AnyAction, modelName: string) => boolean;
6
6
  export declare const takeMatchesModelFetchReceived: (modelName: string) => (incomingAction: AnyAction) => boolean;
7
7
  export declare const matchesModelFetchFailed: (action: AnyAction, modelName: string) => boolean;
@@ -13,13 +13,11 @@ export declare function getTokenFromRefreshToken(oauthTokenParam: OAuthToken): S
13
13
  export declare function resetRefresh(): void;
14
14
  export declare function performTokenRefresh(oauthToken: OAuthToken): SagaIterator;
15
15
  export declare function loginFlow(modelFetchRequestAction: ModelFetchRequestAction): SagaIterator;
16
- export declare function credentialsLoginFlow(action: AuthCasV1LoginRequestAction | AuthLocalLoginRequestAction, modelName: string): SagaIterator;
17
- export declare function casV1LoginFlow(action: AuthCasV1LoginRequestAction): SagaIterator;
16
+ export declare function credentialsLoginFlow(action: AuthLocalLoginRequestAction, modelName: string): SagaIterator;
18
17
  export declare function localLoginFlow(action: AuthLocalLoginRequestAction): SagaIterator;
19
- export declare function casTicketLoginFlow(ticket: string, service: string): SagaIterator;
20
18
  export declare function pkceLoginFlow(_: AuthPKCELoginRequestAction): SagaIterator;
21
19
  export declare function handleAuthFailure(action: ModelFetchErrorAction): SagaIterator;
22
20
  export declare const getOAuthToken: TokenAccessFunction;
23
21
  export declare function resetData(): SagaIterator;
24
22
  export declare function refreshLoop(): SagaIterator;
25
- export default function authSaga(authPersistenceServiceParam: AuthPersistenceService, ticketProviderService: TicketProviderService, codeProviderService: CodeProviderService, errorHandlerParam?: ErrorHandler | undefined): SagaIterator;
23
+ export default function authSaga(authPersistenceServiceParam: AuthPersistenceService, codeProviderService: CodeProviderService, errorHandlerParam?: ErrorHandler | undefined): SagaIterator;
@@ -4,8 +4,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.casTicketLoginFlow = casTicketLoginFlow;
8
- exports.casV1LoginFlow = casV1LoginFlow;
9
7
  exports.credentialsLoginFlow = credentialsLoginFlow;
10
8
  exports.default = authSaga;
11
9
  exports.getOAuthToken = exports.defaultErrorHandler = void 0;
@@ -275,24 +273,9 @@ function* credentialsLoginFlow(action, modelName) {
275
273
  };
276
274
  return yield (0, _effects.call)(loginFlow, modelFetchRequestAction);
277
275
  }
278
- function* casV1LoginFlow(action) {
279
- return yield (0, _effects.call)(credentialsLoginFlow, action, 'codeFromCasV1');
280
- }
281
276
  function* localLoginFlow(action) {
282
277
  return yield (0, _effects.call)(credentialsLoginFlow, action, 'codeFromLocalCredentials');
283
278
  }
284
- function* casTicketLoginFlow(ticket, service) {
285
- const modelFetchRequestAction = {
286
- type: _actions.MODEL_FETCH_REQUEST_ACTION_TYPE.FETCH_REQUEST,
287
- modelName: 'codeFromCasTicket',
288
- noStore: true,
289
- queryParams: {
290
- ticket,
291
- service
292
- }
293
- };
294
- return yield (0, _effects.call)(loginFlow, modelFetchRequestAction);
295
- }
296
279
  function* pkceLoginFlow(_) {
297
280
  const appConfig = (0, _constants.getAppConfig)();
298
281
  if (!appConfig.CLIENT_ID || !appConfig.OAUTH_PKCE_SCOPE || !appConfig.OAUTH_PKCE_ENDPOINT) {
@@ -454,8 +437,8 @@ function* refreshLoop() {
454
437
  }
455
438
  logger.debug('refreshLoop done');
456
439
  }
457
- function authSaga(authPersistenceServiceParam, ticketProviderService, codeProviderService) {
458
- let errorHandlerParam = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : defaultErrorHandler;
440
+ function authSaga(authPersistenceServiceParam, codeProviderService) {
441
+ let errorHandlerParam = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultErrorHandler;
459
442
  return function* () {
460
443
  authPersistenceService = authPersistenceServiceParam;
461
444
  errorHandler = errorHandlerParam;
@@ -478,9 +461,6 @@ function authSaga(authPersistenceServiceParam, ticketProviderService, codeProvid
478
461
  }
479
462
 
480
463
  // get auth parameters
481
- const casTicket = ticketProviderService.getTicket();
482
- const service = ticketProviderService.getAppServiceName();
483
- const hasCasTicket = !!casTicket && !!service;
484
464
  const code = codeProviderService.getCode();
485
465
  const state = codeProviderService.getState();
486
466
 
@@ -488,9 +468,8 @@ function authSaga(authPersistenceServiceParam, ticketProviderService, codeProvid
488
468
  const purdueIdentityProvider = yield (0, _effects.call)(_auth.getPurdueIdentityProviderFromLocation);
489
469
  if (purdueIdentityProvider) {
490
470
  const isPurdueAutoLoginRequested = yield (0, _effects.call)(authPersistenceService.getIsPurdueAutoLoginRequested);
491
-
492
471
  // start auto-login / SSO, if not already requested, not authenticated, and has no valid auth parameters
493
- if (!isPurdueAutoLoginRequested && !oauthToken && !hasCasTicket && !code) {
472
+ if (!isPurdueAutoLoginRequested && !oauthToken && !code) {
494
473
  yield (0, _effects.call)(authPersistenceService.persistIsPurdueAutoLoginRequested, true);
495
474
  // store pathname for post-login redirect if not already set
496
475
  // could have been set from user logging out, see `AuthenticatedComponent`
@@ -501,28 +480,12 @@ function authSaga(authPersistenceServiceParam, ticketProviderService, codeProvid
501
480
  yield (0, _effects.call)(_windowService.windowService.replace, purdueIdentityProvider.loginUrl);
502
481
  return;
503
482
  }
504
-
505
483
  // finish auto-login process, if it was requested and has a valid auth parameter
506
- if (isPurdueAutoLoginRequested && (hasCasTicket || code)) {
484
+ if (isPurdueAutoLoginRequested && code) {
507
485
  yield (0, _effects.call)(authPersistenceService.persistIsPurdueAutoLoginRequested, false);
508
486
  // persist Purdue identityProvider for `identityProviderSaga` logout logic
509
487
  yield (0, _effects.call)(authPersistenceService.persistIdentityProvider, purdueIdentityProvider);
510
- // continue to exchanging CAS `ticket` or `code` for token
511
- }
512
- }
513
-
514
- // if CAS ticket exists (normally in the URL), use it to get a new token
515
- if (hasCasTicket) {
516
- ticketProviderService.removeTicket();
517
-
518
- // clear the current token and user data if a new token is about to be generated
519
- if (oauthToken) {
520
- yield (0, _effects.call)(resetData);
521
- oauthToken = null;
522
- }
523
- oauthToken = yield (0, _effects.call)(casTicketLoginFlow, casTicket, service);
524
- if (oauthToken) {
525
- yield (0, _effects.call)(authPersistenceService.persistToken, oauthToken);
488
+ // continue to exchanging the `code` for token
526
489
  }
527
490
  }
528
491
 
@@ -554,20 +517,16 @@ function authSaga(authPersistenceServiceParam, ticketProviderService, codeProvid
554
517
  do {
555
518
  if (!oauthToken) {
556
519
  const {
557
- casV1Action,
558
520
  localLoginAction,
559
521
  pkceLoginAction
560
522
  } = yield (0, _effects.race)({
561
- casV1Action: (0, _effects.take)(_actions.AUTH_CAS_V1_LOGIN_REQUEST_ACTION_TYPE.CAS_V1_LOGIN_REQUEST),
562
523
  localLoginAction: (0, _effects.take)(_actions.AUTH_LOCAL_LOGIN_REQUEST_ACTION_TYPE.LOCAL_LOGIN_REQUEST),
563
524
  pkceLoginAction: (0, _effects.take)(_actions.AUTH_PKCE_LOGIN_REQUEST_ACTION_TYPE.PKCE_LOGIN_REQUEST)
564
525
  });
565
526
  yield (0, _effects.put)({
566
527
  type: _actions.AUTH_ACTION_TYPE.LOGIN_REQUESTED
567
528
  });
568
- if (casV1Action) {
569
- oauthToken = yield (0, _effects.call)(casV1LoginFlow, casV1Action);
570
- } else if (localLoginAction) {
529
+ if (localLoginAction) {
571
530
  oauthToken = yield (0, _effects.call)(localLoginFlow, localLoginAction);
572
531
  } else if (pkceLoginAction) {
573
532
  // oauthToken is not returned here, as this flow will result in a window redirect
@@ -601,4 +560,4 @@ function authSaga(authPersistenceServiceParam, ticketProviderService, codeProvid
601
560
  } while (true);
602
561
  }();
603
562
  }
604
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50VGltZXpvbmUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9lZmZlY3RzIiwiX3V1aWQiLCJfY29uc3RhbnRzIiwiX3dpbmRvd1NlcnZpY2UiLCJfdHlwZXMiLCJfYXV0aCIsIl9kYXRlIiwiX2Vycm9yIiwiX2xvZ2dlciIsIl91cmwiLCJfdXNlckFjdGl2aXR5IiwiX2FjdGlvbnMiLCJtYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkIiwiYWN0aW9uIiwibW9kZWxOYW1lIiwiaXNUcmFuc2llbnRNb2RlbEZldGNoUmVzdWx0QWN0aW9uIiwibW9kZWxQYXRoIiwiZXhwb3J0cyIsInRha2VNYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkIiwiaW5jb21pbmdBY3Rpb24iLCJtYXRjaGVzTW9kZWxGZXRjaEZhaWxlZCIsImlzVHJhbnNpZW50TW9kZWxGZXRjaEVycm9yQWN0aW9uIiwidGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkIiwiZGVmYXVsdEVycm9ySGFuZGxlciIsImF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UiLCJlcnJvckhhbmRsZXIiLCJsb2dnZXIiLCJnZXRUb2tlbkZyb21Db2RlIiwiY29kZSIsImFwcENvbmZpZyIsImdldEFwcENvbmZpZyIsIkNMSUVOVF9JRCIsIkNMSUVOVF9TRUNSRVQiLCJFcnJvciIsImdldFRva2VuTW9kZWxOYW1lIiwiZm9ybUJvZHkiLCJVUkxTZWFyY2hQYXJhbXMiLCJncmFudF90eXBlIiwiY2xpZW50X2lkIiwiY2xpZW50X3NlY3JldCIsInB1dCIsInR5cGUiLCJNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFIiwiRkVUQ0hfUkVRVUVTVCIsImJvZHkiLCJ0b1N0cmluZyIsIm5vU3RvcmUiLCJmZXRjaFJlc3VsdEFjdGlvbiIsImZldGNoRXJyb3JBY3Rpb24iLCJyYWNlIiwidGFrZSIsImRhdGEiLCJnZXRUb2tlbkZyb21Db2RlQW5kU3RhdGUiLCJzdGF0ZSIsIk9BVVRIX1BLQ0VfU0NPUEUiLCJPQVVUSF9QS0NFX0VORFBPSU5UIiwiY29kZVZlcmlmaWVyIiwiY2FsbCIsImdldFBlcnNpc3RlZENvZGVWZXJpZmllciIsInBlcnNpc3RlZFN0YXRlIiwiZ2V0UGVyc2lzdGVkU3RhdGUiLCJwZXJzaXN0U3RhdGUiLCJwZXJzaXN0Q29kZVZlcmlmaWVyIiwibG9jYXRpb24iLCJ3aW5kb3dTZXJ2aWNlIiwiZ2V0TG9jYXRpb24iLCJzY29wZSIsImNvZGVfdmVyaWZpZXIiLCJyZWRpcmVjdF91cmkiLCJvcmlnaW4iLCJnZXRUb2tlbkZyb21SZWZyZXNoVG9rZW4iLCJvYXV0aFRva2VuUGFyYW0iLCJyZWZyZXNoX3Rva2VuIiwiYXBwZW5kIiwiZXJyb3JEYXRhIiwic3RhdHVzIiwiSFRUUF9TVEFUVVNfQ09ERSIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsImlzRXhwaXJpbmdTb29uQWxlcnRWaXNpYmxlIiwicmVmcmVzaExvY2siLCJwcmV2aW91c1JlZnJlc2hUb2tlbiIsInJlc2V0UmVmcmVzaCIsInVuZGVmaW5lZCIsInBlcmZvcm1Ub2tlblJlZnJlc2giLCJvYXV0aFRva2VuIiwicmVmcmVzaFN1Y2Nlc3MiLCJBVVRIX1RPS0VOX1NVQ0NFU1NfQUNUSU9OX1RZUEUiLCJUT0tFTl9SRUZSRVNIX1NVQ0NFRURFRCIsInJlZnJlc2hGYWlsZWQiLCJBVVRIX0FDVElPTl9UWVBFIiwiVE9LRU5fUkVGUkVTSF9GQUlMRUQiLCJnZXRQZXJzaXN0ZWRUb2tlbiIsImRlYnVnIiwib3JpZ2luYWxBY2Nlc3NUb2tlbiIsImFjY2Vzc190b2tlbiIsInJldHJ5RGVsYXkiLCJkZWxheSIsIm9hdXRoVG9rZW5SZXNwb25zZSIsInBlcnNpc3RUb2tlbiIsImFsbCIsImxvZ091dCIsIkFVVEhfTE9HX09VVF9BQ1RJT05fVFlQRSIsIkxPR19PVVQiLCJ0b2tlbkV4cGlyZWQiLCJjYXVnaHRFcnJvciIsImVycm9yIiwiY29uc3RydWN0RXJyb3JGcm9tQ2F1Z2h0RXJyb3IiLCJsb2dpbkZsb3ciLCJtb2RlbEZldGNoUmVxdWVzdEFjdGlvbiIsImNyZWRlbnRpYWxzTG9naW5GbG93Iiwibm9SZXRyeSIsImNhc1YxTG9naW5GbG93IiwibG9jYWxMb2dpbkZsb3ciLCJjYXNUaWNrZXRMb2dpbkZsb3ciLCJ0aWNrZXQiLCJzZXJ2aWNlIiwicXVlcnlQYXJhbXMiLCJwa2NlTG9naW5GbG93IiwiXyIsInV1aWR2NCIsInNoYTI1NkNvZGVWZXJpZmllciIsInNoYTI1NkFzeW5jIiwiY29kZUNoYWxsZW5nZSIsImJhc2U2NFVybEVuY29kZSIsInBrY2VBdXRoUmVkaXJlY3RVUkwiLCJyZXNwb25zZV90eXBlIiwiY29kZV9jaGFsbGVuZ2UiLCJjb2RlX2NoYWxsZW5nZV9tZXRob2QiLCJyZXBsYWNlIiwiaGFuZGxlQXV0aEZhaWx1cmUiLCJVTkFVVEhPUklaRUQiLCJpc1Rva2VuRXhwaXJlZCIsImlzVG9rZW5SZWZyZXNoYWJsZSIsImlzVXNlcklkbGUiLCJnZXRPQXV0aFRva2VuIiwiZXhwaXJlc1V0YyIsIm1vbWVudCIsInV0YyIsIm5vd1V0YyIsImdldFNlcnZlck5vd1V0YyIsInRvSVNPU3RyaW5nIiwiaXNFeHBpcmluZ1Nvb24iLCJkaWZmIiwiU0VTU0lPTl9SRUZSRVNIX1RIUkVTSE9MRCIsInJlc2V0RGF0YSIsImNsZWFyVXNlckRhdGEiLCJNT0RFTF9SRU1PVkVfS0VZX0FDVElPTl9UWVBFIiwiY2xlYXJQZXJzaXN0ZW50VG9rZW4iLCJyZWZyZXNoTG9vcCIsImlzRXhwaXJlZCIsImlzUmVmcmVzaGFibGUiLCJ0aW1lVW50aWxFeHBpcmVzIiwiZXhwaXJlc1Nvb25VdGMiLCJzdWJ0cmFjdCIsIm1heERlbGF5IiwiZXhwaXJlc19pbiIsImV4cGlyZXNTb29uRGVsYXkiLCJNYXRoIiwibWluIiwiZWxhcHNlZCIsIkVYUElSSU5HX1NPT04iLCJleHRlbnNpb25SZXF1ZXN0ZWQiLCJFWFRFTlNJT05fUkVRVUVTVEVEIiwiYXV0aFNhZ2EiLCJhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlUGFyYW0iLCJ0aWNrZXRQcm92aWRlclNlcnZpY2UiLCJjb2RlUHJvdmlkZXJTZXJ2aWNlIiwiZXJyb3JIYW5kbGVyUGFyYW0iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJnZXRMb2dnZXIiLCJjYXNUaWNrZXQiLCJnZXRUaWNrZXQiLCJnZXRBcHBTZXJ2aWNlTmFtZSIsImhhc0Nhc1RpY2tldCIsImdldENvZGUiLCJnZXRTdGF0ZSIsInB1cmR1ZUlkZW50aXR5UHJvdmlkZXIiLCJnZXRQdXJkdWVJZGVudGl0eVByb3ZpZGVyRnJvbUxvY2F0aW9uIiwiaXNQdXJkdWVBdXRvTG9naW5SZXF1ZXN0ZWQiLCJnZXRJc1B1cmR1ZUF1dG9Mb2dpblJlcXVlc3RlZCIsInBlcnNpc3RJc1B1cmR1ZUF1dG9Mb2dpblJlcXVlc3RlZCIsInJldHVyblVybCIsImdldFJldHVyblVybCIsInBlcnNpc3RSZXR1cm5VcmwiLCJwYXRobmFtZSIsImxvZ2luVXJsIiwicGVyc2lzdElkZW50aXR5UHJvdmlkZXIiLCJyZW1vdmVUaWNrZXQiLCJyZW1vdmVDb2RlQW5kU3RhdGUiLCJBVVRIX1RPS0VOX0FDVElPTl9UWVBFIiwiQVVUSF9JTklUSUFMSVpFRCIsInRha2VFdmVyeSIsIk1PREVMX0ZFVENIX0VSUk9SX0FDVElPTl9UWVBFIiwiVFJZX0ZFVENIX0ZBSUxFRCIsImNhc1YxQWN0aW9uIiwibG9jYWxMb2dpbkFjdGlvbiIsInBrY2VMb2dpbkFjdGlvbiIsIkFVVEhfQ0FTX1YxX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUiLCJDQVNfVjFfTE9HSU5fUkVRVUVTVCIsIkFVVEhfTE9DQUxfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSIsIkxPQ0FMX0xPR0lOX1JFUVVFU1QiLCJBVVRIX1BLQ0VfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSIsIlBLQ0VfTE9HSU5fUkVRVUVTVCIsIkxPR0lOX1JFUVVFU1RFRCIsImxvZ2luU3VjY2VzcyIsIkdFVF9UT0tFTl9TVUNDRUVERUQiLCJyZWZyZXNoTG9vcFRhc2siLCJmb3JrIiwiY2FuY2VsIiwiTE9HSU5fRkFJTEVEIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlZHV4L3NhZ2FzL2F1dGhTYWdhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhZ2FJdGVyYXRvciwgVGFzayB9IGZyb20gJ0ByZWR1eC1zYWdhL2NvcmUnXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC10aW1lem9uZSdcbmltcG9ydCB7IEFueUFjdGlvbiB9IGZyb20gJ3JlZHV4J1xuaW1wb3J0IHsgYWxsLCBjYWxsLCBjYW5jZWwsIGRlbGF5LCBmb3JrLCBwdXQsIHJhY2UsIHRha2UsIHRha2VFdmVyeSB9IGZyb20gJ3JlZHV4LXNhZ2EvZWZmZWN0cydcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnXG5pbXBvcnQgeyBnZXRBcHBDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnXG5pbXBvcnQgeyB3aW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2luZG93U2VydmljZSdcbmltcG9ydCB7XG5cdEF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UsXG5cdENvZGVQcm92aWRlclNlcnZpY2UsXG5cdEVycm9ySGFuZGxlcixcblx0SFRUUF9TVEFUVVNfQ09ERSxcblx0T0F1dGhUb2tlbixcblx0T0F1dGhUb2tlblJlc3BvbnNlLFxuXHRUaWNrZXRQcm92aWRlclNlcnZpY2UsXG5cdFRva2VuQWNjZXNzRnVuY3Rpb25cbn0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyBnZXRQdXJkdWVJZGVudGl0eVByb3ZpZGVyRnJvbUxvY2F0aW9uLCBpc1Rva2VuRXhwaXJlZCwgaXNUb2tlblJlZnJlc2hhYmxlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXV0aCdcbmltcG9ydCB7IGdldFNlcnZlck5vd1V0YyB9IGZyb20gJy4uLy4uL3V0aWxzL2RhdGUnXG5pbXBvcnQgeyBjb25zdHJ1Y3RFcnJvckZyb21DYXVnaHRFcnJvciB9IGZyb20gJy4uLy4uL3V0aWxzL2Vycm9yJ1xuaW1wb3J0IHsgZ2V0TG9nZ2VyLCBMb2dnZXIgfSBmcm9tICcuLi8uLi91dGlscy9sb2dnZXInXG5pbXBvcnQgeyBiYXNlNjRVcmxFbmNvZGUsIHNoYTI1NkFzeW5jIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXJsJ1xuaW1wb3J0IHsgaXNVc2VySWRsZSB9IGZyb20gJy4uLy4uL3V0aWxzL3VzZXJBY3Rpdml0eSdcbmltcG9ydCB7XG5cdEFVVEhfQUNUSU9OX1RZUEUsXG5cdEFVVEhfQ0FTX1YxX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUsXG5cdEFVVEhfTE9DQUxfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSxcblx0QVVUSF9MT0dfT1VUX0FDVElPTl9UWVBFLFxuXHRBVVRIX1BLQ0VfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSxcblx0QVVUSF9UT0tFTl9BQ1RJT05fVFlQRSxcblx0QVVUSF9UT0tFTl9TVUNDRVNTX0FDVElPTl9UWVBFLFxuXHRBdXRoQWN0aW9uLFxuXHRBdXRoQ2FzVjFMb2dpblJlcXVlc3RBY3Rpb24sXG5cdEF1dGhMb2NhbExvZ2luUmVxdWVzdEFjdGlvbixcblx0QXV0aExvZ091dEFjdGlvbixcblx0QXV0aFBLQ0VMb2dpblJlcXVlc3RBY3Rpb24sXG5cdEF1dGhUb2tlbkFjdGlvbixcblx0QXV0aFRva2VuU3VjY2Vzc0FjdGlvbixcblx0aXNUcmFuc2llbnRNb2RlbEZldGNoRXJyb3JBY3Rpb24sXG5cdGlzVHJhbnNpZW50TW9kZWxGZXRjaFJlc3VsdEFjdGlvbixcblx0TU9ERUxfRkVUQ0hfRVJST1JfQUNUSU9OX1RZUEUsXG5cdE1PREVMX0ZFVENIX1JFUVVFU1RfQUNUSU9OX1RZUEUsXG5cdE1PREVMX1JFTU9WRV9LRVlfQUNUSU9OX1RZUEUsXG5cdE1vZGVsRmV0Y2hFcnJvckFjdGlvbixcblx0TW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24sXG5cdE1vZGVsRmV0Y2hSZXN1bHRBY3Rpb24sXG5cdE1vZGVsUmVtb3ZlS2V5QWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnXG5cbi8vI3JlZ2lvbiBIZWxwZXJzXG5cbmV4cG9ydCBjb25zdCBtYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkID0gKGFjdGlvbjogQW55QWN0aW9uLCBtb2RlbE5hbWU6IHN0cmluZykgPT5cblx0aXNUcmFuc2llbnRNb2RlbEZldGNoUmVzdWx0QWN0aW9uKGFjdGlvbikgJiYgYWN0aW9uLm1vZGVsUGF0aCA9PT0gbW9kZWxOYW1lXG5cbmV4cG9ydCBjb25zdCB0YWtlTWF0Y2hlc01vZGVsRmV0Y2hSZWNlaXZlZCA9IChtb2RlbE5hbWU6IHN0cmluZykgPT4gKGluY29taW5nQWN0aW9uOiBBbnlBY3Rpb24pID0+XG5cdG1hdGNoZXNNb2RlbEZldGNoUmVjZWl2ZWQoaW5jb21pbmdBY3Rpb24sIG1vZGVsTmFtZSlcblxuZXhwb3J0IGNvbnN0IG1hdGNoZXNNb2RlbEZldGNoRmFpbGVkID0gKGFjdGlvbjogQW55QWN0aW9uLCBtb2RlbE5hbWU6IHN0cmluZykgPT5cblx0aXNUcmFuc2llbnRNb2RlbEZldGNoRXJyb3JBY3Rpb24oYWN0aW9uKSAmJiBhY3Rpb24ubW9kZWxQYXRoID09PSBtb2RlbE5hbWVcblxuZXhwb3J0IGNvbnN0IHRha2VNYXRjaGVzTW9kZWxGZXRjaEZhaWxlZCA9IChtb2RlbE5hbWU6IHN0cmluZykgPT4gKGluY29taW5nQWN0aW9uOiBBbnlBY3Rpb24pID0+XG5cdG1hdGNoZXNNb2RlbEZldGNoRmFpbGVkKGluY29taW5nQWN0aW9uLCBtb2RlbE5hbWUpXG5cbi8vI2VuZHJlZ2lvbiBIZWxwZXJzXG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG5leHBvcnQgY29uc3QgZGVmYXVsdEVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyID0gKCkgPT4ge1xuXHRyZXR1cm5cbn1cblxubGV0IGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2U6IEF1dGhQZXJzaXN0ZW5jZVNlcnZpY2VcbmxldCBlcnJvckhhbmRsZXI6IEVycm9ySGFuZGxlclxubGV0IGxvZ2dlcjogTG9nZ2VyXG5cbmV4cG9ydCBmdW5jdGlvbiogZ2V0VG9rZW5Gcm9tQ29kZShjb2RlOiBzdHJpbmcpOiBTYWdhSXRlcmF0b3Ige1xuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxuXHRpZiAoIWFwcENvbmZpZy5DTElFTlRfSUQgfHwgIWFwcENvbmZpZy5DTElFTlRfU0VDUkVUKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdDTElFTlRfSUQgYW5kIENMSUVOVF9TRUNSRVQgYXJlIHJlcXVpcmVkIGluIEFwcENvbmZpZycpXG5cdH1cblx0Y29uc3QgZ2V0VG9rZW5Nb2RlbE5hbWUgPSAnZ2V0VG9rZW4nXG5cdGNvbnN0IGZvcm1Cb2R5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG5cdFx0Z3JhbnRfdHlwZTogJ2F1dGhvcml6YXRpb25fY29kZScsXG5cdFx0Y2xpZW50X2lkOiBhcHBDb25maWcuQ0xJRU5UX0lELFxuXHRcdGNsaWVudF9zZWNyZXQ6IGFwcENvbmZpZy5DTElFTlRfU0VDUkVULFxuXHRcdGNvZGU6IGNvZGVcblx0fSlcblx0eWllbGQgcHV0PE1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uPih7XG5cdFx0dHlwZTogTU9ERUxfRkVUQ0hfUkVRVUVTVF9BQ1RJT05fVFlQRS5GRVRDSF9SRVFVRVNULFxuXHRcdG1vZGVsTmFtZTogZ2V0VG9rZW5Nb2RlbE5hbWUsXG5cdFx0Ym9keTogZm9ybUJvZHkudG9TdHJpbmcoKSxcblx0XHRub1N0b3JlOiB0cnVlXG5cdH0pXG5cdGNvbnN0IHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbixcblx0XHRmZXRjaEVycm9yQWN0aW9uXG5cdH06IHsgZmV0Y2hSZXN1bHRBY3Rpb24/OiBNb2RlbEZldGNoUmVzdWx0QWN0aW9uOyBmZXRjaEVycm9yQWN0aW9uPzogTW9kZWxGZXRjaEVycm9yQWN0aW9uIH0gPSB5aWVsZCByYWNlKHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbjogdGFrZSh0YWtlTWF0Y2hlc01vZGVsRmV0Y2hSZWNlaXZlZChnZXRUb2tlbk1vZGVsTmFtZSkpLFxuXHRcdGZldGNoRXJyb3JBY3Rpb246IHRha2UodGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkKGdldFRva2VuTW9kZWxOYW1lKSlcblx0fSlcblx0aWYgKGZldGNoRXJyb3JBY3Rpb24gfHwgIWZldGNoUmVzdWx0QWN0aW9uPy5kYXRhKSB7XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHRyZXR1cm4gZmV0Y2hSZXN1bHRBY3Rpb24uZGF0YVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGdldFRva2VuRnJvbUNvZGVBbmRTdGF0ZShjb2RlOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcpOiBTYWdhSXRlcmF0b3Ige1xuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxuXHRpZiAoIWFwcENvbmZpZy5DTElFTlRfSUQgfHwgIWFwcENvbmZpZy5PQVVUSF9QS0NFX1NDT1BFIHx8ICFhcHBDb25maWcuT0FVVEhfUEtDRV9FTkRQT0lOVCkge1xuXHRcdHRocm93IG5ldyBFcnJvcignQ0xJRU5UX0lELCBPQVVUSF9QS0NFX1NDT1BFLCBhbmQgT0FVVEhfUEtDRV9FTkRQT0lOVCBhcmUgcmVxdWlyZWQgaW4gQXBwQ29uZmlnJylcblx0fVxuXG5cdC8vIHZhbGlkYXRlIHBlcnNpc3RlZCB2YWx1ZXNcblx0Y29uc3QgY29kZVZlcmlmaWVyID0geWllbGQgY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLmdldFBlcnNpc3RlZENvZGVWZXJpZmllcilcblx0aWYgKCFjb2RlVmVyaWZpZXIpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgY29kZV92ZXJpZmllcicpXG5cdH1cblx0Y29uc3QgcGVyc2lzdGVkU3RhdGUgPSB5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UuZ2V0UGVyc2lzdGVkU3RhdGUpXG5cdGlmIChwZXJzaXN0ZWRTdGF0ZSAhPT0gc3RhdGUpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgc3RhdGUnKVxuXHR9XG5cdC8vIGNsZWFyIHBlcnNpc3RlZCB2YWx1ZXNcblx0eWllbGQgY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RTdGF0ZSwgbnVsbClcblx0eWllbGQgY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RDb2RlVmVyaWZpZXIsIG51bGwpXG5cblx0Ly8gZGlzcGF0Y2ggcmVxdWVzdFxuXHRjb25zdCBnZXRUb2tlbk1vZGVsTmFtZSA9ICdnZXRUb2tlbidcblx0Y29uc3QgbG9jYXRpb24gPSB3aW5kb3dTZXJ2aWNlLmdldExvY2F0aW9uKClcblx0Y29uc3QgZm9ybUJvZHkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcblx0XHRncmFudF90eXBlOiAnYXV0aG9yaXphdGlvbl9jb2RlJyxcblx0XHRjbGllbnRfaWQ6IGFwcENvbmZpZy5DTElFTlRfSUQsXG5cdFx0c2NvcGU6IGFwcENvbmZpZy5PQVVUSF9QS0NFX1NDT1BFLFxuXHRcdGNvZGVfdmVyaWZpZXI6IGNvZGVWZXJpZmllcixcblx0XHRyZWRpcmVjdF91cmk6IGxvY2F0aW9uLm9yaWdpbixcblx0XHRjb2RlOiBjb2RlXG5cdH0pXG5cdHlpZWxkIHB1dDxNb2RlbEZldGNoUmVxdWVzdEFjdGlvbj4oe1xuXHRcdHR5cGU6IE1PREVMX0ZFVENIX1JFUVVFU1RfQUNUSU9OX1RZUEUuRkVUQ0hfUkVRVUVTVCxcblx0XHRtb2RlbE5hbWU6IGdldFRva2VuTW9kZWxOYW1lLFxuXHRcdGJvZHk6IGZvcm1Cb2R5LnRvU3RyaW5nKCksXG5cdFx0bm9TdG9yZTogdHJ1ZVxuXHR9KVxuXHRjb25zdCB7XG5cdFx0ZmV0Y2hSZXN1bHRBY3Rpb24sXG5cdFx0ZmV0Y2hFcnJvckFjdGlvblxuXHR9OiB7IGZldGNoUmVzdWx0QWN0aW9uPzogTW9kZWxGZXRjaFJlc3VsdEFjdGlvbjsgZmV0Y2hFcnJvckFjdGlvbj86IE1vZGVsRmV0Y2hFcnJvckFjdGlvbiB9ID0geWllbGQgcmFjZSh7XG5cdFx0ZmV0Y2hSZXN1bHRBY3Rpb246IHRha2UodGFrZU1hdGNoZXNNb2RlbEZldGNoUmVjZWl2ZWQoZ2V0VG9rZW5Nb2RlbE5hbWUpKSxcblx0XHRmZXRjaEVycm9yQWN0aW9uOiB0YWtlKHRha2VNYXRjaGVzTW9kZWxGZXRjaEZhaWxlZChnZXRUb2tlbk1vZGVsTmFtZSkpXG5cdH0pXG5cdGlmIChmZXRjaEVycm9yQWN0aW9uIHx8ICFmZXRjaFJlc3VsdEFjdGlvbj8uZGF0YSkge1xuXHRcdHJldHVybiBudWxsXG5cdH1cblx0cmV0dXJuIGZldGNoUmVzdWx0QWN0aW9uLmRhdGFcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBnZXRUb2tlbkZyb21SZWZyZXNoVG9rZW4ob2F1dGhUb2tlblBhcmFtOiBPQXV0aFRva2VuKTogU2FnYUl0ZXJhdG9yIHtcblx0Y29uc3QgYXBwQ29uZmlnID0gZ2V0QXBwQ29uZmlnKClcblx0aWYgKCFhcHBDb25maWcuQ0xJRU5UX0lEKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdDTElFTlRfSUQgaXMgcmVxdWlyZWQgaW4gQXBwQ29uZmlnJylcblx0fVxuXHRpZiAoIW9hdXRoVG9rZW5QYXJhbS5yZWZyZXNoX3Rva2VuKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKGByZWZyZXNoX3Rva2VuIGlzIHJlcXVpcmVkYClcblx0fVxuXG5cdGNvbnN0IGdldFRva2VuTW9kZWxOYW1lID0gJ2dldFRva2VuJ1xuXHRjb25zdCBmb3JtQm9keSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuXHRcdGdyYW50X3R5cGU6ICdyZWZyZXNoX3Rva2VuJyxcblx0XHRjbGllbnRfaWQ6IGFwcENvbmZpZy5DTElFTlRfSUQsXG5cdFx0cmVmcmVzaF90b2tlbjogb2F1dGhUb2tlblBhcmFtLnJlZnJlc2hfdG9rZW5cblx0fSlcblx0Ly8gY3JlYXRlIHRoZSBmb3JtIGJvZHkgYmFzZWQgb24gaWYgdXNpbmcgYSBjbGllbnRfc2VjcmV0OiB0cmFkaXRpb25hbCBPQXV0aCB2cy4gUEtDRSBmbG93XG5cdGlmIChhcHBDb25maWcuQ0xJRU5UX1NFQ1JFVCkge1xuXHRcdGZvcm1Cb2R5LmFwcGVuZCgnY2xpZW50X3NlY3JldCcsIGFwcENvbmZpZy5DTElFTlRfU0VDUkVUKVxuXHR9XG5cdHlpZWxkIHB1dDxNb2RlbEZldGNoUmVxdWVzdEFjdGlvbj4oe1xuXHRcdHR5cGU6IE1PREVMX0ZFVENIX1JFUVVFU1RfQUNUSU9OX1RZUEUuRkVUQ0hfUkVRVUVTVCxcblx0XHRtb2RlbE5hbWU6IGdldFRva2VuTW9kZWxOYW1lLFxuXHRcdGJvZHk6IGZvcm1Cb2R5LnRvU3RyaW5nKCksXG5cdFx0bm9TdG9yZTogdHJ1ZVxuXHR9KVxuXHRjb25zdCB7XG5cdFx0ZmV0Y2hSZXN1bHRBY3Rpb24sXG5cdFx0ZmV0Y2hFcnJvckFjdGlvblxuXHR9OiB7IGZldGNoUmVzdWx0QWN0aW9uPzogTW9kZWxGZXRjaFJlc3VsdEFjdGlvbjsgZmV0Y2hFcnJvckFjdGlvbj86IE1vZGVsRmV0Y2hFcnJvckFjdGlvbiB9ID0geWllbGQgcmFjZSh7XG5cdFx0ZmV0Y2hSZXN1bHRBY3Rpb246IHRha2UodGFrZU1hdGNoZXNNb2RlbEZldGNoUmVjZWl2ZWQoZ2V0VG9rZW5Nb2RlbE5hbWUpKSxcblx0XHRmZXRjaEVycm9yQWN0aW9uOiB0YWtlKHRha2VNYXRjaGVzTW9kZWxGZXRjaEZhaWxlZChnZXRUb2tlbk1vZGVsTmFtZSkpXG5cdH0pXG5cdC8vIGFueSBlcnJvciByZXNwb25zZVxuXHRpZiAoZmV0Y2hFcnJvckFjdGlvbikge1xuXHRcdC8vIGlnbm9yZSBzZXJ2ZXIgZXJyb3JzXG5cdFx0aWYgKFxuXHRcdFx0ZmV0Y2hFcnJvckFjdGlvbi5lcnJvckRhdGE/LnN0YXR1cyAmJlxuXHRcdFx0ZmV0Y2hFcnJvckFjdGlvbi5lcnJvckRhdGEuc3RhdHVzID49IEhUVFBfU1RBVFVTX0NPREUuSU5URVJOQUxfU0VSVkVSX0VSUk9SXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gb2F1dGhUb2tlblBhcmFtXG5cdFx0fVxuXHRcdHJldHVybiBudWxsXG5cdH1cblx0Ly8gZm9yIHNvbWUgcmVhc29uIHRoZSByZXNwb25zZSBoYWQgbm8gYm9keVxuXHRpZiAoIWZldGNoUmVzdWx0QWN0aW9uPy5kYXRhKSB7XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHRyZXR1cm4gZmV0Y2hSZXN1bHRBY3Rpb24uZGF0YVxufVxuXG5sZXQgaXNFeHBpcmluZ1Nvb25BbGVydFZpc2libGU6IGJvb2xlYW5cbmxldCByZWZyZXNoTG9jazogYm9vbGVhblxubGV0IHByZXZpb3VzUmVmcmVzaFRva2VuOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0UmVmcmVzaCgpIHtcblx0aXNFeHBpcmluZ1Nvb25BbGVydFZpc2libGUgPSBmYWxzZVxuXHRyZWZyZXNoTG9jayA9IGZhbHNlXG5cdHByZXZpb3VzUmVmcmVzaFRva2VuID0gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogcGVyZm9ybVRva2VuUmVmcmVzaChvYXV0aFRva2VuOiBPQXV0aFRva2VuKTogU2FnYUl0ZXJhdG9yIHtcblx0aWYgKHJlZnJlc2hMb2NrKSB7XG5cdFx0Ly8gYWxyZWFkeSByZWZyZXNoaW5nLCB3YWl0IGZvciB0aGUgY3VycmVudCByZWZyZXNoIHRvIHN1Y2NlZWQgb3IgZmFpbFxuXHRcdHlpZWxkIHJhY2Uoe1xuXHRcdFx0cmVmcmVzaFN1Y2Nlc3M6IHRha2UoQVVUSF9UT0tFTl9TVUNDRVNTX0FDVElPTl9UWVBFLlRPS0VOX1JFRlJFU0hfU1VDQ0VFREVEKSxcblx0XHRcdHJlZnJlc2hGYWlsZWQ6IHRha2UoQVVUSF9BQ1RJT05fVFlQRS5UT0tFTl9SRUZSRVNIX0ZBSUxFRClcblx0XHR9KVxuXHRcdC8vIHJldHVybiB0aGUgY3VycmVudCBwZXJzaXN0ZWQgdG9rZW5cblx0XHRyZXR1cm4geWllbGQgY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLmdldFBlcnNpc3RlZFRva2VuKVxuXHR9XG5cdGxvZ2dlci5kZWJ1ZygnT0F1dGggdG9rZW4gcmVmcmVzaGluZy4uLicpXG5cdHJlZnJlc2hMb2NrID0gdHJ1ZVxuXHR0cnkge1xuXHRcdC8vIG9hdXRoVG9rZW4gd2lsbCBiZSBzZXQgdG86XG5cdFx0Ly8gMS4gbmV3IHRva2VuIChzdWNjZXNzKVxuXHRcdC8vIDIuIHNhbWUgdG9rZW4gKGZhaWxlZCBmcm9tIHRpbWVvdXQgb3Igc2VydmVyIGVycm9yKVxuXHRcdC8vIDMuIG51bGwgKGZhaWwpXG5cdFx0Y29uc3Qgb3JpZ2luYWxBY2Nlc3NUb2tlbiA9IG9hdXRoVG9rZW4uYWNjZXNzX3Rva2VuXG5cdFx0Ly8gaWYgdXNpbmcgdGhlIHNhbWUgcmVmcmVzaF90b2tlbiwgdGhlIHByZXZpb3VzIHJlZnJlc2ggZGlkIG5vdCBzdWNjZWVkIChlLmcuIHNlcnZlciBlcnJvciBvciB0aW1lb3V0KVxuXHRcdC8vIGJhY2sgb2ZmIGJlZm9yZSByZXRyeWluZyBzbyB3ZSBkb24ndCBoYW1tZXIgdGhlIHNlcnZlciB3aGlsZSBpdCBpcyB1bmF2YWlsYWJsZVxuXHRcdGlmIChvYXV0aFRva2VuLnJlZnJlc2hfdG9rZW4gPT09IHByZXZpb3VzUmVmcmVzaFRva2VuKSB7XG5cdFx0XHRjb25zdCByZXRyeURlbGF5ID0gNTAwMFxuXHRcdFx0bG9nZ2VyLmRlYnVnKGBPQXV0aCB0b2tlbiByZWZyZXNoaW5nIHdpdGggc2FtZSB0b2tlbiwgYmFja2luZyBvZmYgJHtyZXRyeURlbGF5fSBtc2ApXG5cdFx0XHR5aWVsZCBkZWxheShyZXRyeURlbGF5KVxuXHRcdH1cblx0XHRwcmV2aW91c1JlZnJlc2hUb2tlbiA9IG9hdXRoVG9rZW4ucmVmcmVzaF90b2tlblxuXHRcdGNvbnN0IG9hdXRoVG9rZW5SZXNwb25zZTogT0F1dGhUb2tlblJlc3BvbnNlID0geWllbGQgY2FsbChnZXRUb2tlbkZyb21SZWZyZXNoVG9rZW4sIG9hdXRoVG9rZW4pXG5cdFx0aWYgKCEhb2F1dGhUb2tlblJlc3BvbnNlICYmIG9hdXRoVG9rZW5SZXNwb25zZS5hY2Nlc3NfdG9rZW4gIT09IG9yaWdpbmFsQWNjZXNzVG9rZW4pIHtcblx0XHRcdGxvZ2dlci5kZWJ1ZygnT0F1dGggdG9rZW4gcmVmcmVzaGVkJylcblx0XHRcdHByZXZpb3VzUmVmcmVzaFRva2VuID0gdW5kZWZpbmVkXG5cdFx0XHR5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdFRva2VuLCBvYXV0aFRva2VuUmVzcG9uc2UpXG5cdFx0XHR5aWVsZCBwdXQ8QXV0aFRva2VuU3VjY2Vzc0FjdGlvbj4oe1xuXHRcdFx0XHR0eXBlOiBBVVRIX1RPS0VOX1NVQ0NFU1NfQUNUSU9OX1RZUEUuVE9LRU5fUkVGUkVTSF9TVUNDRUVERUQsXG5cdFx0XHRcdG9hdXRoVG9rZW46IG9hdXRoVG9rZW5SZXNwb25zZVxuXHRcdFx0fSlcblx0XHR9IGVsc2UgaWYgKG9hdXRoVG9rZW5SZXNwb25zZSA9PT0gbnVsbCkge1xuXHRcdFx0bG9nZ2VyLmRlYnVnKCdPQXV0aCB0b2tlbiBmYWlsZWQgdG8gcmVmcmVzaCcpXG5cdFx0XHQvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4gb3V0c2lkZSBvZiB0aGUgdG9rZW4gaGF2aW5nIGJlZW4gcmV2b2tlZCBvbiB0aGUgc2VydmVyIHNpZGVcblx0XHRcdHlpZWxkIGFsbCh7XG5cdFx0XHRcdHJlZnJlc2hGYWlsZWQ6IHB1dDxBdXRoQWN0aW9uPih7IHR5cGU6IEFVVEhfQUNUSU9OX1RZUEUuVE9LRU5fUkVGUkVTSF9GQUlMRUQgfSksXG5cdFx0XHRcdGxvZ091dDogcHV0PEF1dGhMb2dPdXRBY3Rpb24+KHsgdHlwZTogQVVUSF9MT0dfT1VUX0FDVElPTl9UWVBFLkxPR19PVVQsIHRva2VuRXhwaXJlZDogdHJ1ZSB9KVxuXHRcdFx0fSlcblx0XHR9XG5cdFx0cmV0dXJuIG9hdXRoVG9rZW5SZXNwb25zZVxuXHR9IGNhdGNoIChjYXVnaHRFcnJvcjogdW5rbm93bikge1xuXHRcdGNvbnN0IGVycm9yID0gY29uc3RydWN0RXJyb3JGcm9tQ2F1Z2h0RXJyb3IoY2F1Z2h0RXJyb3IsICdQZXJmb3JtVG9rZW5SZWZyZXNoRXJyb3InKVxuXHRcdGxvZ2dlci5lcnJvcihlcnJvcilcblx0XHRlcnJvckhhbmRsZXIoZXJyb3IpXG5cdH0gZmluYWxseSB7XG5cdFx0cmVmcmVzaExvY2sgPSBmYWxzZVxuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogbG9naW5GbG93KG1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uOiBNb2RlbEZldGNoUmVxdWVzdEFjdGlvbik6IFNhZ2FJdGVyYXRvciB7XG5cdHlpZWxkIHB1dChtb2RlbEZldGNoUmVxdWVzdEFjdGlvbilcblx0Y29uc3Qge1xuXHRcdGZldGNoUmVzdWx0QWN0aW9uLFxuXHRcdGZldGNoRXJyb3JBY3Rpb25cblx0fTogeyBmZXRjaFJlc3VsdEFjdGlvbj86IE1vZGVsRmV0Y2hSZXN1bHRBY3Rpb247IGZldGNoRXJyb3JBY3Rpb24/OiBNb2RlbEZldGNoRXJyb3JBY3Rpb24gfSA9IHlpZWxkIHJhY2Uoe1xuXHRcdGZldGNoUmVzdWx0QWN0aW9uOiB0YWtlKHRha2VNYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkKG1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uLm1vZGVsTmFtZSkpLFxuXHRcdGZldGNoRXJyb3JBY3Rpb246IHRha2UodGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkKG1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uLm1vZGVsTmFtZSkpXG5cdH0pXG5cdGlmIChmZXRjaEVycm9yQWN0aW9uKSB7XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHRjb25zdCBjb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBmZXRjaFJlc3VsdEFjdGlvbj8uZGF0YT8uY29kZVxuXHRpZiAoIWNvZGUpIHtcblx0XHRyZXR1cm4gbnVsbFxuXHR9XG5cdHJldHVybiB5aWVsZCBjYWxsKGdldFRva2VuRnJvbUNvZGUsIGNvZGUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogY3JlZGVudGlhbHNMb2dpbkZsb3coXG5cdGFjdGlvbjogQXV0aENhc1YxTG9naW5SZXF1ZXN0QWN0aW9uIHwgQXV0aExvY2FsTG9naW5SZXF1ZXN0QWN0aW9uLFxuXHRtb2RlbE5hbWU6IHN0cmluZ1xuKTogU2FnYUl0ZXJhdG9yIHtcblx0Y29uc3QgbW9kZWxGZXRjaFJlcXVlc3RBY3Rpb246IE1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uID0ge1xuXHRcdC8vIHNldCByZXF1aXJlZCBkZWZhdWx0c1xuXHRcdHR5cGU6IE1PREVMX0ZFVENIX1JFUVVFU1RfQUNUSU9OX1RZUEUuRkVUQ0hfUkVRVUVTVCxcblx0XHRtb2RlbE5hbWUsXG5cdFx0bm9TdG9yZTogdHJ1ZSxcblx0XHQvLyBmb3JjZSBubyByZXRyeVxuXHRcdG5vUmV0cnk6IHRydWUsXG5cdFx0Ly8gcGFzcyB0aHJ1IGJvZHlcblx0XHRib2R5OiBhY3Rpb24uYm9keVxuXHR9XG5cdHJldHVybiB5aWVsZCBjYWxsKGxvZ2luRmxvdywgbW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogY2FzVjFMb2dpbkZsb3coYWN0aW9uOiBBdXRoQ2FzVjFMb2dpblJlcXVlc3RBY3Rpb24pOiBTYWdhSXRlcmF0b3Ige1xuXHRyZXR1cm4geWllbGQgY2FsbChjcmVkZW50aWFsc0xvZ2luRmxvdywgYWN0aW9uLCAnY29kZUZyb21DYXNWMScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogbG9jYWxMb2dpbkZsb3coYWN0aW9uOiBBdXRoTG9jYWxMb2dpblJlcXVlc3RBY3Rpb24pOiBTYWdhSXRlcmF0b3Ige1xuXHRyZXR1cm4geWllbGQgY2FsbChjcmVkZW50aWFsc0xvZ2luRmxvdywgYWN0aW9uLCAnY29kZUZyb21Mb2NhbENyZWRlbnRpYWxzJylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBjYXNUaWNrZXRMb2dpbkZsb3codGlja2V0OiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZyk6IFNhZ2FJdGVyYXRvciB7XG5cdGNvbnN0IG1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uOiBNb2RlbEZldGNoUmVxdWVzdEFjdGlvbiA9IHtcblx0XHR0eXBlOiBNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFLkZFVENIX1JFUVVFU1QsXG5cdFx0bW9kZWxOYW1lOiAnY29kZUZyb21DYXNUaWNrZXQnLFxuXHRcdG5vU3RvcmU6IHRydWUsXG5cdFx0cXVlcnlQYXJhbXM6IHtcblx0XHRcdHRpY2tldCxcblx0XHRcdHNlcnZpY2Vcblx0XHR9XG5cdH1cblx0cmV0dXJuIHlpZWxkIGNhbGwobG9naW5GbG93LCBtb2RlbEZldGNoUmVxdWVzdEFjdGlvbilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBwa2NlTG9naW5GbG93KF86IEF1dGhQS0NFTG9naW5SZXF1ZXN0QWN0aW9uKTogU2FnYUl0ZXJhdG9yIHtcblx0Y29uc3QgYXBwQ29uZmlnID0gZ2V0QXBwQ29uZmlnKClcblx0aWYgKCFhcHBDb25maWcuQ0xJRU5UX0lEIHx8ICFhcHBDb25maWcuT0FVVEhfUEtDRV9TQ09QRSB8fCAhYXBwQ29uZmlnLk9BVVRIX1BLQ0VfRU5EUE9JTlQpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ0NMSUVOVF9JRCwgT0FVVEhfUEtDRV9TQ09QRSwgYW5kIE9BVVRIX1BLQ0VfRU5EUE9JTlQgYXJlIHJlcXVpcmVkIGluIEFwcENvbmZpZycpXG5cdH1cblxuXHQvLyBHZW5lcmF0ZSBzdGF0ZSBhbmQgY29kZSB2ZXJpZmllciB2YWx1ZXNcblx0Y29uc3Qgc3RhdGUgPSB1dWlkdjQoKVxuXHRjb25zdCBjb2RlVmVyaWZpZXIgPSB1dWlkdjQoKVxuXHRjb25zdCBzaGEyNTZDb2RlVmVyaWZpZXIgPSB5aWVsZCBjYWxsKHNoYTI1NkFzeW5jLCBjb2RlVmVyaWZpZXIpXG5cdGNvbnN0IGNvZGVDaGFsbGVuZ2UgPSB5aWVsZCBjYWxsKGJhc2U2NFVybEVuY29kZSwgc2hhMjU2Q29kZVZlcmlmaWVyKVxuXG5cdC8vIFBlcnNpc3Qgc3RhdGUgYW5kIGNvZGUgdmVyaWZpZXIgaW4gbG9jYWwgc3RvcmFnZSBmb3IgdXNlIGFmdGVyIGNvZGUgZmxvdyByZWRpcmVjdC5cblx0eWllbGQgY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RTdGF0ZSwgc3RhdGUpXG5cdHlpZWxkIGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0Q29kZVZlcmlmaWVyLCBjb2RlVmVyaWZpZXIpXG5cblx0Ly8gUmVkaXJlY3QgdG8gQlMgY29kZSBmbG93IGF1dGggZW5kcG9pbnQgKHdoaWNoIHdpbGwgcmVkaXJlY3QgYmFjayBoZXJlKVxuXHRjb25zdCBsb2NhdGlvbiA9IHdpbmRvd1NlcnZpY2UuZ2V0TG9jYXRpb24oKVxuXHRjb25zdCBwa2NlQXV0aFJlZGlyZWN0VVJMID0gYCR7YXBwQ29uZmlnLk9BVVRIX1BLQ0VfRU5EUE9JTlR9PyR7bmV3IFVSTFNlYXJjaFBhcmFtcyh7XG5cdFx0cmVzcG9uc2VfdHlwZTogJ2NvZGUnLFxuXHRcdGNsaWVudF9pZDogYXBwQ29uZmlnLkNMSUVOVF9JRCxcblx0XHRzdGF0ZTogc3RhdGUsXG5cdFx0c2NvcGU6IGFwcENvbmZpZy5PQVVUSF9QS0NFX1NDT1BFLFxuXHRcdGNvZGVfY2hhbGxlbmdlOiBjb2RlQ2hhbGxlbmdlLFxuXHRcdGNvZGVfY2hhbGxlbmdlX21ldGhvZDogJ1MyNTYnLFxuXHRcdHJlZGlyZWN0X3VyaTogbG9jYXRpb24ub3JpZ2luXG5cdH0pfWBcblx0eWllbGQgY2FsbCh3aW5kb3dTZXJ2aWNlLnJlcGxhY2UsIHBrY2VBdXRoUmVkaXJlY3RVUkwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaGFuZGxlQXV0aEZhaWx1cmUoYWN0aW9uOiBNb2RlbEZldGNoRXJyb3JBY3Rpb24pOiBTYWdhSXRlcmF0b3Ige1xuXHRpZiAoIWFjdGlvbi5lcnJvckRhdGEgfHwgYWN0aW9uLmVycm9yRGF0YS5zdGF0dXMgIT09IEhUVFBfU1RBVFVTX0NPREUuVU5BVVRIT1JJWkVEKSByZXR1cm5cblx0Y29uc3Qgb2F1dGhUb2tlbjogT0F1dGhUb2tlblJlc3BvbnNlID0geWllbGQgY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLmdldFBlcnNpc3RlZFRva2VuKVxuXHRpZiAoIWlzVG9rZW5FeHBpcmVkKG9hdXRoVG9rZW4pKSByZXR1cm5cblx0Ly8gaWYgYSByZXF1ZXN0IHJlY2VpdmVzIGEgNDAxLCB0aGUgdG9rZW4gaXMgZXhwaXJlZCBhbmQgY2Fubm90IHJlZnJlc2gsIHRyaWdnZXIgZXhwaXJlZCBsb2cgb3V0XG5cdC8vIHRoaXMgaXMgYSBmYWlsLXNhZmUgaW4gY2FzZSB0aGUgYHJlZnJlc2hMb29wYCBoYXMgZmFpbGVkXG5cdGlmICghaXNUb2tlblJlZnJlc2hhYmxlKG9hdXRoVG9rZW4pKSB7XG5cdFx0eWllbGQgcHV0PEF1dGhMb2dPdXRBY3Rpb24+KHsgdHlwZTogQVVUSF9MT0dfT1VUX0FDVElPTl9UWVBFLkxPR19PVVQsIHRva2VuRXhwaXJlZDogdHJ1ZSB9KVxuXHRcdHJldHVyblxuXHR9XG5cdC8vIGlmIHRva2VuIGlzIHJlZnJlc2hhYmxlLCB3aXRoaW4gMzAgc2Vjb25kcyBvZiBleHBpcmF0aW9uLCBhbmQgdXNlciBpcyBub3QgaWRsZSwgYXV0by1yZWZyZXNoXG5cdC8vIHRoaXMgaXMgYSBmYWlsLXNhZmUgaW4gY2FzZSB0aGUgYHJlZnJlc2hMb29wYCBoYXMgZmFpbGVkXG5cdGlmICghaXNVc2VySWRsZSgpKSB7XG5cdFx0bG9nZ2VyLmRlYnVnKCdoYW5kbGVBdXRoRmFpbHVyZSB0cmlnZ2VyIGF1dG8tcmVmcmVzaCcpXG5cdFx0eWllbGQgY2FsbChwZXJmb3JtVG9rZW5SZWZyZXNoLCBvYXV0aFRva2VuKVxuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBnZXRPQXV0aFRva2VuOiBUb2tlbkFjY2Vzc0Z1bmN0aW9uID0gZnVuY3Rpb24qICgpIHtcblx0bGV0IG9hdXRoVG9rZW46IE9BdXRoVG9rZW5SZXNwb25zZSA9IHlpZWxkIGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5nZXRQZXJzaXN0ZWRUb2tlbilcblx0aWYgKCFvYXV0aFRva2VuPy5bJy5leHBpcmVzJ10pIHJldHVybiBvYXV0aFRva2VuXG5cdGNvbnN0IGFwcENvbmZpZyA9IGdldEFwcENvbmZpZygpXG5cdGNvbnN0IGV4cGlyZXNVdGMgPSBtb21lbnQudXRjKG9hdXRoVG9rZW5bJy5leHBpcmVzJ10pXG5cdGNvbnN0IG5vd1V0YyA9IG1vbWVudC51dGMoZ2V0U2VydmVyTm93VXRjKCkudG9JU09TdHJpbmcoKSlcblx0Y29uc3QgaXNFeHBpcmluZ1Nvb24gPSBleHBpcmVzVXRjLmRpZmYobm93VXRjKSA8PSBhcHBDb25maWcuU0VTU0lPTl9SRUZSRVNIX1RIUkVTSE9MRFxuXHQvLyBpZiB0b2tlbiBpcyByZWZyZXNoYWJsZSwgd2l0aGluIHJlZnJlc2ggdGhyZXNob2xkLCB1c2VyIGlzIG5vdCBpZGxlLCBhbmQgbm90IGRpc3BsYXlpbmcgYWxlcnQsIHRoZW4gYXV0by1yZWZyZXNoXG5cdC8vIHRoaXMgaXMgYSBmYWlsLXNhZmUgaW4gY2FzZSB0aGUgYHJlZnJlc2hMb29wYCBoYXMgZmFpbGVkXG5cdGlmIChpc1Rva2VuUmVmcmVzaGFibGUob2F1dGhUb2tlbikgJiYgaXNFeHBpcmluZ1Nvb24gJiYgIWlzVXNlcklkbGUoKSAmJiAhaXNFeHBpcmluZ1Nvb25BbGVydFZpc2libGUpIHtcblx0XHRsb2dnZXIuZGVidWcoJ2dldE9BdXRoVG9rZW4gdHJpZ2dlciBhdXRvLXJlZnJlc2gnKVxuXHRcdG9hdXRoVG9rZW4gPSB5aWVsZCBjYWxsKHBlcmZvcm1Ub2tlblJlZnJlc2gsIG9hdXRoVG9rZW4pXG5cdH1cblx0cmV0dXJuIG9hdXRoVG9rZW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiByZXNldERhdGEoKTogU2FnYUl0ZXJhdG9yIHtcblx0eWllbGQgYWxsKHtcblx0XHRjbGVhclVzZXJEYXRhOiBwdXQ8TW9kZWxSZW1vdmVLZXlBY3Rpb24+KHsgdHlwZTogTU9ERUxfUkVNT1ZFX0tFWV9BQ1RJT05fVFlQRSwgbW9kZWxQYXRoOiAndXNlcicgfSksXG5cdFx0Y2xlYXJQZXJzaXN0ZW50VG9rZW46IGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0VG9rZW4sIG51bGwpLFxuXHRcdHJlc2V0UmVmcmVzaDogY2FsbChyZXNldFJlZnJlc2gpXG5cdH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogcmVmcmVzaExvb3AoKTogU2FnYUl0ZXJhdG9yIHtcblx0Y29uc3QgYXBwQ29uZmlnID0gZ2V0QXBwQ29uZmlnKClcblx0bGV0IG9hdXRoVG9rZW46IE9BdXRoVG9rZW5SZXNwb25zZVxuXHRsb2dnZXIuZGVidWcoJ3JlZnJlc2hMb29wIGluaXQnKVxuXHR3aGlsZSAodHJ1ZSkge1xuXHRcdGlzRXhwaXJpbmdTb29uQWxlcnRWaXNpYmxlID0gZmFsc2Vcblx0XHRvYXV0aFRva2VuID0geWllbGQgY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLmdldFBlcnNpc3RlZFRva2VuKVxuXG5cdFx0bG9nZ2VyLmRlYnVnKCdyZWZyZXNoTG9vcCBzdGFydCcsIHtcblx0XHRcdG9hdXRoVG9rZW4sXG5cdFx0XHRpc0V4cGlyZWQ6IGlzVG9rZW5FeHBpcmVkKG9hdXRoVG9rZW4pLFxuXHRcdFx0aXNSZWZyZXNoYWJsZTogaXNUb2tlblJlZnJlc2hhYmxlKG9hdXRoVG9rZW4pXG5cdFx0fSlcblxuXHRcdGlmICghaXNUb2tlblJlZnJlc2hhYmxlKG9hdXRoVG9rZW4pKSB7XG5cdFx0XHRpZiAoaXNUb2tlbkV4cGlyZWQob2F1dGhUb2tlbikpIHtcblx0XHRcdFx0bG9nZ2VyLmRlYnVnKCdyZWZyZXNoTG9vcCBicmVhazogdG9rZW4gZXhwaXJlZCBhbmQgbm90IHJlZnJlc2hhYmxlLCB0cmlnZ2VyIGV4cGlyZWQgbG9nIG91dCcpXG5cdFx0XHRcdC8vIHVzZXIgZmFpbGVkIHRvIHJlcXVlc3QgYW4gZXh0ZW5zaW9uIGFuZCB0b2tlbiBpcyBleHBpcmVkXG5cdFx0XHRcdHlpZWxkIHB1dDxBdXRoTG9nT3V0QWN0aW9uPih7IHR5cGU6IEFVVEhfTE9HX09VVF9BQ1RJT05fVFlQRS5MT0dfT1VULCB0b2tlbkV4cGlyZWQ6IHRydWUgfSlcblx0XHRcdFx0Ly8gYnJlYWsgbG9vcFxuXHRcdFx0XHRicmVha1xuXHRcdFx0fVxuXHRcdFx0bG9nZ2VyLmRlYnVnKCdyZWZyZXNoTG9vcCBicmVhazogdG9rZW4gbm90IHJlZnJlc2hhYmxlJylcblx0XHRcdGJyZWFrXG5cdFx0fVxuXG5cdFx0Y29uc3QgZXhwaXJlc1V0YyA9IG1vbWVudC51dGMob2F1dGhUb2tlblsnLmV4cGlyZXMnXSlcblx0XHRjb25zdCBub3dVdGMgPSBtb21lbnQudXRjKGdldFNlcnZlck5vd1V0YygpLnRvSVNPU3RyaW5nKCkpXG5cdFx0Y29uc3QgdGltZVVudGlsRXhwaXJlcyA9IGV4cGlyZXNVdGMuZGlmZihub3dVdGMpXG5cdFx0Y29uc3QgaXNFeHBpcmluZ1Nvb24gPSB0aW1lVW50aWxFeHBpcmVzIDw9IGFwcENvbmZpZy5TRVNTSU9OX1JFRlJFU0hfVEhSRVNIT0xEXG5cblx0XHRpZiAoIWlzRXhwaXJpbmdTb29uKSB7XG5cdFx0XHRjb25zdCBleHBpcmVzU29vblV0YyA9IGV4cGlyZXNVdGMuc3VidHJhY3QoYXBwQ29uZmlnLlNFU1NJT05fUkVGUkVTSF9USFJFU0hPTEQsICdtaWxsaXNlY29uZHMnKVxuXHRcdFx0Ly8gdXNlIGEgbWF4IGRlbGF5LCBlLmcuIDEgbWluIGZvciA2MCBtaW4gdG9rZW4sIDEgc2VjIGZvciA2MCBzZWMgdG9rZW5cblx0XHRcdC8vIHRvIGhlbHAgcmVkdWNlIHRpbWVyIGRyaWZ0IHdoZW4gdGFiIGlzIGluIHRoZSBiYWNrZ3JvdW5kXG5cdFx0XHRjb25zdCBtYXhEZWxheSA9IChvYXV0aFRva2VuLmV4cGlyZXNfaW4gKiAxMDAwKSAvIDYwXG5cdFx0XHRjb25zdCBleHBpcmVzU29vbkRlbGF5ID0gTWF0aC5taW4obWF4RGVsYXksIGV4cGlyZXNTb29uVXRjLmRpZmYobm93VXRjKSlcblx0XHRcdGxvZ2dlci5kZWJ1ZyhgcmVmcmVzaExvb3AgZGVsYXk6IHdhaXQgZm9yIHRva2VuIHRvIGJlIGNsb3NlIHRvIGV4cGlyYXRpb24sIGRlbGF5aW5nICR7ZXhwaXJlc1Nvb25EZWxheX0gbXNgKVxuXHRcdFx0eWllbGQgZGVsYXkoZXhwaXJlc1Nvb25EZWxheSlcblx0XHRcdC8vIHJlc3RhcnQgbG9vcCB0byByZWNoZWNrIHRva2VuXG5cdFx0XHRjb25zdCBlbGFwc2VkID0gbW9tZW50LnV0YyhnZXRTZXJ2ZXJOb3dVdGMoKS50b0lTT1N0cmluZygpKS5kaWZmKG5vd1V0Yylcblx0XHRcdGxvZ2dlci5kZWJ1ZyhgcmVmcmVzaExvb3AgZGVsYXk6IGZpbmlzaGVkIGFmdGVyICR7ZWxhcHNlZH0gbXNgKVxuXHRcdFx0Y29udGludWVcblx0XHR9XG5cblx0XHRsb2dnZXIuZGVidWcoJ3JlZnJlc2hMb29wIGV4cGlyaW5nIHNvb24nKVxuXG5cdFx0Ly8gTk9URTogdXNlciBjYW4gbmV2ZXIgYmUgaWRsZSBvbiBMT0NBTCwgc28gbG9jYWwgc2Vzc2lvbnMgd2lsbCBzdGF5IGFsaXZlIGluZGVmaW5pdGVseVxuXHRcdGlmICghaXNVc2VySWRsZSgpKSB7XG5cdFx0XHRsb2dnZXIuZGVidWcoJ3JlZnJlc2hMb29wIHVzZXIgbm90IGlkbGUsIHRyaWdnZXIgYXV0by1yZWZyZXNoJylcblx0XHRcdC8vIGF1dG9tYXRpY2FsbHkgcmVmcmVzaCB0b2tlbiB0byBleHRlbmQgc2Vzc2lvbiBpZiB1c2VyIGlzIG5vdCBpZGxlXG5cdFx0XHRvYXV0aFRva2VuID0geWllbGQgY2FsbChwZXJmb3JtVG9rZW5SZWZyZXNoLCBvYXV0aFRva2VuKVxuXHRcdFx0Y29udGludWVcblx0XHR9XG5cblx0XHRsb2dnZXIuZGVidWcoJ3JlZnJlc2hMb29wIHVzZXIgaWRsZSwgdHJpZ2dlciBleHBpcmluZyBzb29uJylcblxuXHRcdC8vIGlmIHVzZXIgaXMgaWRsZSBhbmQgdG9rZW4gaXMgZXhwaXJpbmcgc29vbiwgc2VuZCBhY3Rpb24gdG8gZGlzcGxheSBFeHBpcmluZ1Nlc3Npb25BbGVydFxuXHRcdHlpZWxkIHB1dDxBdXRoQWN0aW9uPih7IHR5cGU6IEFVVEhfQUNUSU9OX1RZUEUuRVhQSVJJTkdfU09PTiB9KVxuXHRcdC8vIHRyYWNrIGxvY2FsIHN0YXRlIHRvIGJsb2NrIGF1dG8tcmVmcmVzaCBpbiBgZ2V0T0F1dGhUb2tlbmBcblx0XHRpc0V4cGlyaW5nU29vbkFsZXJ0VmlzaWJsZSA9IHRydWVcblxuXHRcdC8vIHdhaXQgZm9yIHVzZXIgdG8gdGFrZSBhbiBhY3Rpb24sIG9yIGZvciB0b2tlbiB0byBleHBpcmVcblx0XHQvLyBpZiB1c2VyIGxvZ3Mgb3V0LCB0aGUgcm9vdCBgYXV0aFNhZ2FgIHdpbGwgY2FuY2VsIHRoaXMgbG9vcFxuXHRcdGNvbnN0IHsgdG9rZW5FeHBpcmVkIH0gPSB5aWVsZCByYWNlKHtcblx0XHRcdGV4dGVuc2lvblJlcXVlc3RlZDogdGFrZShBVVRIX0FDVElPTl9UWVBFLkVYVEVOU0lPTl9SRVFVRVNURUQpLFxuXHRcdFx0dG9rZW5FeHBpcmVkOiBkZWxheSh0aW1lVW50aWxFeHBpcmVzKVxuXHRcdH0pXG5cdFx0aWYgKHRva2VuRXhwaXJlZCkge1xuXHRcdFx0bG9nZ2VyLmRlYnVnKCdyZWZyZXNoTG9vcCB0b2tlbiBleHBpcmVkLCB0cmlnZ2VyIGV4cGlyZWQgbG9nIG91dCcpXG5cdFx0XHQvLyB1c2VyIGZhaWxlZCB0byByZXF1ZXN0IGFuIGV4dGVuc2lvbiBhbmQgdG9rZW4gaXMgZXhwaXJlZFxuXHRcdFx0eWllbGQgcHV0PEF1dGhMb2dPdXRBY3Rpb24+KHsgdHlwZTogQVVUSF9MT0dfT1VUX0FDVElPTl9UWVBFLkxPR19PVVQsIHRva2VuRXhwaXJlZDogdHJ1ZSB9KVxuXHRcdFx0Ly8gYnJlYWsgbG9vcFxuXHRcdFx0YnJlYWtcblx0XHR9XG5cblx0XHRsb2dnZXIuZGVidWcoJ3JlZnJlc2hMb29wIHVzZXIgdHJpZ2dlciByZWZyZXNoJylcblxuXHRcdC8vIHVzZXIgcmVxdWVzdGVkIGV4dGVuc2lvbiwgdHJpZ2dlciB0b2tlbiByZWZyZXNoXG5cdFx0b2F1dGhUb2tlbiA9IHlpZWxkIGNhbGwocGVyZm9ybVRva2VuUmVmcmVzaCwgb2F1dGhUb2tlbilcblx0fVxuXG5cdGxvZ2dlci5kZWJ1ZygncmVmcmVzaExvb3AgZG9uZScpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKiBhdXRoU2FnYShcblx0YXV0aFBlcnNpc3RlbmNlU2VydmljZVBhcmFtOiBBdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLFxuXHR0aWNrZXRQcm92aWRlclNlcnZpY2U6IFRpY2tldFByb3ZpZGVyU2VydmljZSxcblx0Y29kZVByb3ZpZGVyU2VydmljZTogQ29kZVByb3ZpZGVyU2VydmljZSxcblx0ZXJyb3JIYW5kbGVyUGFyYW06IEVycm9ySGFuZGxlciB8IHVuZGVmaW5lZCA9IGRlZmF1bHRFcnJvckhhbmRsZXJcbik6IFNhZ2FJdGVyYXRvciB7XG5cdGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UgPSBhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlUGFyYW1cblx0ZXJyb3JIYW5kbGVyID0gZXJyb3JIYW5kbGVyUGFyYW1cblx0bG9nZ2VyID0gZ2V0TG9nZ2VyKClcblxuXHQvLyB0cnkgdG8gZ2V0IHBlcnNpc3RlZCB0b2tlbiAobm9ybWFsbHkgaW4gQXN5bmNTdG9yYWdlIG9yIExvY2FsU3RvcmFnZSlcblx0bGV0IG9hdXRoVG9rZW46IE9BdXRoVG9rZW5SZXNwb25zZSA9IHlpZWxkIGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5nZXRQZXJzaXN0ZWRUb2tlbilcblxuXHQvLyBpZiB0b2tlbiBpcyBleHBpcmVkLCB0cnkgdG8gcmVmcmVzaCBpdCBiZWZvcmUgaW5pdGlhbGl6aW5nIGF1dGhcblx0Ly8gaWYgdW5hYmxlIHRvIHJlZnJlc2gsIGNsZWFyIGRhdGEgYW5kIGluaXQgYXV0aCB3aXRoIG5vIHRva2VuXG5cdGlmIChpc1Rva2VuRXhwaXJlZChvYXV0aFRva2VuKSkge1xuXHRcdGlmIChpc1Rva2VuUmVmcmVzaGFibGUob2F1dGhUb2tlbikpIHtcblx0XHRcdG9hdXRoVG9rZW4gPSB5aWVsZCBjYWxsKHBlcmZvcm1Ub2tlblJlZnJlc2gsIG9hdXRoVG9rZW4pXG5cdFx0fSBlbHNlIHtcblx0XHRcdGxvZ2dlci5kZWJ1ZygndG9rZW4gZXhwaXJlZCwgY2xlYXIgcGVyc2lzdGVkIHVzZXIgZGF0YSBhbmQgdG9rZW4nKVxuXHRcdFx0b2F1dGhUb2tlbiA9IG51bGxcblx0XHRcdC8vIGNsZWFyIHRoZSBleHBpcmVkIHRva2VuIGFuZCB1c2VyIGRhdGEgZnJvbSBzdG9yYWdlXG5cdFx0XHR5aWVsZCBjYWxsKHJlc2V0RGF0YSlcblx0XHR9XG5cdH1cblxuXHQvLyBnZXQgYXV0aCBwYXJhbWV0ZXJzXG5cdGNvbnN0IGNhc1RpY2tldCA9IHRpY2tldFByb3ZpZGVyU2VydmljZS5nZXRUaWNrZXQoKVxuXHRjb25zdCBzZXJ2aWNlID0gdGlja2V0UHJvdmlkZXJTZXJ2aWNlLmdldEFwcFNlcnZpY2VOYW1lKClcblx0Y29uc3QgaGFzQ2FzVGlja2V0ID0gISFjYXNUaWNrZXQgJiYgISFzZXJ2aWNlXG5cblx0Y29uc3QgY29kZSA9IGNvZGVQcm92aWRlclNlcnZpY2UuZ2V0Q29kZSgpXG5cdGNvbnN0IHN0YXRlID0gY29kZVByb3ZpZGVyU2VydmljZS5nZXRTdGF0ZSgpXG5cblx0Ly8gYXV0by1sb2dpbiAvIFNTTyBmb3IgUHVyZHVlXG5cdGNvbnN0IHB1cmR1ZUlkZW50aXR5UHJvdmlkZXIgPSB5aWVsZCBjYWxsKGdldFB1cmR1ZUlkZW50aXR5UHJvdmlkZXJGcm9tTG9jYXRpb24pXG5cdGlmIChwdXJkdWVJZGVudGl0eVByb3ZpZGVyKSB7XG5cdFx0Y29uc3QgaXNQdXJkdWVBdXRvTG9naW5SZXF1ZXN0ZWQ6IGJvb2xlYW4gPSB5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UuZ2V0SXNQdXJkdWVBdXRvTG9naW5SZXF1ZXN0ZWQpXG5cblx0XHQvLyBzdGFydCBhdXRvLWxvZ2luIC8gU1NPLCBpZiBub3QgYWxyZWFkeSByZXF1ZXN0ZWQsIG5vdCBhdXRoZW50aWNhdGVkLCBhbmQgaGFzIG5vIHZhbGlkIGF1dGggcGFyYW1ldGVyc1xuXHRcdGlmICghaXNQdXJkdWVBdXRvTG9naW5SZXF1ZXN0ZWQgJiYgIW9hdXRoVG9rZW4gJiYgIWhhc0Nhc1RpY2tldCAmJiAhY29kZSkge1xuXHRcdFx0eWllbGQgY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RJc1B1cmR1ZUF1dG9Mb2dpblJlcXVlc3RlZCwgdHJ1ZSlcblx0XHRcdC8vIHN0b3JlIHBhdGhuYW1lIGZvciBwb3N0LWxvZ2luIHJlZGlyZWN0IGlmIG5vdCBhbHJlYWR5IHNldFxuXHRcdFx0Ly8gY291bGQgaGF2ZSBiZWVuIHNldCBmcm9tIHVzZXIgbG9nZ2luZyBvdXQsIHNlZSBgQXV0aGVudGljYXRlZENvbXBvbmVudGBcblx0XHRcdGNvbnN0IHJldHVyblVybCA9IHlpZWxkIGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5nZXRSZXR1cm5VcmwpXG5cdFx0XHRpZiAoIXJldHVyblVybCkge1xuXHRcdFx0XHR5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdFJldHVyblVybCwgd2luZG93U2VydmljZS5nZXRMb2NhdGlvbigpLnBhdGhuYW1lKVxuXHRcdFx0fVxuXHRcdFx0eWllbGQgY2FsbCh3aW5kb3dTZXJ2aWNlLnJlcGxhY2UsIHB1cmR1ZUlkZW50aXR5UHJvdmlkZXIubG9naW5VcmwpXG5cdFx0XHRyZXR1cm5cblx0XHR9XG5cblx0XHQvLyBmaW5pc2ggYXV0by1sb2dpbiBwcm9jZXNzLCBpZiBpdCB3YXMgcmVxdWVzdGVkIGFuZCBoYXMgYSB2YWxpZCBhdXRoIHBhcmFtZXRlclxuXHRcdGlmIChpc1B1cmR1ZUF1dG9Mb2dpblJlcXVlc3RlZCAmJiAoaGFzQ2FzVGlja2V0IHx8IGNvZGUpKSB7XG5cdFx0XHR5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdElzUHVyZHVlQXV0b0xvZ2luUmVxdWVzdGVkLCBmYWxzZSlcblx0XHRcdC8vIHBlcnNpc3QgUHVyZHVlIGlkZW50aXR5UHJvdmlkZXIgZm9yIGBpZGVudGl0eVByb3ZpZGVyU2FnYWAgbG9nb3V0IGxvZ2ljXG5cdFx0XHR5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdElkZW50aXR5UHJvdmlkZXIsIHB1cmR1ZUlkZW50aXR5UHJvdmlkZXIpXG5cdFx0XHQvLyBjb250aW51ZSB0byBleGNoYW5naW5nIENBUyBgdGlja2V0YCBvciBgY29kZWAgZm9yIHRva2VuXG5cdFx0fVxuXHR9XG5cblx0Ly8gaWYgQ0FTIHRpY2tldCBleGlzdHMgKG5vcm1hbGx5IGluIHRoZSBVUkwpLCB1c2UgaXQgdG8gZ2V0IGEgbmV3IHRva2VuXG5cdGlmIChoYXNDYXNUaWNrZXQpIHtcblx0XHR0aWNrZXRQcm92aWRlclNlcnZpY2UucmVtb3ZlVGlja2V0KClcblxuXHRcdC8vIGNsZWFyIHRoZSBjdXJyZW50IHRva2VuIGFuZCB1c2VyIGRhdGEgaWYgYSBuZXcgdG9rZW4gaXMgYWJvdXQgdG8gYmUgZ2VuZXJhdGVkXG5cdFx0aWYgKG9hdXRoVG9rZW4pIHtcblx0XHRcdHlpZWxkIGNhbGwocmVzZXREYXRhKVxuXHRcdFx0b2F1dGhUb2tlbiA9IG51bGxcblx0XHR9XG5cdFx0b2F1dGhUb2tlbiA9IHlpZWxkIGNhbGwoY2FzVGlja2V0TG9naW5GbG93LCBjYXNUaWNrZXQsIHNlcnZpY2UpXG5cdFx0aWYgKG9hdXRoVG9rZW4pIHtcblx0XHRcdHlpZWxkIGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0VG9rZW4sIG9hdXRoVG9rZW4pXG5cdFx0fVxuXHR9XG5cblx0Ly8gaWYgT0F1dGggQ29kZSBleGlzdHMgKG5vcm1hbGx5IGluIHRoZSBVUkwpLCB1c2UgaXQgdG8gZ2V0IGEgbmV3IHRva2VuXG5cdGlmIChjb2RlKSB7XG5cdFx0Y29kZVByb3ZpZGVyU2VydmljZS5yZW1vdmVDb2RlQW5kU3RhdGUoKVxuXG5cdFx0Ly8gY2xlYXIgdGhlIGN1cnJlbnQgdG9rZW4gYW5kIHVzZXIgZGF0YSBpZiBhIG5ldyB0b2tlbiBpcyBhYm91dCB0byBiZSBnZW5lcmF0ZWRcblx0XHRpZiAob2F1dGhUb2tlbikge1xuXHRcdFx0eWllbGQgY2FsbChyZXNldERhdGEpXG5cdFx0XHRvYXV0aFRva2VuID0gbnVsbFxuXHRcdH1cblxuXHRcdC8vIGlmIE9BdXRoIHN0YXRlIGV4aXN0cyAobm9ybWFsbHkgaW4gdGhlIFVSTCksIHVzZSBpdCBpbiBhZGRpdGlvbiB0byB0aGUgY29kZSBmb3IgUEtDRSBsb2dpbiBmbG93XG5cdFx0aWYgKHN0YXRlKSB7XG5cdFx0XHRvYXV0aFRva2VuID0geWllbGQgY2FsbChnZXRUb2tlbkZyb21Db2RlQW5kU3RhdGUsIGNvZGUsIHN0YXRlKVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRvYXV0aFRva2VuID0geWllbGQgY2FsbChnZXRUb2tlbkZyb21Db2RlLCBjb2RlKVxuXHRcdH1cblxuXHRcdGlmIChvYXV0aFRva2VuKSB7XG5cdFx0XHR5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdFRva2VuLCBvYXV0aFRva2VuKVxuXHRcdH1cblx0fVxuXG5cdHlpZWxkIHB1dDxBdXRoVG9rZW5BY3Rpb24+KHsgdHlwZTogQVVUSF9UT0tFTl9BQ1RJT05fVFlQRS5BVVRIX0lOSVRJQUxJWkVELCBvYXV0aFRva2VuIH0pXG5cblx0eWllbGQgdGFrZUV2ZXJ5KE1PREVMX0ZFVENIX0VSUk9SX0FDVElPTl9UWVBFLlRSWV9GRVRDSF9GQUlMRUQsIGhhbmRsZUF1dGhGYWlsdXJlKVxuXG5cdGRvIHtcblx0XHRpZiAoIW9hdXRoVG9rZW4pIHtcblx0XHRcdGNvbnN0IHtcblx0XHRcdFx0Y2FzVjFBY3Rpb24sXG5cdFx0XHRcdGxvY2FsTG9naW5BY3Rpb24sXG5cdFx0XHRcdHBrY2VMb2dpbkFjdGlvblxuXHRcdFx0fToge1xuXHRcdFx0XHRjYXNWMUFjdGlvbj86IEF1dGhDYXNWMUxvZ2luUmVxdWVzdEFjdGlvblxuXHRcdFx0XHRsb2NhbExvZ2luQWN0aW9uPzogQXV0aExvY2FsTG9naW5SZXF1ZXN0QWN0aW9uXG5cdFx0XHRcdHBrY2VMb2dpbkFjdGlvbj86IEF1dGhQS0NFTG9naW5SZXF1ZXN0QWN0aW9uXG5cdFx0XHR9ID0geWllbGQgcmFjZSh7XG5cdFx0XHRcdGNhc1YxQWN0aW9uOiB0YWtlKEFVVEhfQ0FTX1YxX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUuQ0FTX1YxX0xPR0lOX1JFUVVFU1QpLFxuXHRcdFx0XHRsb2NhbExvZ2luQWN0aW9uOiB0YWtlKEFVVEhfTE9DQUxfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRS5MT0NBTF9MT0dJTl9SRVFVRVNUKSxcblx0XHRcdFx0cGtjZUxvZ2luQWN0aW9uOiB0YWtlKEFVVEhfUEtDRV9MT0dJTl9SRVFVRVNUX0FDVElPTl9UWVBFLlBLQ0VfTE9HSU5fUkVRVUVTVClcblx0XHRcdH0pXG5cblx0XHRcdHlpZWxkIHB1dDxBdXRoQWN0aW9uPih7IHR5cGU6IEFVVEhfQUNUSU9OX1RZUEUuTE9HSU5fUkVRVUVTVEVEIH0pXG5cdFx0XHRpZiAoY2FzVjFBY3Rpb24pIHtcblx0XHRcdFx0b2F1dGhUb2tlbiA9IHlpZWxkIGNhbGwoY2FzVjFMb2dpbkZsb3csIGNhc1YxQWN0aW9uKVxuXHRcdFx0fSBlbHNlIGlmIChsb2NhbExvZ2luQWN0aW9uKSB7XG5cdFx0XHRcdG9hdXRoVG9rZW4gPSB5aWVsZCBjYWxsKGxvY2FsTG9naW5GbG93LCBsb2NhbExvZ2luQWN0aW9uKVxuXHRcdFx0fSBlbHNlIGlmIChwa2NlTG9naW5BY3Rpb24pIHtcblx0XHRcdFx0Ly8gb2F1dGhUb2tlbiBpcyBub3QgcmV0dXJuZWQgaGVyZSwgYXMgdGhpcyBmbG93IHdpbGwgcmVzdWx0IGluIGEgd2luZG93IHJlZGlyZWN0XG5cdFx0XHRcdHlpZWxkIGNhbGwocGtjZUxvZ2luRmxvdywgcGtjZUxvZ2luQWN0aW9uKVxuXHRcdFx0XHQvLyBicmVhayBleGVjdXRpb25cblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKG9hdXRoVG9rZW4pIHtcblx0XHRcdHlpZWxkIGFsbCh7XG5cdFx0XHRcdHBlcnNpc3RUb2tlbjogY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RUb2tlbiwgb2F1dGhUb2tlbiksXG5cdFx0XHRcdGxvZ2luU3VjY2VzczogcHV0PEF1dGhUb2tlblN1Y2Nlc3NBY3Rpb24+KHtcblx0XHRcdFx0XHR0eXBlOiBBVVRIX1RPS0VOX1NVQ0NFU1NfQUNUSU9OX1RZUEUuR0VUX1RPS0VOX1NVQ0NFRURFRCxcblx0XHRcdFx0XHRvYXV0aFRva2VuXG5cdFx0XHRcdH0pXG5cdFx0XHR9KVxuXG5cdFx0XHQvLyBzdGFydCBub24tYmxvY2tpbmcgcmVmcmVzaCBsb29wXG5cdFx0XHRjb25zdCByZWZyZXNoTG9vcFRhc2s6IFRhc2sgPSB5aWVsZCBmb3JrKHJlZnJlc2hMb29wKVxuXG5cdFx0XHQvLyBpZiB1c2VyIGxvZ3Mgb3V0IG9yIHRva2VuIGV4cGlyZXMsIGNhbmNlbCB0aGUgcmVmcmVzaCBsb29wXG5cdFx0XHR5aWVsZCB0YWtlKEFVVEhfTE9HX09VVF9BQ1RJT05fVFlQRS5MT0dfT1VUKVxuXHRcdFx0eWllbGQgY2FuY2VsKHJlZnJlc2hMb29wVGFzaylcblx0XHR9IGVsc2Uge1xuXHRcdFx0eWllbGQgcHV0PEF1dGhBY3Rpb24+KHsgdHlwZTogQVVUSF9BQ1RJT05fVFlQRS5MT0dJTl9GQUlMRUQgfSlcblx0XHR9XG5cblx0XHR5aWVsZCBjYWxsKHJlc2V0RGF0YSlcblx0XHRvYXV0aFRva2VuID0gbnVsbFxuXHR9IHdoaWxlICh0cnVlKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFBQSxlQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxjQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFVQSxJQUFBTSxLQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxLQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxNQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxPQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxJQUFBLEdBQUFWLE9BQUE7QUFD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QkFBZ0IsRUFBRSxJQUFBbEosYUFBSSxFQUFDc0osNkNBQW9DLENBQUNDLG1CQUFtQixDQUFDO1VBQ2hGSixlQUFlLEVBQUUsSUFBQW5KLGFBQUksRUFBQ3dKLDRDQUFtQyxDQUFDQyxrQkFBa0I7UUFDN0UsQ0FBQyxDQUFDO1FBRUYsTUFBTSxJQUFBbkssWUFBRyxFQUFhO1VBQUVDLElBQUksRUFBRWdELHlCQUFnQixDQUFDbUg7UUFBZ0IsQ0FBQyxDQUFDO1FBQ2pFLElBQUlULFdBQVcsRUFBRTtVQUNoQi9HLFVBQVUsR0FBRyxNQUFNLElBQUEzQixhQUFJLEVBQUNzRCxjQUFjLEVBQUVvRixXQUFXLENBQUM7UUFDckQsQ0FBQyxNQUFNLElBQUlDLGdCQUFnQixFQUFFO1VBQzVCaEgsVUFBVSxHQUFHLE1BQU0sSUFBQTNCLGFBQUksRUFBQ3VELGNBQWMsRUFBRW9GLGdCQUFnQixDQUFDO1FBQzFELENBQUMsTUFBTSxJQUFJQyxlQUFlLEVBQUU7VUFDM0I7VUFDQSxNQUFNLElBQUE1SSxhQUFJLEVBQUM0RCxhQUFhLEVBQUVnRixlQUFlLENBQUM7VUFDMUM7VUFDQTtRQUNEO01BQ0Q7TUFFQSxJQUFJakgsVUFBVSxFQUFFO1FBQ2YsTUFBTSxJQUFBZSxZQUFHLEVBQUM7VUFDVEQsWUFBWSxFQUFFLElBQUF6QyxhQUFJLEVBQUNqQyxzQkFBc0IsQ0FBQzBFLFlBQVksRUFBRWQsVUFBVSxDQUFDO1VBQ25FeUgsWUFBWSxFQUFFLElBQUFySyxZQUFHLEVBQXlCO1lBQ3pDQyxJQUFJLEVBQUU2Qyx1Q0FBOEIsQ0FBQ3dILG1CQUFtQjtZQUN4RDFIO1VBQ0QsQ0FBQztRQUNGLENBQUMsQ0FBQzs7UUFFRjtRQUNBLE1BQU0ySCxlQUFxQixHQUFHLE1BQU0sSUFBQUMsYUFBSSxFQUFDNUQsV0FBVyxDQUFDOztRQUVyRDtRQUNBLE1BQU0sSUFBQWxHLGFBQUksRUFBQ21ELGlDQUF3QixDQUFDQyxPQUFPLENBQUM7UUFDNUMsTUFBTSxJQUFBMkcsZUFBTSxFQUFDRixlQUFlLENBQUM7TUFDOUIsQ0FBQyxNQUFNO1FBQ04sTUFBTSxJQUFBdkssWUFBRyxFQUFhO1VBQUVDLElBQUksRUFBRWdELHlCQUFnQixDQUFDeUg7UUFBYSxDQUFDLENBQUM7TUFDL0Q7TUFFQSxNQUFNLElBQUF6SixhQUFJLEVBQUN1RixTQUFTLENBQUM7TUFDckI1RCxVQUFVLEdBQUcsSUFBSTtJQUNsQixDQUFDLFFBQVEsSUFBSTtFQUNkLENBQUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
563
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50VGltZXpvbmUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9lZmZlY3RzIiwiX3V1aWQiLCJfY29uc3RhbnRzIiwiX3dpbmRvd1NlcnZpY2UiLCJfdHlwZXMiLCJfYXV0aCIsIl9kYXRlIiwiX2Vycm9yIiwiX2xvZ2dlciIsIl91cmwiLCJfdXNlckFjdGl2aXR5IiwiX2FjdGlvbnMiLCJtYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkIiwiYWN0aW9uIiwibW9kZWxOYW1lIiwiaXNUcmFuc2llbnRNb2RlbEZldGNoUmVzdWx0QWN0aW9uIiwibW9kZWxQYXRoIiwiZXhwb3J0cyIsInRha2VNYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkIiwiaW5jb21pbmdBY3Rpb24iLCJtYXRjaGVzTW9kZWxGZXRjaEZhaWxlZCIsImlzVHJhbnNpZW50TW9kZWxGZXRjaEVycm9yQWN0aW9uIiwidGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkIiwiZGVmYXVsdEVycm9ySGFuZGxlciIsImF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UiLCJlcnJvckhhbmRsZXIiLCJsb2dnZXIiLCJnZXRUb2tlbkZyb21Db2RlIiwiY29kZSIsImFwcENvbmZpZyIsImdldEFwcENvbmZpZyIsIkNMSUVOVF9JRCIsIkNMSUVOVF9TRUNSRVQiLCJFcnJvciIsImdldFRva2VuTW9kZWxOYW1lIiwiZm9ybUJvZHkiLCJVUkxTZWFyY2hQYXJhbXMiLCJncmFudF90eXBlIiwiY2xpZW50X2lkIiwiY2xpZW50X3NlY3JldCIsInB1dCIsInR5cGUiLCJNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFIiwiRkVUQ0hfUkVRVUVTVCIsImJvZHkiLCJ0b1N0cmluZyIsIm5vU3RvcmUiLCJmZXRjaFJlc3VsdEFjdGlvbiIsImZldGNoRXJyb3JBY3Rpb24iLCJyYWNlIiwidGFrZSIsImRhdGEiLCJnZXRUb2tlbkZyb21Db2RlQW5kU3RhdGUiLCJzdGF0ZSIsIk9BVVRIX1BLQ0VfU0NPUEUiLCJPQVVUSF9QS0NFX0VORFBPSU5UIiwiY29kZVZlcmlmaWVyIiwiY2FsbCIsImdldFBlcnNpc3RlZENvZGVWZXJpZmllciIsInBlcnNpc3RlZFN0YXRlIiwiZ2V0UGVyc2lzdGVkU3RhdGUiLCJwZXJzaXN0U3RhdGUiLCJwZXJzaXN0Q29kZVZlcmlmaWVyIiwibG9jYXRpb24iLCJ3aW5kb3dTZXJ2aWNlIiwiZ2V0TG9jYXRpb24iLCJzY29wZSIsImNvZGVfdmVyaWZpZXIiLCJyZWRpcmVjdF91cmkiLCJvcmlnaW4iLCJnZXRUb2tlbkZyb21SZWZyZXNoVG9rZW4iLCJvYXV0aFRva2VuUGFyYW0iLCJyZWZyZXNoX3Rva2VuIiwiYXBwZW5kIiwiZXJyb3JEYXRhIiwic3RhdHVzIiwiSFRUUF9TVEFUVVNfQ09ERSIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsImlzRXhwaXJpbmdTb29uQWxlcnRWaXNpYmxlIiwicmVmcmVzaExvY2siLCJwcmV2aW91c1JlZnJlc2hUb2tlbiIsInJlc2V0UmVmcmVzaCIsInVuZGVmaW5lZCIsInBlcmZvcm1Ub2tlblJlZnJlc2giLCJvYXV0aFRva2VuIiwicmVmcmVzaFN1Y2Nlc3MiLCJBVVRIX1RPS0VOX1NVQ0NFU1NfQUNUSU9OX1RZUEUiLCJUT0tFTl9SRUZSRVNIX1NVQ0NFRURFRCIsInJlZnJlc2hGYWlsZWQiLCJBVVRIX0FDVElPTl9UWVBFIiwiVE9LRU5fUkVGUkVTSF9GQUlMRUQiLCJnZXRQZXJzaXN0ZWRUb2tlbiIsImRlYnVnIiwib3JpZ2luYWxBY2Nlc3NUb2tlbiIsImFjY2Vzc190b2tlbiIsInJldHJ5RGVsYXkiLCJkZWxheSIsIm9hdXRoVG9rZW5SZXNwb25zZSIsInBlcnNpc3RUb2tlbiIsImFsbCIsImxvZ091dCIsIkFVVEhfTE9HX09VVF9BQ1RJT05fVFlQRSIsIkxPR19PVVQiLCJ0b2tlbkV4cGlyZWQiLCJjYXVnaHRFcnJvciIsImVycm9yIiwiY29uc3RydWN0RXJyb3JGcm9tQ2F1Z2h0RXJyb3IiLCJsb2dpbkZsb3ciLCJtb2RlbEZldGNoUmVxdWVzdEFjdGlvbiIsImNyZWRlbnRpYWxzTG9naW5GbG93Iiwibm9SZXRyeSIsImxvY2FsTG9naW5GbG93IiwicGtjZUxvZ2luRmxvdyIsIl8iLCJ1dWlkdjQiLCJzaGEyNTZDb2RlVmVyaWZpZXIiLCJzaGEyNTZBc3luYyIsImNvZGVDaGFsbGVuZ2UiLCJiYXNlNjRVcmxFbmNvZGUiLCJwa2NlQXV0aFJlZGlyZWN0VVJMIiwicmVzcG9uc2VfdHlwZSIsImNvZGVfY2hhbGxlbmdlIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIiwicmVwbGFjZSIsImhhbmRsZUF1dGhGYWlsdXJlIiwiVU5BVVRIT1JJWkVEIiwiaXNUb2tlbkV4cGlyZWQiLCJpc1Rva2VuUmVmcmVzaGFibGUiLCJpc1VzZXJJZGxlIiwiZ2V0T0F1dGhUb2tlbiIsImV4cGlyZXNVdGMiLCJtb21lbnQiLCJ1dGMiLCJub3dVdGMiLCJnZXRTZXJ2ZXJOb3dVdGMiLCJ0b0lTT1N0cmluZyIsImlzRXhwaXJpbmdTb29uIiwiZGlmZiIsIlNFU1NJT05fUkVGUkVTSF9USFJFU0hPTEQiLCJyZXNldERhdGEiLCJjbGVhclVzZXJEYXRhIiwiTU9ERUxfUkVNT1ZFX0tFWV9BQ1RJT05fVFlQRSIsImNsZWFyUGVyc2lzdGVudFRva2VuIiwicmVmcmVzaExvb3AiLCJpc0V4cGlyZWQiLCJpc1JlZnJlc2hhYmxlIiwidGltZVVudGlsRXhwaXJlcyIsImV4cGlyZXNTb29uVXRjIiwic3VidHJhY3QiLCJtYXhEZWxheSIsImV4cGlyZXNfaW4iLCJleHBpcmVzU29vbkRlbGF5IiwiTWF0aCIsIm1pbiIsImVsYXBzZWQiLCJFWFBJUklOR19TT09OIiwiZXh0ZW5zaW9uUmVxdWVzdGVkIiwiRVhURU5TSU9OX1JFUVVFU1RFRCIsImF1dGhTYWdhIiwiYXV0aFBlcnNpc3RlbmNlU2VydmljZVBhcmFtIiwiY29kZVByb3ZpZGVyU2VydmljZSIsImVycm9ySGFuZGxlclBhcmFtIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZ2V0TG9nZ2VyIiwiZ2V0Q29kZSIsImdldFN0YXRlIiwicHVyZHVlSWRlbnRpdHlQcm92aWRlciIsImdldFB1cmR1ZUlkZW50aXR5UHJvdmlkZXJGcm9tTG9jYXRpb24iLCJpc1B1cmR1ZUF1dG9Mb2dpblJlcXVlc3RlZCIsImdldElzUHVyZHVlQXV0b0xvZ2luUmVxdWVzdGVkIiwicGVyc2lzdElzUHVyZHVlQXV0b0xvZ2luUmVxdWVzdGVkIiwicmV0dXJuVXJsIiwiZ2V0UmV0dXJuVXJsIiwicGVyc2lzdFJldHVyblVybCIsInBhdGhuYW1lIiwibG9naW5VcmwiLCJwZXJzaXN0SWRlbnRpdHlQcm92aWRlciIsInJlbW92ZUNvZGVBbmRTdGF0ZSIsIkFVVEhfVE9LRU5fQUNUSU9OX1RZUEUiLCJBVVRIX0lOSVRJQUxJWkVEIiwidGFrZUV2ZXJ5IiwiTU9ERUxfRkVUQ0hfRVJST1JfQUNUSU9OX1RZUEUiLCJUUllfRkVUQ0hfRkFJTEVEIiwibG9jYWxMb2dpbkFjdGlvbiIsInBrY2VMb2dpbkFjdGlvbiIsIkFVVEhfTE9DQUxfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSIsIkxPQ0FMX0xPR0lOX1JFUVVFU1QiLCJBVVRIX1BLQ0VfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSIsIlBLQ0VfTE9HSU5fUkVRVUVTVCIsIkxPR0lOX1JFUVVFU1RFRCIsImxvZ2luU3VjY2VzcyIsIkdFVF9UT0tFTl9TVUNDRUVERUQiLCJyZWZyZXNoTG9vcFRhc2siLCJmb3JrIiwiY2FuY2VsIiwiTE9HSU5fRkFJTEVEIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlZHV4L3NhZ2FzL2F1dGhTYWdhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhZ2FJdGVyYXRvciwgVGFzayB9IGZyb20gJ0ByZWR1eC1zYWdhL2NvcmUnXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC10aW1lem9uZSdcbmltcG9ydCB7IEFueUFjdGlvbiB9IGZyb20gJ3JlZHV4J1xuaW1wb3J0IHsgYWxsLCBjYWxsLCBjYW5jZWwsIGRlbGF5LCBmb3JrLCBwdXQsIHJhY2UsIHRha2UsIHRha2VFdmVyeSB9IGZyb20gJ3JlZHV4LXNhZ2EvZWZmZWN0cydcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnXG5pbXBvcnQgeyBnZXRBcHBDb25maWcgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnXG5pbXBvcnQgeyB3aW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2luZG93U2VydmljZSdcbmltcG9ydCB7XG5cdEF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UsXG5cdENvZGVQcm92aWRlclNlcnZpY2UsXG5cdEVycm9ySGFuZGxlcixcblx0SFRUUF9TVEFUVVNfQ09ERSxcblx0T0F1dGhUb2tlbixcblx0T0F1dGhUb2tlblJlc3BvbnNlLFxuXHRUb2tlbkFjY2Vzc0Z1bmN0aW9uXG59IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0UHVyZHVlSWRlbnRpdHlQcm92aWRlckZyb21Mb2NhdGlvbiwgaXNUb2tlbkV4cGlyZWQsIGlzVG9rZW5SZWZyZXNoYWJsZSB9IGZyb20gJy4uLy4uL3V0aWxzL2F1dGgnXG5pbXBvcnQgeyBnZXRTZXJ2ZXJOb3dVdGMgfSBmcm9tICcuLi8uLi91dGlscy9kYXRlJ1xuaW1wb3J0IHsgY29uc3RydWN0RXJyb3JGcm9tQ2F1Z2h0RXJyb3IgfSBmcm9tICcuLi8uLi91dGlscy9lcnJvcidcbmltcG9ydCB7IGdldExvZ2dlciwgTG9nZ2VyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9nZ2VyJ1xuaW1wb3J0IHsgYmFzZTY0VXJsRW5jb2RlLCBzaGEyNTZBc3luYyB9IGZyb20gJy4uLy4uL3V0aWxzL3VybCdcbmltcG9ydCB7IGlzVXNlcklkbGUgfSBmcm9tICcuLi8uLi91dGlscy91c2VyQWN0aXZpdHknXG5pbXBvcnQge1xuXHRBVVRIX0FDVElPTl9UWVBFLFxuXHRBVVRIX0xPQ0FMX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUsXG5cdEFVVEhfTE9HX09VVF9BQ1RJT05fVFlQRSxcblx0QVVUSF9QS0NFX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUsXG5cdEFVVEhfVE9LRU5fQUNUSU9OX1RZUEUsXG5cdEFVVEhfVE9LRU5fU1VDQ0VTU19BQ1RJT05fVFlQRSxcblx0QXV0aEFjdGlvbixcblx0QXV0aExvY2FsTG9naW5SZXF1ZXN0QWN0aW9uLFxuXHRBdXRoTG9nT3V0QWN0aW9uLFxuXHRBdXRoUEtDRUxvZ2luUmVxdWVzdEFjdGlvbixcblx0QXV0aFRva2VuQWN0aW9uLFxuXHRBdXRoVG9rZW5TdWNjZXNzQWN0aW9uLFxuXHRpc1RyYW5zaWVudE1vZGVsRmV0Y2hFcnJvckFjdGlvbixcblx0aXNUcmFuc2llbnRNb2RlbEZldGNoUmVzdWx0QWN0aW9uLFxuXHRNT0RFTF9GRVRDSF9FUlJPUl9BQ1RJT05fVFlQRSxcblx0TU9ERUxfRkVUQ0hfUkVRVUVTVF9BQ1RJT05fVFlQRSxcblx0TU9ERUxfUkVNT1ZFX0tFWV9BQ1RJT05fVFlQRSxcblx0TW9kZWxGZXRjaEVycm9yQWN0aW9uLFxuXHRNb2RlbEZldGNoUmVxdWVzdEFjdGlvbixcblx0TW9kZWxGZXRjaFJlc3VsdEFjdGlvbixcblx0TW9kZWxSZW1vdmVLZXlBY3Rpb25cbn0gZnJvbSAnLi4vYWN0aW9ucydcblxuLy8jcmVnaW9uIEhlbHBlcnNcblxuZXhwb3J0IGNvbnN0IG1hdGNoZXNNb2RlbEZldGNoUmVjZWl2ZWQgPSAoYWN0aW9uOiBBbnlBY3Rpb24sIG1vZGVsTmFtZTogc3RyaW5nKSA9PlxuXHRpc1RyYW5zaWVudE1vZGVsRmV0Y2hSZXN1bHRBY3Rpb24oYWN0aW9uKSAmJiBhY3Rpb24ubW9kZWxQYXRoID09PSBtb2RlbE5hbWVcblxuZXhwb3J0IGNvbnN0IHRha2VNYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkID0gKG1vZGVsTmFtZTogc3RyaW5nKSA9PiAoaW5jb21pbmdBY3Rpb246IEFueUFjdGlvbikgPT5cblx0bWF0Y2hlc01vZGVsRmV0Y2hSZWNlaXZlZChpbmNvbWluZ0FjdGlvbiwgbW9kZWxOYW1lKVxuXG5leHBvcnQgY29uc3QgbWF0Y2hlc01vZGVsRmV0Y2hGYWlsZWQgPSAoYWN0aW9uOiBBbnlBY3Rpb24sIG1vZGVsTmFtZTogc3RyaW5nKSA9PlxuXHRpc1RyYW5zaWVudE1vZGVsRmV0Y2hFcnJvckFjdGlvbihhY3Rpb24pICYmIGFjdGlvbi5tb2RlbFBhdGggPT09IG1vZGVsTmFtZVxuXG5leHBvcnQgY29uc3QgdGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkID0gKG1vZGVsTmFtZTogc3RyaW5nKSA9PiAoaW5jb21pbmdBY3Rpb246IEFueUFjdGlvbikgPT5cblx0bWF0Y2hlc01vZGVsRmV0Y2hGYWlsZWQoaW5jb21pbmdBY3Rpb24sIG1vZGVsTmFtZSlcblxuLy8jZW5kcmVnaW9uIEhlbHBlcnNcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0RXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXIgPSAoKSA9PiB7XG5cdHJldHVyblxufVxuXG5sZXQgYXV0aFBlcnNpc3RlbmNlU2VydmljZTogQXV0aFBlcnNpc3RlbmNlU2VydmljZVxubGV0IGVycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyXG5sZXQgbG9nZ2VyOiBMb2dnZXJcblxuZXhwb3J0IGZ1bmN0aW9uKiBnZXRUb2tlbkZyb21Db2RlKGNvZGU6IHN0cmluZyk6IFNhZ2FJdGVyYXRvciB7XG5cdGNvbnN0IGFwcENvbmZpZyA9IGdldEFwcENvbmZpZygpXG5cdGlmICghYXBwQ29uZmlnLkNMSUVOVF9JRCB8fCAhYXBwQ29uZmlnLkNMSUVOVF9TRUNSRVQpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ0NMSUVOVF9JRCBhbmQgQ0xJRU5UX1NFQ1JFVCBhcmUgcmVxdWlyZWQgaW4gQXBwQ29uZmlnJylcblx0fVxuXHRjb25zdCBnZXRUb2tlbk1vZGVsTmFtZSA9ICdnZXRUb2tlbidcblx0Y29uc3QgZm9ybUJvZHkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcblx0XHRncmFudF90eXBlOiAnYXV0aG9yaXphdGlvbl9jb2RlJyxcblx0XHRjbGllbnRfaWQ6IGFwcENvbmZpZy5DTElFTlRfSUQsXG5cdFx0Y2xpZW50X3NlY3JldDogYXBwQ29uZmlnLkNMSUVOVF9TRUNSRVQsXG5cdFx0Y29kZTogY29kZVxuXHR9KVxuXHR5aWVsZCBwdXQ8TW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24+KHtcblx0XHR0eXBlOiBNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFLkZFVENIX1JFUVVFU1QsXG5cdFx0bW9kZWxOYW1lOiBnZXRUb2tlbk1vZGVsTmFtZSxcblx0XHRib2R5OiBmb3JtQm9keS50b1N0cmluZygpLFxuXHRcdG5vU3RvcmU6IHRydWVcblx0fSlcblx0Y29uc3Qge1xuXHRcdGZldGNoUmVzdWx0QWN0aW9uLFxuXHRcdGZldGNoRXJyb3JBY3Rpb25cblx0fTogeyBmZXRjaFJlc3VsdEFjdGlvbj86IE1vZGVsRmV0Y2hSZXN1bHRBY3Rpb247IGZldGNoRXJyb3JBY3Rpb24/OiBNb2RlbEZldGNoRXJyb3JBY3Rpb24gfSA9IHlpZWxkIHJhY2Uoe1xuXHRcdGZldGNoUmVzdWx0QWN0aW9uOiB0YWtlKHRha2VNYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkKGdldFRva2VuTW9kZWxOYW1lKSksXG5cdFx0ZmV0Y2hFcnJvckFjdGlvbjogdGFrZSh0YWtlTWF0Y2hlc01vZGVsRmV0Y2hGYWlsZWQoZ2V0VG9rZW5Nb2RlbE5hbWUpKVxuXHR9KVxuXHRpZiAoZmV0Y2hFcnJvckFjdGlvbiB8fCAhZmV0Y2hSZXN1bHRBY3Rpb24/LmRhdGEpIHtcblx0XHRyZXR1cm4gbnVsbFxuXHR9XG5cdHJldHVybiBmZXRjaFJlc3VsdEFjdGlvbi5kYXRhXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogZ2V0VG9rZW5Gcm9tQ29kZUFuZFN0YXRlKGNvZGU6IHN0cmluZywgc3RhdGU6IHN0cmluZyk6IFNhZ2FJdGVyYXRvciB7XG5cdGNvbnN0IGFwcENvbmZpZyA9IGdldEFwcENvbmZpZygpXG5cdGlmICghYXBwQ29uZmlnLkNMSUVOVF9JRCB8fCAhYXBwQ29uZmlnLk9BVVRIX1BLQ0VfU0NPUEUgfHwgIWFwcENvbmZpZy5PQVVUSF9QS0NFX0VORFBPSU5UKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdDTElFTlRfSUQsIE9BVVRIX1BLQ0VfU0NPUEUsIGFuZCBPQVVUSF9QS0NFX0VORFBPSU5UIGFyZSByZXF1aXJlZCBpbiBBcHBDb25maWcnKVxuXHR9XG5cblx0Ly8gdmFsaWRhdGUgcGVyc2lzdGVkIHZhbHVlc1xuXHRjb25zdCBjb2RlVmVyaWZpZXIgPSB5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UuZ2V0UGVyc2lzdGVkQ29kZVZlcmlmaWVyKVxuXHRpZiAoIWNvZGVWZXJpZmllcikge1xuXHRcdHRocm93IG5ldyBFcnJvcignaW52YWxpZCBjb2RlX3ZlcmlmaWVyJylcblx0fVxuXHRjb25zdCBwZXJzaXN0ZWRTdGF0ZSA9IHlpZWxkIGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5nZXRQZXJzaXN0ZWRTdGF0ZSlcblx0aWYgKHBlcnNpc3RlZFN0YXRlICE9PSBzdGF0ZSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzdGF0ZScpXG5cdH1cblx0Ly8gY2xlYXIgcGVyc2lzdGVkIHZhbHVlc1xuXHR5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdFN0YXRlLCBudWxsKVxuXHR5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdENvZGVWZXJpZmllciwgbnVsbClcblxuXHQvLyBkaXNwYXRjaCByZXF1ZXN0XG5cdGNvbnN0IGdldFRva2VuTW9kZWxOYW1lID0gJ2dldFRva2VuJ1xuXHRjb25zdCBsb2NhdGlvbiA9IHdpbmRvd1NlcnZpY2UuZ2V0TG9jYXRpb24oKVxuXHRjb25zdCBmb3JtQm9keSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuXHRcdGdyYW50X3R5cGU6ICdhdXRob3JpemF0aW9uX2NvZGUnLFxuXHRcdGNsaWVudF9pZDogYXBwQ29uZmlnLkNMSUVOVF9JRCxcblx0XHRzY29wZTogYXBwQ29uZmlnLk9BVVRIX1BLQ0VfU0NPUEUsXG5cdFx0Y29kZV92ZXJpZmllcjogY29kZVZlcmlmaWVyLFxuXHRcdHJlZGlyZWN0X3VyaTogbG9jYXRpb24ub3JpZ2luLFxuXHRcdGNvZGU6IGNvZGVcblx0fSlcblx0eWllbGQgcHV0PE1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uPih7XG5cdFx0dHlwZTogTU9ERUxfRkVUQ0hfUkVRVUVTVF9BQ1RJT05fVFlQRS5GRVRDSF9SRVFVRVNULFxuXHRcdG1vZGVsTmFtZTogZ2V0VG9rZW5Nb2RlbE5hbWUsXG5cdFx0Ym9keTogZm9ybUJvZHkudG9TdHJpbmcoKSxcblx0XHRub1N0b3JlOiB0cnVlXG5cdH0pXG5cdGNvbnN0IHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbixcblx0XHRmZXRjaEVycm9yQWN0aW9uXG5cdH06IHsgZmV0Y2hSZXN1bHRBY3Rpb24/OiBNb2RlbEZldGNoUmVzdWx0QWN0aW9uOyBmZXRjaEVycm9yQWN0aW9uPzogTW9kZWxGZXRjaEVycm9yQWN0aW9uIH0gPSB5aWVsZCByYWNlKHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbjogdGFrZSh0YWtlTWF0Y2hlc01vZGVsRmV0Y2hSZWNlaXZlZChnZXRUb2tlbk1vZGVsTmFtZSkpLFxuXHRcdGZldGNoRXJyb3JBY3Rpb246IHRha2UodGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkKGdldFRva2VuTW9kZWxOYW1lKSlcblx0fSlcblx0aWYgKGZldGNoRXJyb3JBY3Rpb24gfHwgIWZldGNoUmVzdWx0QWN0aW9uPy5kYXRhKSB7XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHRyZXR1cm4gZmV0Y2hSZXN1bHRBY3Rpb24uZGF0YVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGdldFRva2VuRnJvbVJlZnJlc2hUb2tlbihvYXV0aFRva2VuUGFyYW06IE9BdXRoVG9rZW4pOiBTYWdhSXRlcmF0b3Ige1xuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxuXHRpZiAoIWFwcENvbmZpZy5DTElFTlRfSUQpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ0NMSUVOVF9JRCBpcyByZXF1aXJlZCBpbiBBcHBDb25maWcnKVxuXHR9XG5cdGlmICghb2F1dGhUb2tlblBhcmFtLnJlZnJlc2hfdG9rZW4pIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoYHJlZnJlc2hfdG9rZW4gaXMgcmVxdWlyZWRgKVxuXHR9XG5cblx0Y29uc3QgZ2V0VG9rZW5Nb2RlbE5hbWUgPSAnZ2V0VG9rZW4nXG5cdGNvbnN0IGZvcm1Cb2R5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG5cdFx0Z3JhbnRfdHlwZTogJ3JlZnJlc2hfdG9rZW4nLFxuXHRcdGNsaWVudF9pZDogYXBwQ29uZmlnLkNMSUVOVF9JRCxcblx0XHRyZWZyZXNoX3Rva2VuOiBvYXV0aFRva2VuUGFyYW0ucmVmcmVzaF90b2tlblxuXHR9KVxuXHQvLyBjcmVhdGUgdGhlIGZvcm0gYm9keSBiYXNlZCBvbiBpZiB1c2luZyBhIGNsaWVudF9zZWNyZXQ6IHRyYWRpdGlvbmFsIE9BdXRoIHZzLiBQS0NFIGZsb3dcblx0aWYgKGFwcENvbmZpZy5DTElFTlRfU0VDUkVUKSB7XG5cdFx0Zm9ybUJvZHkuYXBwZW5kKCdjbGllbnRfc2VjcmV0JywgYXBwQ29uZmlnLkNMSUVOVF9TRUNSRVQpXG5cdH1cblx0eWllbGQgcHV0PE1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uPih7XG5cdFx0dHlwZTogTU9ERUxfRkVUQ0hfUkVRVUVTVF9BQ1RJT05fVFlQRS5GRVRDSF9SRVFVRVNULFxuXHRcdG1vZGVsTmFtZTogZ2V0VG9rZW5Nb2RlbE5hbWUsXG5cdFx0Ym9keTogZm9ybUJvZHkudG9TdHJpbmcoKSxcblx0XHRub1N0b3JlOiB0cnVlXG5cdH0pXG5cdGNvbnN0IHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbixcblx0XHRmZXRjaEVycm9yQWN0aW9uXG5cdH06IHsgZmV0Y2hSZXN1bHRBY3Rpb24/OiBNb2RlbEZldGNoUmVzdWx0QWN0aW9uOyBmZXRjaEVycm9yQWN0aW9uPzogTW9kZWxGZXRjaEVycm9yQWN0aW9uIH0gPSB5aWVsZCByYWNlKHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbjogdGFrZSh0YWtlTWF0Y2hlc01vZGVsRmV0Y2hSZWNlaXZlZChnZXRUb2tlbk1vZGVsTmFtZSkpLFxuXHRcdGZldGNoRXJyb3JBY3Rpb246IHRha2UodGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkKGdldFRva2VuTW9kZWxOYW1lKSlcblx0fSlcblx0Ly8gYW55IGVycm9yIHJlc3BvbnNlXG5cdGlmIChmZXRjaEVycm9yQWN0aW9uKSB7XG5cdFx0Ly8gaWdub3JlIHNlcnZlciBlcnJvcnNcblx0XHRpZiAoXG5cdFx0XHRmZXRjaEVycm9yQWN0aW9uLmVycm9yRGF0YT8uc3RhdHVzICYmXG5cdFx0XHRmZXRjaEVycm9yQWN0aW9uLmVycm9yRGF0YS5zdGF0dXMgPj0gSFRUUF9TVEFUVVNfQ09ERS5JTlRFUk5BTF9TRVJWRVJfRVJST1Jcblx0XHQpIHtcblx0XHRcdHJldHVybiBvYXV0aFRva2VuUGFyYW1cblx0XHR9XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHQvLyBmb3Igc29tZSByZWFzb24gdGhlIHJlc3BvbnNlIGhhZCBubyBib2R5XG5cdGlmICghZmV0Y2hSZXN1bHRBY3Rpb24/LmRhdGEpIHtcblx0XHRyZXR1cm4gbnVsbFxuXHR9XG5cdHJldHVybiBmZXRjaFJlc3VsdEFjdGlvbi5kYXRhXG59XG5cbmxldCBpc0V4cGlyaW5nU29vbkFsZXJ0VmlzaWJsZTogYm9vbGVhblxubGV0IHJlZnJlc2hMb2NrOiBib29sZWFuXG5sZXQgcHJldmlvdXNSZWZyZXNoVG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZFxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRSZWZyZXNoKCkge1xuXHRpc0V4cGlyaW5nU29vbkFsZXJ0VmlzaWJsZSA9IGZhbHNlXG5cdHJlZnJlc2hMb2NrID0gZmFsc2Vcblx0cHJldmlvdXNSZWZyZXNoVG9rZW4gPSB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBwZXJmb3JtVG9rZW5SZWZyZXNoKG9hdXRoVG9rZW46IE9BdXRoVG9rZW4pOiBTYWdhSXRlcmF0b3Ige1xuXHRpZiAocmVmcmVzaExvY2spIHtcblx0XHQvLyBhbHJlYWR5IHJlZnJlc2hpbmcsIHdhaXQgZm9yIHRoZSBjdXJyZW50IHJlZnJlc2ggdG8gc3VjY2VlZCBvciBmYWlsXG5cdFx0eWllbGQgcmFjZSh7XG5cdFx0XHRyZWZyZXNoU3VjY2VzczogdGFrZShBVVRIX1RPS0VOX1NVQ0NFU1NfQUNUSU9OX1RZUEUuVE9LRU5fUkVGUkVTSF9TVUNDRUVERUQpLFxuXHRcdFx0cmVmcmVzaEZhaWxlZDogdGFrZShBVVRIX0FDVElPTl9UWVBFLlRPS0VOX1JFRlJFU0hfRkFJTEVEKVxuXHRcdH0pXG5cdFx0Ly8gcmV0dXJuIHRoZSBjdXJyZW50IHBlcnNpc3RlZCB0b2tlblxuXHRcdHJldHVybiB5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UuZ2V0UGVyc2lzdGVkVG9rZW4pXG5cdH1cblx0bG9nZ2VyLmRlYnVnKCdPQXV0aCB0b2tlbiByZWZyZXNoaW5nLi4uJylcblx0cmVmcmVzaExvY2sgPSB0cnVlXG5cdHRyeSB7XG5cdFx0Ly8gb2F1dGhUb2tlbiB3aWxsIGJlIHNldCB0bzpcblx0XHQvLyAxLiBuZXcgdG9rZW4gKHN1Y2Nlc3MpXG5cdFx0Ly8gMi4gc2FtZSB0b2tlbiAoZmFpbGVkIGZyb20gdGltZW91dCBvciBzZXJ2ZXIgZXJyb3IpXG5cdFx0Ly8gMy4gbnVsbCAoZmFpbClcblx0XHRjb25zdCBvcmlnaW5hbEFjY2Vzc1Rva2VuID0gb2F1dGhUb2tlbi5hY2Nlc3NfdG9rZW5cblx0XHQvLyBpZiB1c2luZyB0aGUgc2FtZSByZWZyZXNoX3Rva2VuLCB0aGUgcHJldmlvdXMgcmVmcmVzaCBkaWQgbm90IHN1Y2NlZWQgKGUuZy4gc2VydmVyIGVycm9yIG9yIHRpbWVvdXQpXG5cdFx0Ly8gYmFjayBvZmYgYmVmb3JlIHJldHJ5aW5nIHNvIHdlIGRvbid0IGhhbW1lciB0aGUgc2VydmVyIHdoaWxlIGl0IGlzIHVuYXZhaWxhYmxlXG5cdFx0aWYgKG9hdXRoVG9rZW4ucmVmcmVzaF90b2tlbiA9PT0gcHJldmlvdXNSZWZyZXNoVG9rZW4pIHtcblx0XHRcdGNvbnN0IHJldHJ5RGVsYXkgPSA1MDAwXG5cdFx0XHRsb2dnZXIuZGVidWcoYE9BdXRoIHRva2VuIHJlZnJlc2hpbmcgd2l0aCBzYW1lIHRva2VuLCBiYWNraW5nIG9mZiAke3JldHJ5RGVsYXl9IG1zYClcblx0XHRcdHlpZWxkIGRlbGF5KHJldHJ5RGVsYXkpXG5cdFx0fVxuXHRcdHByZXZpb3VzUmVmcmVzaFRva2VuID0gb2F1dGhUb2tlbi5yZWZyZXNoX3Rva2VuXG5cdFx0Y29uc3Qgb2F1dGhUb2tlblJlc3BvbnNlOiBPQXV0aFRva2VuUmVzcG9uc2UgPSB5aWVsZCBjYWxsKGdldFRva2VuRnJvbVJlZnJlc2hUb2tlbiwgb2F1dGhUb2tlbilcblx0XHRpZiAoISFvYXV0aFRva2VuUmVzcG9uc2UgJiYgb2F1dGhUb2tlblJlc3BvbnNlLmFjY2Vzc190b2tlbiAhPT0gb3JpZ2luYWxBY2Nlc3NUb2tlbikge1xuXHRcdFx0bG9nZ2VyLmRlYnVnKCdPQXV0aCB0b2tlbiByZWZyZXNoZWQnKVxuXHRcdFx0cHJldmlvdXNSZWZyZXNoVG9rZW4gPSB1bmRlZmluZWRcblx0XHRcdHlpZWxkIGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0VG9rZW4sIG9hdXRoVG9rZW5SZXNwb25zZSlcblx0XHRcdHlpZWxkIHB1dDxBdXRoVG9rZW5TdWNjZXNzQWN0aW9uPih7XG5cdFx0XHRcdHR5cGU6IEFVVEhfVE9LRU5fU1VDQ0VTU19BQ1RJT05fVFlQRS5UT0tFTl9SRUZSRVNIX1NVQ0NFRURFRCxcblx0XHRcdFx0b2F1dGhUb2tlbjogb2F1dGhUb2tlblJlc3BvbnNlXG5cdFx0XHR9KVxuXHRcdH0gZWxzZSBpZiAob2F1dGhUb2tlblJlc3BvbnNlID09PSBudWxsKSB7XG5cdFx0XHRsb2dnZXIuZGVidWcoJ09BdXRoIHRva2VuIGZhaWxlZCB0byByZWZyZXNoJylcblx0XHRcdC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiBvdXRzaWRlIG9mIHRoZSB0b2tlbiBoYXZpbmcgYmVlbiByZXZva2VkIG9uIHRoZSBzZXJ2ZXIgc2lkZVxuXHRcdFx0eWllbGQgYWxsKHtcblx0XHRcdFx0cmVmcmVzaEZhaWxlZDogcHV0PEF1dGhBY3Rpb24+KHsgdHlwZTogQVVUSF9BQ1RJT05fVFlQRS5UT0tFTl9SRUZSRVNIX0ZBSUxFRCB9KSxcblx0XHRcdFx0bG9nT3V0OiBwdXQ8QXV0aExvZ091dEFjdGlvbj4oeyB0eXBlOiBBVVRIX0xPR19PVVRfQUNUSU9OX1RZUEUuTE9HX09VVCwgdG9rZW5FeHBpcmVkOiB0cnVlIH0pXG5cdFx0XHR9KVxuXHRcdH1cblx0XHRyZXR1cm4gb2F1dGhUb2tlblJlc3BvbnNlXG5cdH0gY2F0Y2ggKGNhdWdodEVycm9yOiB1bmtub3duKSB7XG5cdFx0Y29uc3QgZXJyb3IgPSBjb25zdHJ1Y3RFcnJvckZyb21DYXVnaHRFcnJvcihjYXVnaHRFcnJvciwgJ1BlcmZvcm1Ub2tlblJlZnJlc2hFcnJvcicpXG5cdFx0bG9nZ2VyLmVycm9yKGVycm9yKVxuXHRcdGVycm9ySGFuZGxlcihlcnJvcilcblx0fSBmaW5hbGx5IHtcblx0XHRyZWZyZXNoTG9jayA9IGZhbHNlXG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBsb2dpbkZsb3cobW9kZWxGZXRjaFJlcXVlc3RBY3Rpb246IE1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uKTogU2FnYUl0ZXJhdG9yIHtcblx0eWllbGQgcHV0KG1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uKVxuXHRjb25zdCB7XG5cdFx0ZmV0Y2hSZXN1bHRBY3Rpb24sXG5cdFx0ZmV0Y2hFcnJvckFjdGlvblxuXHR9OiB7IGZldGNoUmVzdWx0QWN0aW9uPzogTW9kZWxGZXRjaFJlc3VsdEFjdGlvbjsgZmV0Y2hFcnJvckFjdGlvbj86IE1vZGVsRmV0Y2hFcnJvckFjdGlvbiB9ID0geWllbGQgcmFjZSh7XG5cdFx0ZmV0Y2hSZXN1bHRBY3Rpb246IHRha2UodGFrZU1hdGNoZXNNb2RlbEZldGNoUmVjZWl2ZWQobW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24ubW9kZWxOYW1lKSksXG5cdFx0ZmV0Y2hFcnJvckFjdGlvbjogdGFrZSh0YWtlTWF0Y2hlc01vZGVsRmV0Y2hGYWlsZWQobW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24ubW9kZWxOYW1lKSlcblx0fSlcblx0aWYgKGZldGNoRXJyb3JBY3Rpb24pIHtcblx0XHRyZXR1cm4gbnVsbFxuXHR9XG5cdGNvbnN0IGNvZGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IGZldGNoUmVzdWx0QWN0aW9uPy5kYXRhPy5jb2RlXG5cdGlmICghY29kZSkge1xuXHRcdHJldHVybiBudWxsXG5cdH1cblx0cmV0dXJuIHlpZWxkIGNhbGwoZ2V0VG9rZW5Gcm9tQ29kZSwgY29kZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBjcmVkZW50aWFsc0xvZ2luRmxvdyhhY3Rpb246IEF1dGhMb2NhbExvZ2luUmVxdWVzdEFjdGlvbiwgbW9kZWxOYW1lOiBzdHJpbmcpOiBTYWdhSXRlcmF0b3Ige1xuXHRjb25zdCBtb2RlbEZldGNoUmVxdWVzdEFjdGlvbjogTW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24gPSB7XG5cdFx0Ly8gc2V0IHJlcXVpcmVkIGRlZmF1bHRzXG5cdFx0dHlwZTogTU9ERUxfRkVUQ0hfUkVRVUVTVF9BQ1RJT05fVFlQRS5GRVRDSF9SRVFVRVNULFxuXHRcdG1vZGVsTmFtZSxcblx0XHRub1N0b3JlOiB0cnVlLFxuXHRcdC8vIGZvcmNlIG5vIHJldHJ5XG5cdFx0bm9SZXRyeTogdHJ1ZSxcblx0XHQvLyBwYXNzIHRocnUgYm9keVxuXHRcdGJvZHk6IGFjdGlvbi5ib2R5XG5cdH1cblx0cmV0dXJuIHlpZWxkIGNhbGwobG9naW5GbG93LCBtb2RlbEZldGNoUmVxdWVzdEFjdGlvbilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBsb2NhbExvZ2luRmxvdyhhY3Rpb246IEF1dGhMb2NhbExvZ2luUmVxdWVzdEFjdGlvbik6IFNhZ2FJdGVyYXRvciB7XG5cdHJldHVybiB5aWVsZCBjYWxsKGNyZWRlbnRpYWxzTG9naW5GbG93LCBhY3Rpb24sICdjb2RlRnJvbUxvY2FsQ3JlZGVudGlhbHMnKVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIHBrY2VMb2dpbkZsb3coXzogQXV0aFBLQ0VMb2dpblJlcXVlc3RBY3Rpb24pOiBTYWdhSXRlcmF0b3Ige1xuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxuXHRpZiAoIWFwcENvbmZpZy5DTElFTlRfSUQgfHwgIWFwcENvbmZpZy5PQVVUSF9QS0NFX1NDT1BFIHx8ICFhcHBDb25maWcuT0FVVEhfUEtDRV9FTkRQT0lOVCkge1xuXHRcdHRocm93IG5ldyBFcnJvcignQ0xJRU5UX0lELCBPQVVUSF9QS0NFX1NDT1BFLCBhbmQgT0FVVEhfUEtDRV9FTkRQT0lOVCBhcmUgcmVxdWlyZWQgaW4gQXBwQ29uZmlnJylcblx0fVxuXG5cdC8vIEdlbmVyYXRlIHN0YXRlIGFuZCBjb2RlIHZlcmlmaWVyIHZhbHVlc1xuXHRjb25zdCBzdGF0ZSA9IHV1aWR2NCgpXG5cdGNvbnN0IGNvZGVWZXJpZmllciA9IHV1aWR2NCgpXG5cdGNvbnN0IHNoYTI1NkNvZGVWZXJpZmllciA9IHlpZWxkIGNhbGwoc2hhMjU2QXN5bmMsIGNvZGVWZXJpZmllcilcblx0Y29uc3QgY29kZUNoYWxsZW5nZSA9IHlpZWxkIGNhbGwoYmFzZTY0VXJsRW5jb2RlLCBzaGEyNTZDb2RlVmVyaWZpZXIpXG5cblx0Ly8gUGVyc2lzdCBzdGF0ZSBhbmQgY29kZSB2ZXJpZmllciBpbiBsb2NhbCBzdG9yYWdlIGZvciB1c2UgYWZ0ZXIgY29kZSBmbG93IHJlZGlyZWN0LlxuXHR5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdFN0YXRlLCBzdGF0ZSlcblx0eWllbGQgY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RDb2RlVmVyaWZpZXIsIGNvZGVWZXJpZmllcilcblxuXHQvLyBSZWRpcmVjdCB0byBCUyBjb2RlIGZsb3cgYXV0aCBlbmRwb2ludCAod2hpY2ggd2lsbCByZWRpcmVjdCBiYWNrIGhlcmUpXG5cdGNvbnN0IGxvY2F0aW9uID0gd2luZG93U2VydmljZS5nZXRMb2NhdGlvbigpXG5cdGNvbnN0IHBrY2VBdXRoUmVkaXJlY3RVUkwgPSBgJHthcHBDb25maWcuT0FVVEhfUEtDRV9FTkRQT0lOVH0/JHtuZXcgVVJMU2VhcmNoUGFyYW1zKHtcblx0XHRyZXNwb25zZV90eXBlOiAnY29kZScsXG5cdFx0Y2xpZW50X2lkOiBhcHBDb25maWcuQ0xJRU5UX0lELFxuXHRcdHN0YXRlOiBzdGF0ZSxcblx0XHRzY29wZTogYXBwQ29uZmlnLk9BVVRIX1BLQ0VfU0NPUEUsXG5cdFx0Y29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsXG5cdFx0Y29kZV9jaGFsbGVuZ2VfbWV0aG9kOiAnUzI1NicsXG5cdFx0cmVkaXJlY3RfdXJpOiBsb2NhdGlvbi5vcmlnaW5cblx0fSl9YFxuXHR5aWVsZCBjYWxsKHdpbmRvd1NlcnZpY2UucmVwbGFjZSwgcGtjZUF1dGhSZWRpcmVjdFVSTClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBoYW5kbGVBdXRoRmFpbHVyZShhY3Rpb246IE1vZGVsRmV0Y2hFcnJvckFjdGlvbik6IFNhZ2FJdGVyYXRvciB7XG5cdGlmICghYWN0aW9uLmVycm9yRGF0YSB8fCBhY3Rpb24uZXJyb3JEYXRhLnN0YXR1cyAhPT0gSFRUUF9TVEFUVVNfQ09ERS5VTkFVVEhPUklaRUQpIHJldHVyblxuXHRjb25zdCBvYXV0aFRva2VuOiBPQXV0aFRva2VuUmVzcG9uc2UgPSB5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UuZ2V0UGVyc2lzdGVkVG9rZW4pXG5cdGlmICghaXNUb2tlbkV4cGlyZWQob2F1dGhUb2tlbikpIHJldHVyblxuXHQvLyBpZiBhIHJlcXVlc3QgcmVjZWl2ZXMgYSA0MDEsIHRoZSB0b2tlbiBpcyBleHBpcmVkIGFuZCBjYW5ub3QgcmVmcmVzaCwgdHJpZ2dlciBleHBpcmVkIGxvZyBvdXRcblx0Ly8gdGhpcyBpcyBhIGZhaWwtc2FmZSBpbiBjYXNlIHRoZSBgcmVmcmVzaExvb3BgIGhhcyBmYWlsZWRcblx0aWYgKCFpc1Rva2VuUmVmcmVzaGFibGUob2F1dGhUb2tlbikpIHtcblx0XHR5aWVsZCBwdXQ8QXV0aExvZ091dEFjdGlvbj4oeyB0eXBlOiBBVVRIX0xPR19PVVRfQUNUSU9OX1RZUEUuTE9HX09VVCwgdG9rZW5FeHBpcmVkOiB0cnVlIH0pXG5cdFx0cmV0dXJuXG5cdH1cblx0Ly8gaWYgdG9rZW4gaXMgcmVmcmVzaGFibGUsIHdpdGhpbiAzMCBzZWNvbmRzIG9mIGV4cGlyYXRpb24sIGFuZCB1c2VyIGlzIG5vdCBpZGxlLCBhdXRvLXJlZnJlc2hcblx0Ly8gdGhpcyBpcyBhIGZhaWwtc2FmZSBpbiBjYXNlIHRoZSBgcmVmcmVzaExvb3BgIGhhcyBmYWlsZWRcblx0aWYgKCFpc1VzZXJJZGxlKCkpIHtcblx0XHRsb2dnZXIuZGVidWcoJ2hhbmRsZUF1dGhGYWlsdXJlIHRyaWdnZXIgYXV0by1yZWZyZXNoJylcblx0XHR5aWVsZCBjYWxsKHBlcmZvcm1Ub2tlblJlZnJlc2gsIG9hdXRoVG9rZW4pXG5cdH1cbn1cblxuZXhwb3J0IGNvbnN0IGdldE9BdXRoVG9rZW46IFRva2VuQWNjZXNzRnVuY3Rpb24gPSBmdW5jdGlvbiogKCkge1xuXHRsZXQgb2F1dGhUb2tlbjogT0F1dGhUb2tlblJlc3BvbnNlID0geWllbGQgY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLmdldFBlcnNpc3RlZFRva2VuKVxuXHRpZiAoIW9hdXRoVG9rZW4/LlsnLmV4cGlyZXMnXSkgcmV0dXJuIG9hdXRoVG9rZW5cblx0Y29uc3QgYXBwQ29uZmlnID0gZ2V0QXBwQ29uZmlnKClcblx0Y29uc3QgZXhwaXJlc1V0YyA9IG1vbWVudC51dGMob2F1dGhUb2tlblsnLmV4cGlyZXMnXSlcblx0Y29uc3Qgbm93VXRjID0gbW9tZW50LnV0YyhnZXRTZXJ2ZXJOb3dVdGMoKS50b0lTT1N0cmluZygpKVxuXHRjb25zdCBpc0V4cGlyaW5nU29vbiA9IGV4cGlyZXNVdGMuZGlmZihub3dVdGMpIDw9IGFwcENvbmZpZy5TRVNTSU9OX1JFRlJFU0hfVEhSRVNIT0xEXG5cdC8vIGlmIHRva2VuIGlzIHJlZnJlc2hhYmxlLCB3aXRoaW4gcmVmcmVzaCB0aHJlc2hvbGQsIHVzZXIgaXMgbm90IGlkbGUsIGFuZCBub3QgZGlzcGxheWluZyBhbGVydCwgdGhlbiBhdXRvLXJlZnJlc2hcblx0Ly8gdGhpcyBpcyBhIGZhaWwtc2FmZSBpbiBjYXNlIHRoZSBgcmVmcmVzaExvb3BgIGhhcyBmYWlsZWRcblx0aWYgKGlzVG9rZW5SZWZyZXNoYWJsZShvYXV0aFRva2VuKSAmJiBpc0V4cGlyaW5nU29vbiAmJiAhaXNVc2VySWRsZSgpICYmICFpc0V4cGlyaW5nU29vbkFsZXJ0VmlzaWJsZSkge1xuXHRcdGxvZ2dlci5kZWJ1ZygnZ2V0T0F1dGhUb2tlbiB0cmlnZ2VyIGF1dG8tcmVmcmVzaCcpXG5cdFx0b2F1dGhUb2tlbiA9IHlpZWxkIGNhbGwocGVyZm9ybVRva2VuUmVmcmVzaCwgb2F1dGhUb2tlbilcblx0fVxuXHRyZXR1cm4gb2F1dGhUb2tlblxufVxuXG5leHBvcnQgZnVuY3Rpb24qIHJlc2V0RGF0YSgpOiBTYWdhSXRlcmF0b3Ige1xuXHR5aWVsZCBhbGwoe1xuXHRcdGNsZWFyVXNlckRhdGE6IHB1dDxNb2RlbFJlbW92ZUtleUFjdGlvbj4oeyB0eXBlOiBNT0RFTF9SRU1PVkVfS0VZX0FDVElPTl9UWVBFLCBtb2RlbFBhdGg6ICd1c2VyJyB9KSxcblx0XHRjbGVhclBlcnNpc3RlbnRUb2tlbjogY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RUb2tlbiwgbnVsbCksXG5cdFx0cmVzZXRSZWZyZXNoOiBjYWxsKHJlc2V0UmVmcmVzaClcblx0fSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiByZWZyZXNoTG9vcCgpOiBTYWdhSXRlcmF0b3Ige1xuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxuXHRsZXQgb2F1dGhUb2tlbjogT0F1dGhUb2tlblJlc3BvbnNlXG5cdGxvZ2dlci5kZWJ1ZygncmVmcmVzaExvb3AgaW5pdCcpXG5cdHdoaWxlICh0cnVlKSB7XG5cdFx0aXNFeHBpcmluZ1Nvb25BbGVydFZpc2libGUgPSBmYWxzZVxuXHRcdG9hdXRoVG9rZW4gPSB5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UuZ2V0UGVyc2lzdGVkVG9rZW4pXG5cblx0XHRsb2dnZXIuZGVidWcoJ3JlZnJlc2hMb29wIHN0YXJ0Jywge1xuXHRcdFx0b2F1dGhUb2tlbixcblx0XHRcdGlzRXhwaXJlZDogaXNUb2tlbkV4cGlyZWQob2F1dGhUb2tlbiksXG5cdFx0XHRpc1JlZnJlc2hhYmxlOiBpc1Rva2VuUmVmcmVzaGFibGUob2F1dGhUb2tlbilcblx0XHR9KVxuXG5cdFx0aWYgKCFpc1Rva2VuUmVmcmVzaGFibGUob2F1dGhUb2tlbikpIHtcblx0XHRcdGlmIChpc1Rva2VuRXhwaXJlZChvYXV0aFRva2VuKSkge1xuXHRcdFx0XHRsb2dnZXIuZGVidWcoJ3JlZnJlc2hMb29wIGJyZWFrOiB0b2tlbiBleHBpcmVkIGFuZCBub3QgcmVmcmVzaGFibGUsIHRyaWdnZXIgZXhwaXJlZCBsb2cgb3V0Jylcblx0XHRcdFx0Ly8gdXNlciBmYWlsZWQgdG8gcmVxdWVzdCBhbiBleHRlbnNpb24gYW5kIHRva2VuIGlzIGV4cGlyZWRcblx0XHRcdFx0eWllbGQgcHV0PEF1dGhMb2dPdXRBY3Rpb24+KHsgdHlwZTogQVVUSF9MT0dfT1VUX0FDVElPTl9UWVBFLkxPR19PVVQsIHRva2VuRXhwaXJlZDogdHJ1ZSB9KVxuXHRcdFx0XHQvLyBicmVhayBsb29wXG5cdFx0XHRcdGJyZWFrXG5cdFx0XHR9XG5cdFx0XHRsb2dnZXIuZGVidWcoJ3JlZnJlc2hMb29wIGJyZWFrOiB0b2tlbiBub3QgcmVmcmVzaGFibGUnKVxuXHRcdFx0YnJlYWtcblx0XHR9XG5cblx0XHRjb25zdCBleHBpcmVzVXRjID0gbW9tZW50LnV0YyhvYXV0aFRva2VuWycuZXhwaXJlcyddKVxuXHRcdGNvbnN0IG5vd1V0YyA9IG1vbWVudC51dGMoZ2V0U2VydmVyTm93VXRjKCkudG9JU09TdHJpbmcoKSlcblx0XHRjb25zdCB0aW1lVW50aWxFeHBpcmVzID0gZXhwaXJlc1V0Yy5kaWZmKG5vd1V0Yylcblx0XHRjb25zdCBpc0V4cGlyaW5nU29vbiA9IHRpbWVVbnRpbEV4cGlyZXMgPD0gYXBwQ29uZmlnLlNFU1NJT05fUkVGUkVTSF9USFJFU0hPTERcblxuXHRcdGlmICghaXNFeHBpcmluZ1Nvb24pIHtcblx0XHRcdGNvbnN0IGV4cGlyZXNTb29uVXRjID0gZXhwaXJlc1V0Yy5zdWJ0cmFjdChhcHBDb25maWcuU0VTU0lPTl9SRUZSRVNIX1RIUkVTSE9MRCwgJ21pbGxpc2Vjb25kcycpXG5cdFx0XHQvLyB1c2UgYSBtYXggZGVsYXksIGUuZy4gMSBtaW4gZm9yIDYwIG1pbiB0b2tlbiwgMSBzZWMgZm9yIDYwIHNlYyB0b2tlblxuXHRcdFx0Ly8gdG8gaGVscCByZWR1Y2UgdGltZXIgZHJpZnQgd2hlbiB0YWIgaXMgaW4gdGhlIGJhY2tncm91bmRcblx0XHRcdGNvbnN0IG1heERlbGF5ID0gKG9hdXRoVG9rZW4uZXhwaXJlc19pbiAqIDEwMDApIC8gNjBcblx0XHRcdGNvbnN0IGV4cGlyZXNTb29uRGVsYXkgPSBNYXRoLm1pbihtYXhEZWxheSwgZXhwaXJlc1Nvb25VdGMuZGlmZihub3dVdGMpKVxuXHRcdFx0bG9nZ2VyLmRlYnVnKGByZWZyZXNoTG9vcCBkZWxheTogd2FpdCBmb3IgdG9rZW4gdG8gYmUgY2xvc2UgdG8gZXhwaXJhdGlvbiwgZGVsYXlpbmcgJHtleHBpcmVzU29vbkRlbGF5fSBtc2ApXG5cdFx0XHR5aWVsZCBkZWxheShleHBpcmVzU29vbkRlbGF5KVxuXHRcdFx0Ly8gcmVzdGFydCBsb29wIHRvIHJlY2hlY2sgdG9rZW5cblx0XHRcdGNvbnN0IGVsYXBzZWQgPSBtb21lbnQudXRjKGdldFNlcnZlck5vd1V0YygpLnRvSVNPU3RyaW5nKCkpLmRpZmYobm93VXRjKVxuXHRcdFx0bG9nZ2VyLmRlYnVnKGByZWZyZXNoTG9vcCBkZWxheTogZmluaXNoZWQgYWZ0ZXIgJHtlbGFwc2VkfSBtc2ApXG5cdFx0XHRjb250aW51ZVxuXHRcdH1cblxuXHRcdGxvZ2dlci5kZWJ1ZygncmVmcmVzaExvb3AgZXhwaXJpbmcgc29vbicpXG5cblx0XHQvLyBOT1RFOiB1c2VyIGNhbiBuZXZlciBiZSBpZGxlIG9uIExPQ0FMLCBzbyBsb2NhbCBzZXNzaW9ucyB3aWxsIHN0YXkgYWxpdmUgaW5kZWZpbml0ZWx5XG5cdFx0aWYgKCFpc1VzZXJJZGxlKCkpIHtcblx0XHRcdGxvZ2dlci5kZWJ1ZygncmVmcmVzaExvb3AgdXNlciBub3QgaWRsZSwgdHJpZ2dlciBhdXRvLXJlZnJlc2gnKVxuXHRcdFx0Ly8gYXV0b21hdGljYWxseSByZWZyZXNoIHRva2VuIHRvIGV4dGVuZCBzZXNzaW9uIGlmIHVzZXIgaXMgbm90IGlkbGVcblx0XHRcdG9hdXRoVG9rZW4gPSB5aWVsZCBjYWxsKHBlcmZvcm1Ub2tlblJlZnJlc2gsIG9hdXRoVG9rZW4pXG5cdFx0XHRjb250aW51ZVxuXHRcdH1cblxuXHRcdGxvZ2dlci5kZWJ1ZygncmVmcmVzaExvb3AgdXNlciBpZGxlLCB0cmlnZ2VyIGV4cGlyaW5nIHNvb24nKVxuXG5cdFx0Ly8gaWYgdXNlciBpcyBpZGxlIGFuZCB0b2tlbiBpcyBleHBpcmluZyBzb29uLCBzZW5kIGFjdGlvbiB0byBkaXNwbGF5IEV4cGlyaW5nU2Vzc2lvbkFsZXJ0XG5cdFx0eWllbGQgcHV0PEF1dGhBY3Rpb24+KHsgdHlwZTogQVVUSF9BQ1RJT05fVFlQRS5FWFBJUklOR19TT09OIH0pXG5cdFx0Ly8gdHJhY2sgbG9jYWwgc3RhdGUgdG8gYmxvY2sgYXV0by1yZWZyZXNoIGluIGBnZXRPQXV0aFRva2VuYFxuXHRcdGlzRXhwaXJpbmdTb29uQWxlcnRWaXNpYmxlID0gdHJ1ZVxuXG5cdFx0Ly8gd2FpdCBmb3IgdXNlciB0byB0YWtlIGFuIGFjdGlvbiwgb3IgZm9yIHRva2VuIHRvIGV4cGlyZVxuXHRcdC8vIGlmIHVzZXIgbG9ncyBvdXQsIHRoZSByb290IGBhdXRoU2FnYWAgd2lsbCBjYW5jZWwgdGhpcyBsb29wXG5cdFx0Y29uc3QgeyB0b2tlbkV4cGlyZWQgfSA9IHlpZWxkIHJhY2Uoe1xuXHRcdFx0ZXh0ZW5zaW9uUmVxdWVzdGVkOiB0YWtlKEFVVEhfQUNUSU9OX1RZUEUuRVhURU5TSU9OX1JFUVVFU1RFRCksXG5cdFx0XHR0b2tlbkV4cGlyZWQ6IGRlbGF5KHRpbWVVbnRpbEV4cGlyZXMpXG5cdFx0fSlcblx0XHRpZiAodG9rZW5FeHBpcmVkKSB7XG5cdFx0XHRsb2dnZXIuZGVidWcoJ3JlZnJlc2hMb29wIHRva2VuIGV4cGlyZWQsIHRyaWdnZXIgZXhwaXJlZCBsb2cgb3V0Jylcblx0XHRcdC8vIHVzZXIgZmFpbGVkIHRvIHJlcXVlc3QgYW4gZXh0ZW5zaW9uIGFuZCB0b2tlbiBpcyBleHBpcmVkXG5cdFx0XHR5aWVsZCBwdXQ8QXV0aExvZ091dEFjdGlvbj4oeyB0eXBlOiBBVVRIX0xPR19PVVRfQUNUSU9OX1RZUEUuTE9HX09VVCwgdG9rZW5FeHBpcmVkOiB0cnVlIH0pXG5cdFx0XHQvLyBicmVhayBsb29wXG5cdFx0XHRicmVha1xuXHRcdH1cblxuXHRcdGxvZ2dlci5kZWJ1ZygncmVmcmVzaExvb3AgdXNlciB0cmlnZ2VyIHJlZnJlc2gnKVxuXG5cdFx0Ly8gdXNlciByZXF1ZXN0ZWQgZXh0ZW5zaW9uLCB0cmlnZ2VyIHRva2VuIHJlZnJlc2hcblx0XHRvYXV0aFRva2VuID0geWllbGQgY2FsbChwZXJmb3JtVG9rZW5SZWZyZXNoLCBvYXV0aFRva2VuKVxuXHR9XG5cblx0bG9nZ2VyLmRlYnVnKCdyZWZyZXNoTG9vcCBkb25lJylcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24qIGF1dGhTYWdhKFxuXHRhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlUGFyYW06IEF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UsXG5cdGNvZGVQcm92aWRlclNlcnZpY2U6IENvZGVQcm92aWRlclNlcnZpY2UsXG5cdGVycm9ySGFuZGxlclBhcmFtOiBFcnJvckhhbmRsZXIgfCB1bmRlZmluZWQgPSBkZWZhdWx0RXJyb3JIYW5kbGVyXG4pOiBTYWdhSXRlcmF0b3Ige1xuXHRhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlID0gYXV0aFBlcnNpc3RlbmNlU2VydmljZVBhcmFtXG5cdGVycm9ySGFuZGxlciA9IGVycm9ySGFuZGxlclBhcmFtXG5cdGxvZ2dlciA9IGdldExvZ2dlcigpXG5cblx0Ly8gdHJ5IHRvIGdldCBwZXJzaXN0ZWQgdG9rZW4gKG5vcm1hbGx5IGluIEFzeW5jU3RvcmFnZSBvciBMb2NhbFN0b3JhZ2UpXG5cdGxldCBvYXV0aFRva2VuOiBPQXV0aFRva2VuUmVzcG9uc2UgPSB5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UuZ2V0UGVyc2lzdGVkVG9rZW4pXG5cblx0Ly8gaWYgdG9rZW4gaXMgZXhwaXJlZCwgdHJ5IHRvIHJlZnJlc2ggaXQgYmVmb3JlIGluaXRpYWxpemluZyBhdXRoXG5cdC8vIGlmIHVuYWJsZSB0byByZWZyZXNoLCBjbGVhciBkYXRhIGFuZCBpbml0IGF1dGggd2l0aCBubyB0b2tlblxuXHRpZiAoaXNUb2tlbkV4cGlyZWQob2F1dGhUb2tlbikpIHtcblx0XHRpZiAoaXNUb2tlblJlZnJlc2hhYmxlKG9hdXRoVG9rZW4pKSB7XG5cdFx0XHRvYXV0aFRva2VuID0geWllbGQgY2FsbChwZXJmb3JtVG9rZW5SZWZyZXNoLCBvYXV0aFRva2VuKVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRsb2dnZXIuZGVidWcoJ3Rva2VuIGV4cGlyZWQsIGNsZWFyIHBlcnNpc3RlZCB1c2VyIGRhdGEgYW5kIHRva2VuJylcblx0XHRcdG9hdXRoVG9rZW4gPSBudWxsXG5cdFx0XHQvLyBjbGVhciB0aGUgZXhwaXJlZCB0b2tlbiBhbmQgdXNlciBkYXRhIGZyb20gc3RvcmFnZVxuXHRcdFx0eWllbGQgY2FsbChyZXNldERhdGEpXG5cdFx0fVxuXHR9XG5cblx0Ly8gZ2V0IGF1dGggcGFyYW1ldGVyc1xuXHRjb25zdCBjb2RlID0gY29kZVByb3ZpZGVyU2VydmljZS5nZXRDb2RlKClcblx0Y29uc3Qgc3RhdGUgPSBjb2RlUHJvdmlkZXJTZXJ2aWNlLmdldFN0YXRlKClcblxuXHQvLyBhdXRvLWxvZ2luIC8gU1NPIGZvciBQdXJkdWVcblx0Y29uc3QgcHVyZHVlSWRlbnRpdHlQcm92aWRlciA9IHlpZWxkIGNhbGwoZ2V0UHVyZHVlSWRlbnRpdHlQcm92aWRlckZyb21Mb2NhdGlvbilcblx0aWYgKHB1cmR1ZUlkZW50aXR5UHJvdmlkZXIpIHtcblx0XHRjb25zdCBpc1B1cmR1ZUF1dG9Mb2dpblJlcXVlc3RlZDogYm9vbGVhbiA9IHlpZWxkIGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5nZXRJc1B1cmR1ZUF1dG9Mb2dpblJlcXVlc3RlZClcblx0XHQvLyBzdGFydCBhdXRvLWxvZ2luIC8gU1NPLCBpZiBub3QgYWxyZWFkeSByZXF1ZXN0ZWQsIG5vdCBhdXRoZW50aWNhdGVkLCBhbmQgaGFzIG5vIHZhbGlkIGF1dGggcGFyYW1ldGVyc1xuXHRcdGlmICghaXNQdXJkdWVBdXRvTG9naW5SZXF1ZXN0ZWQgJiYgIW9hdXRoVG9rZW4gJiYgIWNvZGUpIHtcblx0XHRcdHlpZWxkIGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0SXNQdXJkdWVBdXRvTG9naW5SZXF1ZXN0ZWQsIHRydWUpXG5cdFx0XHQvLyBzdG9yZSBwYXRobmFtZSBmb3IgcG9zdC1sb2dpbiByZWRpcmVjdCBpZiBub3QgYWxyZWFkeSBzZXRcblx0XHRcdC8vIGNvdWxkIGhhdmUgYmVlbiBzZXQgZnJvbSB1c2VyIGxvZ2dpbmcgb3V0LCBzZWUgYEF1dGhlbnRpY2F0ZWRDb21wb25lbnRgXG5cdFx0XHRjb25zdCByZXR1cm5VcmwgPSB5aWVsZCBjYWxsKGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UuZ2V0UmV0dXJuVXJsKVxuXHRcdFx0aWYgKCFyZXR1cm5VcmwpIHtcblx0XHRcdFx0eWllbGQgY2FsbChhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RSZXR1cm5VcmwsIHdpbmRvd1NlcnZpY2UuZ2V0TG9jYXRpb24oKS5wYXRobmFtZSlcblx0XHRcdH1cblx0XHRcdHlpZWxkIGNhbGwod2luZG93U2VydmljZS5yZXBsYWNlLCBwdXJkdWVJZGVudGl0eVByb3ZpZGVyLmxvZ2luVXJsKVxuXHRcdFx0cmV0dXJuXG5cdFx0fVxuXHRcdC8vIGZpbmlzaCBhdXRvLWxvZ2luIHByb2Nlc3MsIGlmIGl0IHdhcyByZXF1ZXN0ZWQgYW5kIGhhcyBhIHZhbGlkIGF1dGggcGFyYW1ldGVyXG5cdFx0aWYgKGlzUHVyZHVlQXV0b0xvZ2luUmVxdWVzdGVkICYmIGNvZGUpIHtcblx0XHRcdHlpZWxkIGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0SXNQdXJkdWVBdXRvTG9naW5SZXF1ZXN0ZWQsIGZhbHNlKVxuXHRcdFx0Ly8gcGVyc2lzdCBQdXJkdWUgaWRlbnRpdHlQcm92aWRlciBmb3IgYGlkZW50aXR5UHJvdmlkZXJTYWdhYCBsb2dvdXQgbG9naWNcblx0XHRcdHlpZWxkIGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0SWRlbnRpdHlQcm92aWRlciwgcHVyZHVlSWRlbnRpdHlQcm92aWRlcilcblx0XHRcdC8vIGNvbnRpbnVlIHRvIGV4Y2hhbmdpbmcgdGhlIGBjb2RlYCBmb3IgdG9rZW5cblx0XHR9XG5cdH1cblxuXHQvLyBpZiBPQXV0aCBDb2RlIGV4aXN0cyAobm9ybWFsbHkgaW4gdGhlIFVSTCksIHVzZSBpdCB0byBnZXQgYSBuZXcgdG9rZW5cblx0aWYgKGNvZGUpIHtcblx0XHRjb2RlUHJvdmlkZXJTZXJ2aWNlLnJlbW92ZUNvZGVBbmRTdGF0ZSgpXG5cblx0XHQvLyBjbGVhciB0aGUgY3VycmVudCB0b2tlbiBhbmQgdXNlciBkYXRhIGlmIGEgbmV3IHRva2VuIGlzIGFib3V0IHRvIGJlIGdlbmVyYXRlZFxuXHRcdGlmIChvYXV0aFRva2VuKSB7XG5cdFx0XHR5aWVsZCBjYWxsKHJlc2V0RGF0YSlcblx0XHRcdG9hdXRoVG9rZW4gPSBudWxsXG5cdFx0fVxuXG5cdFx0Ly8gaWYgT0F1dGggc3RhdGUgZXhpc3RzIChub3JtYWxseSBpbiB0aGUgVVJMKSwgdXNlIGl0IGluIGFkZGl0aW9uIHRvIHRoZSBjb2RlIGZvciBQS0NFIGxvZ2luIGZsb3dcblx0XHRpZiAoc3RhdGUpIHtcblx0XHRcdG9hdXRoVG9rZW4gPSB5aWVsZCBjYWxsKGdldFRva2VuRnJvbUNvZGVBbmRTdGF0ZSwgY29kZSwgc3RhdGUpXG5cdFx0fSBlbHNlIHtcblx0XHRcdG9hdXRoVG9rZW4gPSB5aWVsZCBjYWxsKGdldFRva2VuRnJvbUNvZGUsIGNvZGUpXG5cdFx0fVxuXG5cdFx0aWYgKG9hdXRoVG9rZW4pIHtcblx0XHRcdHlpZWxkIGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0VG9rZW4sIG9hdXRoVG9rZW4pXG5cdFx0fVxuXHR9XG5cblx0eWllbGQgcHV0PEF1dGhUb2tlbkFjdGlvbj4oeyB0eXBlOiBBVVRIX1RPS0VOX0FDVElPTl9UWVBFLkFVVEhfSU5JVElBTElaRUQsIG9hdXRoVG9rZW4gfSlcblxuXHR5aWVsZCB0YWtlRXZlcnkoTU9ERUxfRkVUQ0hfRVJST1JfQUNUSU9OX1RZUEUuVFJZX0ZFVENIX0ZBSUxFRCwgaGFuZGxlQXV0aEZhaWx1cmUpXG5cblx0ZG8ge1xuXHRcdGlmICghb2F1dGhUb2tlbikge1xuXHRcdFx0Y29uc3Qge1xuXHRcdFx0XHRsb2NhbExvZ2luQWN0aW9uLFxuXHRcdFx0XHRwa2NlTG9naW5BY3Rpb25cblx0XHRcdH06IHtcblx0XHRcdFx0bG9jYWxMb2dpbkFjdGlvbj86IEF1dGhMb2NhbExvZ2luUmVxdWVzdEFjdGlvblxuXHRcdFx0XHRwa2NlTG9naW5BY3Rpb24/OiBBdXRoUEtDRUxvZ2luUmVxdWVzdEFjdGlvblxuXHRcdFx0fSA9IHlpZWxkIHJhY2Uoe1xuXHRcdFx0XHRsb2NhbExvZ2luQWN0aW9uOiB0YWtlKEFVVEhfTE9DQUxfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRS5MT0NBTF9MT0dJTl9SRVFVRVNUKSxcblx0XHRcdFx0cGtjZUxvZ2luQWN0aW9uOiB0YWtlKEFVVEhfUEtDRV9MT0dJTl9SRVFVRVNUX0FDVElPTl9UWVBFLlBLQ0VfTE9HSU5fUkVRVUVTVClcblx0XHRcdH0pXG5cblx0XHRcdHlpZWxkIHB1dDxBdXRoQWN0aW9uPih7IHR5cGU6IEFVVEhfQUNUSU9OX1RZUEUuTE9HSU5fUkVRVUVTVEVEIH0pXG5cdFx0XHRpZiAobG9jYWxMb2dpbkFjdGlvbikge1xuXHRcdFx0XHRvYXV0aFRva2VuID0geWllbGQgY2FsbChsb2NhbExvZ2luRmxvdywgbG9jYWxMb2dpbkFjdGlvbilcblx0XHRcdH0gZWxzZSBpZiAocGtjZUxvZ2luQWN0aW9uKSB7XG5cdFx0XHRcdC8vIG9hdXRoVG9rZW4gaXMgbm90IHJldHVybmVkIGhlcmUsIGFzIHRoaXMgZmxvdyB3aWxsIHJlc3VsdCBpbiBhIHdpbmRvdyByZWRpcmVjdFxuXHRcdFx0XHR5aWVsZCBjYWxsKHBrY2VMb2dpbkZsb3csIHBrY2VMb2dpbkFjdGlvbilcblx0XHRcdFx0Ly8gYnJlYWsgZXhlY3V0aW9uXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChvYXV0aFRva2VuKSB7XG5cdFx0XHR5aWVsZCBhbGwoe1xuXHRcdFx0XHRwZXJzaXN0VG9rZW46IGNhbGwoYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0VG9rZW4sIG9hdXRoVG9rZW4pLFxuXHRcdFx0XHRsb2dpblN1Y2Nlc3M6IHB1dDxBdXRoVG9rZW5TdWNjZXNzQWN0aW9uPih7XG5cdFx0XHRcdFx0dHlwZTogQVVUSF9UT0tFTl9TVUNDRVNTX0FDVElPTl9UWVBFLkdFVF9UT0tFTl9TVUNDRUVERUQsXG5cdFx0XHRcdFx0b2F1dGhUb2tlblxuXHRcdFx0XHR9KVxuXHRcdFx0fSlcblxuXHRcdFx0Ly8gc3RhcnQgbm9uLWJsb2NraW5nIHJlZnJlc2ggbG9vcFxuXHRcdFx0Y29uc3QgcmVmcmVzaExvb3BUYXNrOiBUYXNrID0geWllbGQgZm9yayhyZWZyZXNoTG9vcClcblxuXHRcdFx0Ly8gaWYgdXNlciBsb2dzIG91dCBvciB0b2tlbiBleHBpcmVzLCBjYW5jZWwgdGhlIHJlZnJlc2ggbG9vcFxuXHRcdFx0eWllbGQgdGFrZShBVVRIX0xPR19PVVRfQUNUSU9OX1RZUEUuTE9HX09VVClcblx0XHRcdHlpZWxkIGNhbmNlbChyZWZyZXNoTG9vcFRhc2spXG5cdFx0fSBlbHNlIHtcblx0XHRcdHlpZWxkIHB1dDxBdXRoQWN0aW9uPih7IHR5cGU6IEFVVEhfQUNUSU9OX1RZUEUuTE9HSU5fRkFJTEVEIH0pXG5cdFx0fVxuXG5cdFx0eWllbGQgY2FsbChyZXNldERhdGEpXG5cdFx0b2F1dGhUb2tlbiA9IG51bGxcblx0fSB3aGlsZSAodHJ1ZSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLElBQUFBLGVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLGNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQVNBLElBQUFNLEtBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLEtBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLE1BQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLE9BQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLElBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLGFBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLFFBQUEsR0FBQVosT0FBQTtBQXdCQTs7QUFFTyxNQUFNYSx5QkFBeUIsR0FBR0EsQ0FBQ0MsTUFBaUIsRUFBRUMsU0FBaUIsS0FDN0UsSUFBQUMsMENBQWlDLEVBQUNGLE1BQU0sQ0FBQyxJ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
@@ -11,7 +11,6 @@ var _effects = require("redux-saga/effects");
11
11
  var _configuration = require("../../constants/configuration");
12
12
  var _codeProviderService = require("../../services/codeProviderService");
13
13
  var _persistenceService = require("../../services/persistenceService");
14
- var _ticketProviderService = require("../../services/ticketProviderService");
15
14
  var _AuthAction = require("../actions/AuthAction");
16
15
  var _appInsightsSaga = _interopRequireDefault(require("./appInsightsSaga"));
17
16
  var _authSaga = _interopRequireWildcard(require("./authSaga"));
@@ -98,7 +97,7 @@ function* rootSaga() {
98
97
  yield (0, _effects.all)({
99
98
  errorSaga: (0, _errorSaga.default)(),
100
99
  modelFetchSaga: (0, _modelFetchSaga.default)(endpointMappings, appConfig.API_URL, _authSaga.getOAuthToken, errorHandler),
101
- authSaga: (0, _authSaga.default)(_persistenceService.persistenceService, _ticketProviderService.ticketProviderService, _codeProviderService.codeProviderService, errorHandler)
100
+ authSaga: (0, _authSaga.default)(_persistenceService.persistenceService, _codeProviderService.codeProviderService, errorHandler)
102
101
  });
103
102
  }
104
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZW50cnkiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZWZmZWN0cyIsIl9jb25maWd1cmF0aW9uIiwiX2NvZGVQcm92aWRlclNlcnZpY2UiLCJfcGVyc2lzdGVuY2VTZXJ2aWNlIiwiX3RpY2tldFByb3ZpZGVyU2VydmljZSIsIl9BdXRoQWN0aW9uIiwiX2FwcEluc2lnaHRzU2FnYSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfYXV0aFNhZ2EiLCJfY2FsaXBlclNhZ2EiLCJfY2xvY2tPZmZzZXRTYWdhIiwiX2NvbmZpZ3VyYXRpb25TYWdhIiwiX2Rvd250aW1lQXBpRXJyb3JTYWdhIiwiX2Vycm9yU2FnYSIsIl9nb29nbGVBbmFseXRpY3NTYWdhIiwiX2lkZW50aXR5UHJvdmlkZXJTYWdhIiwiX2luaXRpYWxEYXRhTG9hZFNhZ2EiLCJfbG9ja0Rvd25Ccm93c2VyRXJyb3JTYWdhIiwiX21vZGVsRmV0Y2hTYWdhIiwiX25vU3RvcmVTYWdhIiwiX3Bvc3RMb2dpbkRhdGFTYWdhIiwiX3Bvc3RMb2dpblJlZGlyZWN0U2FnYSIsIl9zZW50cnlTYWdhIiwiX3VzZXJJZFNhZ2EiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJkZWZhdWx0RGVwZW5kZW50U2FnYXMiLCJub1N0b3JlU2FnYSIsImNvbmZpZ3VyYXRpb25TYWdhIiwiY2FsaXBlclNhZ2EiLCJ1c2VySWRTYWdhIiwic2VudHJ5U2FnYSIsImdvb2dsZUFuYWx5dGljc1NhZ2EiLCJhcHBJbnNpZ2h0c1NhZ2EiLCJpbml0aWFsRGF0YUxvYWRTYWdhIiwiaWRlbnRpdHlQcm92aWRlclNhZ2EiLCJwb3N0TG9naW5SZWRpcmVjdFNhZ2EiLCJwb3N0TG9naW5EYXRhU2FnYSIsImNsb2NrT2Zmc2V0U2FnYSIsImxvY2tEb3duQnJvd3NlckVycm9yU2FnYSIsImRvd250aW1lQXBpRXJyb3JTYWdhIiwiZ2V0RGVmYXVsdERlcGVuZGVudFNhZ2FzIiwiZXhwb3J0cyIsImRlcGVuZGVudFNhZ2FzIiwic2V0RGVwZW5kZW50U2FnYXMiLCJ2YWx1ZSIsImRlcGVuZGVudFNhZ2FzR2VuZXJhdG9yIiwiYWxsIiwiZXJyb3JIYW5kbGVyIiwiZXJyb3IiLCJtb2RlbEZldGNoUmVxdWVzdEFjdGlvbiIsImZldGNoQ29uZmlnIiwiZmV0Y2hSZXN1bHQiLCJmZXRjaEVycm9yRGF0YSIsImNhcHR1cmVFeGNlcHRpb24iLCJjb250ZXh0cyIsInVuZGVmaW5lZCIsInJvb3RTYWdhIiwiYXBwQ29uZmlnIiwiZ2V0QXBwQ29uZmlnIiwiZW5kcG9pbnRNYXBwaW5ncyIsImdldEVuZHBvaW50TWFwcGluZ3MiLCJJU19ET1dOVElNRSIsInRha2VFdmVyeSIsIkFVVEhfVE9LRU5fQUNUSU9OX1RZUEUiLCJBVVRIX0lOSVRJQUxJWkVEIiwiZXJyb3JTYWdhIiwibW9kZWxGZXRjaFNhZ2EiLCJBUElfVVJMIiwiZ2V0T0F1dGhUb2tlbiIsImF1dGhTYWdhIiwicGVyc2lzdGVuY2VTZXJ2aWNlIiwidGlja2V0UHJvdmlkZXJTZXJ2aWNlIiwiY29kZVByb3ZpZGVyU2VydmljZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZWR1eC9zYWdhcy9yb290U2FnYS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9yZWFjdCdcbmltcG9ydCB7IFNhZ2FJdGVyYXRvciB9IGZyb20gJ3JlZHV4LXNhZ2EnXG5pbXBvcnQgeyBhbGwsIEFsbEVmZmVjdCwgRm9ya0VmZmVjdCwgdGFrZUV2ZXJ5IH0gZnJvbSAncmVkdXgtc2FnYS9lZmZlY3RzJ1xuaW1wb3J0IHsgZ2V0QXBwQ29uZmlnLCBnZXRFbmRwb2ludE1hcHBpbmdzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZ3VyYXRpb24nXG5pbXBvcnQgeyBjb2RlUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29kZVByb3ZpZGVyU2VydmljZSdcbmltcG9ydCB7IHBlcnNpc3RlbmNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BlcnNpc3RlbmNlU2VydmljZSdcbmltcG9ydCB7IHRpY2tldFByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldFByb3ZpZGVyU2VydmljZSdcbmltcG9ydCB7IEVycm9ySGFuZGxlciwgRmV0Y2hDb25maWcsIEZldGNoRXJyb3JEYXRhLCBGZXRjaFJlc3VsdCB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgQVVUSF9UT0tFTl9BQ1RJT05fVFlQRSB9IGZyb20gJy4uL2FjdGlvbnMvQXV0aEFjdGlvbidcbmltcG9ydCB7IE1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uLCBQZXJpb2RpY01vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9Nb2RlbEFjdGlvbidcbmltcG9ydCBhcHBJbnNpZ2h0c1NhZ2EgZnJvbSAnLi9hcHBJbnNpZ2h0c1NhZ2EnXG5pbXBvcnQgYXV0aFNhZ2EsIHsgZ2V0T0F1dGhUb2tlbiB9IGZyb20gJy4vYXV0aFNhZ2EnXG5pbXBvcnQgY2FsaXBlclNhZ2EgZnJvbSAnLi9jYWxpcGVyU2FnYSdcbmltcG9ydCBjbG9ja09mZnNldFNhZ2EgZnJvbSAnLi9jbG9ja09mZnNldFNhZ2EnXG5pbXBvcnQgY29uZmlndXJhdGlvblNhZ2EgZnJvbSAnLi9jb25maWd1cmF0aW9uU2FnYSdcbmltcG9ydCBkb3dudGltZUFwaUVycm9yU2FnYSBmcm9tICcuL2Rvd250aW1lQXBpRXJyb3JTYWdhJ1xuaW1wb3J0IGVycm9yU2FnYSBmcm9tICcuL2Vycm9yU2FnYSdcbmltcG9ydCBnb29nbGVBbmFseXRpY3NTYWdhIGZyb20gJy4vZ29vZ2xlQW5hbHl0aWNzU2FnYSdcbmltcG9ydCBpZGVudGl0eVByb3ZpZGVyU2FnYSBmcm9tICcuL2lkZW50aXR5UHJvdmlkZXJTYWdhJ1xuaW1wb3J0IGluaXRpYWxEYXRhTG9hZFNhZ2EgZnJvbSAnLi9pbml0aWFsRGF0YUxvYWRTYWdhJ1xuaW1wb3J0IGxvY2tEb3duQnJvd3NlckVycm9yU2FnYSBmcm9tICcuL2xvY2tEb3duQnJvd3NlckVycm9yU2FnYSdcbmltcG9ydCBtb2RlbEZldGNoU2FnYSBmcm9tICcuL21vZGVsRmV0Y2hTYWdhJ1xuaW1wb3J0IG5vU3RvcmVTYWdhIGZyb20gJy4vbm9TdG9yZVNhZ2EnXG5pbXBvcnQgcG9zdExvZ2luRGF0YVNhZ2EgZnJvbSAnLi9wb3N0TG9naW5EYXRhU2FnYSdcbmltcG9ydCBwb3N0TG9naW5SZWRpcmVjdFNhZ2EgZnJvbSAnLi9wb3N0TG9naW5SZWRpcmVjdFNhZ2EnXG5pbXBvcnQgc2VudHJ5U2FnYSBmcm9tICcuL3NlbnRyeVNhZ2EnXG5pbXBvcnQgdXNlcklkU2FnYSBmcm9tICcuL3VzZXJJZFNhZ2EnXG5cbi8vI3JlZ2lvbiBTZXR1cFxuXG5jb25zdCBkZWZhdWx0RGVwZW5kZW50U2FnYXM6IFJlY29yZDxzdHJpbmcsIFNhZ2FJdGVyYXRvcj4gPSB7XG5cdG5vU3RvcmVTYWdhOiBub1N0b3JlU2FnYSgpLFxuXHRjb25maWd1cmF0aW9uU2FnYTogY29uZmlndXJhdGlvblNhZ2EoKSxcblx0Y2FsaXBlclNhZ2E6IGNhbGlwZXJTYWdhKCksXG5cdHVzZXJJZFNhZ2E6IHVzZXJJZFNhZ2EoKSxcblx0c2VudHJ5U2FnYTogc2VudHJ5U2FnYSgpLFxuXHRnb29nbGVBbmFseXRpY3NTYWdhOiBnb29nbGVBbmFseXRpY3NTYWdhKCksXG5cdGFwcEluc2lnaHRzU2FnYTogYXBwSW5zaWdodHNTYWdhKCksXG5cdGluaXRpYWxEYXRhTG9hZFNhZ2E6IGluaXRpYWxEYXRhTG9hZFNhZ2EoKSxcblx0aWRlbnRpdHlQcm92aWRlclNhZ2E6IGlkZW50aXR5UHJvdmlkZXJTYWdhKCksXG5cdHBvc3RMb2dpblJlZGlyZWN0U2FnYTogcG9zdExvZ2luUmVkaXJlY3RTYWdhKCksXG5cdHBvc3RMb2dpbkRhdGFTYWdhOiBwb3N0TG9naW5EYXRhU2FnYSgpLFxuXHRjbG9ja09mZnNldFNhZ2E6IGNsb2NrT2Zmc2V0U2FnYSgpLFxuXHRsb2NrRG93bkJyb3dzZXJFcnJvclNhZ2E6IGxvY2tEb3duQnJvd3NlckVycm9yU2FnYSgpLFxuXHRkb3dudGltZUFwaUVycm9yU2FnYTogZG93bnRpbWVBcGlFcnJvclNhZ2EoKVxufVxuXG4vKipcbiAqIFRoZSBkZWZhdWx0IHNhZ2FzIHRoYXQgd2lsbCBydW4gYWZ0ZXIgYXV0aCBpcyBpbml0aWFsaXplZCwgdW5sZXNzIGBzZXREZXBlbmRlbnRTYWdhcygpYCBpcyBjYWxsZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0RGVwZW5kZW50U2FnYXMgPSAoKSA9PiB7XG5cdHJldHVybiBkZWZhdWx0RGVwZW5kZW50U2FnYXNcbn1cblxubGV0IGRlcGVuZGVudFNhZ2FzOiBSZWNvcmQ8c3RyaW5nLCBTYWdhSXRlcmF0b3I+ID0ge1xuXHQuLi5kZWZhdWx0RGVwZW5kZW50U2FnYXNcbn1cblxuLyoqXG4gKiBVcGRhdGUgdGhlIHNhZ2FzIHRoYXQgd2lsbCBydW4gYWZ0ZXIgYXV0aCBpcyBpbml0aWFsaXplZC4gU2VlIGBnZXREZWZhdWx0RGVwZW5kZW50U2FnYXMoKWAuXG4gKi9cbmV4cG9ydCBjb25zdCBzZXREZXBlbmRlbnRTYWdhcyA9ICh2YWx1ZTogUmVjb3JkPHN0cmluZywgU2FnYUl0ZXJhdG9yPikgPT4ge1xuXHRkZXBlbmRlbnRTYWdhcyA9IHZhbHVlXG59XG5cbi8vI2VuZHJlZ2lvbiBTZXR1cFxuXG5mdW5jdGlvbiogZGVwZW5kZW50U2FnYXNHZW5lcmF0b3IoKSB7XG5cdHlpZWxkIGFsbChkZXBlbmRlbnRTYWdhcylcbn1cblxuY29uc3QgZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXIgPSAoXG5cdGVycm9yOiBFcnJvcixcblx0bW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24/OiBNb2RlbEZldGNoUmVxdWVzdEFjdGlvbiB8IFBlcmlvZGljTW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24sXG5cdGZldGNoQ29uZmlnPzogRmV0Y2hDb25maWcsXG5cdGZldGNoUmVzdWx0PzogRmV0Y2hSZXN1bHQsXG5cdGZldGNoRXJyb3JEYXRhPzogRmV0Y2hFcnJvckRhdGFcbikgPT4ge1xuXHRTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihcblx0XHRlcnJvcixcblx0XHRtb2RlbEZldGNoUmVxdWVzdEFjdGlvblxuXHRcdFx0PyB7XG5cdFx0XHRcdFx0Y29udGV4dHM6IHtcblx0XHRcdFx0XHRcdCdGZXRjaCBBY3Rpb24nOiB7IC4uLm1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uIH0sXG5cdFx0XHRcdFx0XHQnRmV0Y2ggQ29uZmlnJzogKGZldGNoQ29uZmlnIHx8IHt9KSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcblx0XHRcdFx0XHRcdCdGZXRjaCBSZXN1bHQnOiAoZmV0Y2hSZXN1bHQgfHwge30pIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuXHRcdFx0XHRcdFx0J0ZldGNoIEVycm9yIERhdGEnOiAoZmV0Y2hFcnJvckRhdGEgfHwge30pIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHQ6IHVuZGVmaW5lZFxuXHQpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKiByb290U2FnYSgpOiBJdGVyYWJsZUl0ZXJhdG9yPEZvcmtFZmZlY3QgfCBBbGxFZmZlY3Q8YW55Pj4ge1xuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxuXHRjb25zdCBlbmRwb2ludE1hcHBpbmdzID0gZ2V0RW5kcG9pbnRNYXBwaW5ncygpXG5cblx0aWYgKGFwcENvbmZpZy5JU19ET1dOVElNRSkge1xuXHRcdHJldHVyblxuXHR9XG5cblx0Ly8gRG9u4oCZdCBzdGFydCB0aGUgcmVtYWluaW5nIHNhZ2FzIHVudGlsIGF1dGggaXMgaW5pdGlhbGl6ZWRcblx0Ly8gdGFrZUV2ZXJ5IGlzIHVzZWQgYmVjYXVzZSB3ZSB3b3VsZG7igJl0IHdhbnQgdG8gYmxvY2sgb24gYHRha2VgXG5cdHlpZWxkIHRha2VFdmVyeShBVVRIX1RPS0VOX0FDVElPTl9UWVBFLkFVVEhfSU5JVElBTElaRUQsIGRlcGVuZGVudFNhZ2FzR2VuZXJhdG9yKVxuXHR5aWVsZCBhbGwoe1xuXHRcdGVycm9yU2FnYTogZXJyb3JTYWdhKCksXG5cdFx0bW9kZWxGZXRjaFNhZ2E6IG1vZGVsRmV0Y2hTYWdhKGVuZHBvaW50TWFwcGluZ3MsIGFwcENvbmZpZy5BUElfVVJMLCBnZXRPQXV0aFRva2VuLCBlcnJvckhhbmRsZXIpLFxuXHRcdGF1dGhTYWdhOiBhdXRoU2FnYShwZXJzaXN0ZW5jZVNlcnZpY2UsIHRpY2tldFByb3ZpZGVyU2VydmljZSwgY29kZVByb3ZpZGVyU2VydmljZSwgZXJyb3JIYW5kbGVyKVxuXHR9KVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLG9CQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxtQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssc0JBQUEsR0FBQUwsT0FBQTtBQUVBLElBQUFNLFdBQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLGdCQUFBLEdBQUFDLHNCQUFBLENBQUFSLE9BQUE7QUFDQSxJQUFBUyxTQUFBLEdBQUFWLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxZQUFBLEdBQUFGLHNCQUFBLENBQUFSLE9BQUE7QUFDQSxJQUFBVyxnQkFBQSxHQUFBSCxzQkFBQSxDQUFBUixPQUFBO0FBQ0EsSUFBQVksa0JBQUEsR0FBQUosc0JBQUEsQ0FBQVIsT0FBQTtBQUNBLElBQUFhLHFCQUFBLEdBQUFMLHNCQUFB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
103
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZW50cnkiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfZWZmZWN0cyIsIl9jb25maWd1cmF0aW9uIiwiX2NvZGVQcm92aWRlclNlcnZpY2UiLCJfcGVyc2lzdGVuY2VTZXJ2aWNlIiwiX0F1dGhBY3Rpb24iLCJfYXBwSW5zaWdodHNTYWdhIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9hdXRoU2FnYSIsIl9jYWxpcGVyU2FnYSIsIl9jbG9ja09mZnNldFNhZ2EiLCJfY29uZmlndXJhdGlvblNhZ2EiLCJfZG93bnRpbWVBcGlFcnJvclNhZ2EiLCJfZXJyb3JTYWdhIiwiX2dvb2dsZUFuYWx5dGljc1NhZ2EiLCJfaWRlbnRpdHlQcm92aWRlclNhZ2EiLCJfaW5pdGlhbERhdGFMb2FkU2FnYSIsIl9sb2NrRG93bkJyb3dzZXJFcnJvclNhZ2EiLCJfbW9kZWxGZXRjaFNhZ2EiLCJfbm9TdG9yZVNhZ2EiLCJfcG9zdExvZ2luRGF0YVNhZ2EiLCJfcG9zdExvZ2luUmVkaXJlY3RTYWdhIiwiX3NlbnRyeVNhZ2EiLCJfdXNlcklkU2FnYSIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImRlZmF1bHREZXBlbmRlbnRTYWdhcyIsIm5vU3RvcmVTYWdhIiwiY29uZmlndXJhdGlvblNhZ2EiLCJjYWxpcGVyU2FnYSIsInVzZXJJZFNhZ2EiLCJzZW50cnlTYWdhIiwiZ29vZ2xlQW5hbHl0aWNzU2FnYSIsImFwcEluc2lnaHRzU2FnYSIsImluaXRpYWxEYXRhTG9hZFNhZ2EiLCJpZGVudGl0eVByb3ZpZGVyU2FnYSIsInBvc3RMb2dpblJlZGlyZWN0U2FnYSIsInBvc3RMb2dpbkRhdGFTYWdhIiwiY2xvY2tPZmZzZXRTYWdhIiwibG9ja0Rvd25Ccm93c2VyRXJyb3JTYWdhIiwiZG93bnRpbWVBcGlFcnJvclNhZ2EiLCJnZXREZWZhdWx0RGVwZW5kZW50U2FnYXMiLCJleHBvcnRzIiwiZGVwZW5kZW50U2FnYXMiLCJzZXREZXBlbmRlbnRTYWdhcyIsInZhbHVlIiwiZGVwZW5kZW50U2FnYXNHZW5lcmF0b3IiLCJhbGwiLCJlcnJvckhhbmRsZXIiLCJlcnJvciIsIm1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uIiwiZmV0Y2hDb25maWciLCJmZXRjaFJlc3VsdCIsImZldGNoRXJyb3JEYXRhIiwiY2FwdHVyZUV4Y2VwdGlvbiIsImNvbnRleHRzIiwidW5kZWZpbmVkIiwicm9vdFNhZ2EiLCJhcHBDb25maWciLCJnZXRBcHBDb25maWciLCJlbmRwb2ludE1hcHBpbmdzIiwiZ2V0RW5kcG9pbnRNYXBwaW5ncyIsIklTX0RPV05USU1FIiwidGFrZUV2ZXJ5IiwiQVVUSF9UT0tFTl9BQ1RJT05fVFlQRSIsIkFVVEhfSU5JVElBTElaRUQiLCJlcnJvclNhZ2EiLCJtb2RlbEZldGNoU2FnYSIsIkFQSV9VUkwiLCJnZXRPQXV0aFRva2VuIiwiYXV0aFNhZ2EiLCJwZXJzaXN0ZW5jZVNlcnZpY2UiLCJjb2RlUHJvdmlkZXJTZXJ2aWNlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlZHV4L3NhZ2FzL3Jvb3RTYWdhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFNlbnRyeSBmcm9tICdAc2VudHJ5L3JlYWN0J1xuaW1wb3J0IHsgU2FnYUl0ZXJhdG9yIH0gZnJvbSAncmVkdXgtc2FnYSdcbmltcG9ydCB7IGFsbCwgQWxsRWZmZWN0LCBGb3JrRWZmZWN0LCB0YWtlRXZlcnkgfSBmcm9tICdyZWR1eC1zYWdhL2VmZmVjdHMnXG5pbXBvcnQgeyBnZXRBcHBDb25maWcsIGdldEVuZHBvaW50TWFwcGluZ3MgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29uZmlndXJhdGlvbidcbmltcG9ydCB7IGNvZGVQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb2RlUHJvdmlkZXJTZXJ2aWNlJ1xuaW1wb3J0IHsgcGVyc2lzdGVuY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGVyc2lzdGVuY2VTZXJ2aWNlJ1xuaW1wb3J0IHsgRXJyb3JIYW5kbGVyLCBGZXRjaENvbmZpZywgRmV0Y2hFcnJvckRhdGEsIEZldGNoUmVzdWx0IH0gZnJvbSAnLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyBBVVRIX1RPS0VOX0FDVElPTl9UWVBFIH0gZnJvbSAnLi4vYWN0aW9ucy9BdXRoQWN0aW9uJ1xuaW1wb3J0IHsgTW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24sIFBlcmlvZGljTW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24gfSBmcm9tICcuLi9hY3Rpb25zL01vZGVsQWN0aW9uJ1xuaW1wb3J0IGFwcEluc2lnaHRzU2FnYSBmcm9tICcuL2FwcEluc2lnaHRzU2FnYSdcbmltcG9ydCBhdXRoU2FnYSwgeyBnZXRPQXV0aFRva2VuIH0gZnJvbSAnLi9hdXRoU2FnYSdcbmltcG9ydCBjYWxpcGVyU2FnYSBmcm9tICcuL2NhbGlwZXJTYWdhJ1xuaW1wb3J0IGNsb2NrT2Zmc2V0U2FnYSBmcm9tICcuL2Nsb2NrT2Zmc2V0U2FnYSdcbmltcG9ydCBjb25maWd1cmF0aW9uU2FnYSBmcm9tICcuL2NvbmZpZ3VyYXRpb25TYWdhJ1xuaW1wb3J0IGRvd250aW1lQXBpRXJyb3JTYWdhIGZyb20gJy4vZG93bnRpbWVBcGlFcnJvclNhZ2EnXG5pbXBvcnQgZXJyb3JTYWdhIGZyb20gJy4vZXJyb3JTYWdhJ1xuaW1wb3J0IGdvb2dsZUFuYWx5dGljc1NhZ2EgZnJvbSAnLi9nb29nbGVBbmFseXRpY3NTYWdhJ1xuaW1wb3J0IGlkZW50aXR5UHJvdmlkZXJTYWdhIGZyb20gJy4vaWRlbnRpdHlQcm92aWRlclNhZ2EnXG5pbXBvcnQgaW5pdGlhbERhdGFMb2FkU2FnYSBmcm9tICcuL2luaXRpYWxEYXRhTG9hZFNhZ2EnXG5pbXBvcnQgbG9ja0Rvd25Ccm93c2VyRXJyb3JTYWdhIGZyb20gJy4vbG9ja0Rvd25Ccm93c2VyRXJyb3JTYWdhJ1xuaW1wb3J0IG1vZGVsRmV0Y2hTYWdhIGZyb20gJy4vbW9kZWxGZXRjaFNhZ2EnXG5pbXBvcnQgbm9TdG9yZVNhZ2EgZnJvbSAnLi9ub1N0b3JlU2FnYSdcbmltcG9ydCBwb3N0TG9naW5EYXRhU2FnYSBmcm9tICcuL3Bvc3RMb2dpbkRhdGFTYWdhJ1xuaW1wb3J0IHBvc3RMb2dpblJlZGlyZWN0U2FnYSBmcm9tICcuL3Bvc3RMb2dpblJlZGlyZWN0U2FnYSdcbmltcG9ydCBzZW50cnlTYWdhIGZyb20gJy4vc2VudHJ5U2FnYSdcbmltcG9ydCB1c2VySWRTYWdhIGZyb20gJy4vdXNlcklkU2FnYSdcblxuLy8jcmVnaW9uIFNldHVwXG5cbmNvbnN0IGRlZmF1bHREZXBlbmRlbnRTYWdhczogUmVjb3JkPHN0cmluZywgU2FnYUl0ZXJhdG9yPiA9IHtcblx0bm9TdG9yZVNhZ2E6IG5vU3RvcmVTYWdhKCksXG5cdGNvbmZpZ3VyYXRpb25TYWdhOiBjb25maWd1cmF0aW9uU2FnYSgpLFxuXHRjYWxpcGVyU2FnYTogY2FsaXBlclNhZ2EoKSxcblx0dXNlcklkU2FnYTogdXNlcklkU2FnYSgpLFxuXHRzZW50cnlTYWdhOiBzZW50cnlTYWdhKCksXG5cdGdvb2dsZUFuYWx5dGljc1NhZ2E6IGdvb2dsZUFuYWx5dGljc1NhZ2EoKSxcblx0YXBwSW5zaWdodHNTYWdhOiBhcHBJbnNpZ2h0c1NhZ2EoKSxcblx0aW5pdGlhbERhdGFMb2FkU2FnYTogaW5pdGlhbERhdGFMb2FkU2FnYSgpLFxuXHRpZGVudGl0eVByb3ZpZGVyU2FnYTogaWRlbnRpdHlQcm92aWRlclNhZ2EoKSxcblx0cG9zdExvZ2luUmVkaXJlY3RTYWdhOiBwb3N0TG9naW5SZWRpcmVjdFNhZ2EoKSxcblx0cG9zdExvZ2luRGF0YVNhZ2E6IHBvc3RMb2dpbkRhdGFTYWdhKCksXG5cdGNsb2NrT2Zmc2V0U2FnYTogY2xvY2tPZmZzZXRTYWdhKCksXG5cdGxvY2tEb3duQnJvd3NlckVycm9yU2FnYTogbG9ja0Rvd25Ccm93c2VyRXJyb3JTYWdhKCksXG5cdGRvd250aW1lQXBpRXJyb3JTYWdhOiBkb3dudGltZUFwaUVycm9yU2FnYSgpXG59XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgc2FnYXMgdGhhdCB3aWxsIHJ1biBhZnRlciBhdXRoIGlzIGluaXRpYWxpemVkLCB1bmxlc3MgYHNldERlcGVuZGVudFNhZ2FzKClgIGlzIGNhbGxlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldERlZmF1bHREZXBlbmRlbnRTYWdhcyA9ICgpID0+IHtcblx0cmV0dXJuIGRlZmF1bHREZXBlbmRlbnRTYWdhc1xufVxuXG5sZXQgZGVwZW5kZW50U2FnYXM6IFJlY29yZDxzdHJpbmcsIFNhZ2FJdGVyYXRvcj4gPSB7XG5cdC4uLmRlZmF1bHREZXBlbmRlbnRTYWdhc1xufVxuXG4vKipcbiAqIFVwZGF0ZSB0aGUgc2FnYXMgdGhhdCB3aWxsIHJ1biBhZnRlciBhdXRoIGlzIGluaXRpYWxpemVkLiBTZWUgYGdldERlZmF1bHREZXBlbmRlbnRTYWdhcygpYC5cbiAqL1xuZXhwb3J0IGNvbnN0IHNldERlcGVuZGVudFNhZ2FzID0gKHZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBTYWdhSXRlcmF0b3I+KSA9PiB7XG5cdGRlcGVuZGVudFNhZ2FzID0gdmFsdWVcbn1cblxuLy8jZW5kcmVnaW9uIFNldHVwXG5cbmZ1bmN0aW9uKiBkZXBlbmRlbnRTYWdhc0dlbmVyYXRvcigpIHtcblx0eWllbGQgYWxsKGRlcGVuZGVudFNhZ2FzKVxufVxuXG5jb25zdCBlcnJvckhhbmRsZXI6IEVycm9ySGFuZGxlciA9IChcblx0ZXJyb3I6IEVycm9yLFxuXHRtb2RlbEZldGNoUmVxdWVzdEFjdGlvbj86IE1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uIHwgUGVyaW9kaWNNb2RlbEZldGNoUmVxdWVzdEFjdGlvbixcblx0ZmV0Y2hDb25maWc/OiBGZXRjaENvbmZpZyxcblx0ZmV0Y2hSZXN1bHQ/OiBGZXRjaFJlc3VsdCxcblx0ZmV0Y2hFcnJvckRhdGE/OiBGZXRjaEVycm9yRGF0YVxuKSA9PiB7XG5cdFNlbnRyeS5jYXB0dXJlRXhjZXB0aW9uKFxuXHRcdGVycm9yLFxuXHRcdG1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uXG5cdFx0XHQ/IHtcblx0XHRcdFx0XHRjb250ZXh0czoge1xuXHRcdFx0XHRcdFx0J0ZldGNoIEFjdGlvbic6IHsgLi4ubW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24gfSxcblx0XHRcdFx0XHRcdCdGZXRjaCBDb25maWcnOiAoZmV0Y2hDb25maWcgfHwge30pIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuXHRcdFx0XHRcdFx0J0ZldGNoIFJlc3VsdCc6IChmZXRjaFJlc3VsdCB8fCB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG5cdFx0XHRcdFx0XHQnRmV0Y2ggRXJyb3IgRGF0YSc6IChmZXRjaEVycm9yRGF0YSB8fCB7fSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdDogdW5kZWZpbmVkXG5cdClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24qIHJvb3RTYWdhKCk6IEl0ZXJhYmxlSXRlcmF0b3I8Rm9ya0VmZmVjdCB8IEFsbEVmZmVjdDxhbnk+PiB7XG5cdGNvbnN0IGFwcENvbmZpZyA9IGdldEFwcENvbmZpZygpXG5cdGNvbnN0IGVuZHBvaW50TWFwcGluZ3MgPSBnZXRFbmRwb2ludE1hcHBpbmdzKClcblxuXHRpZiAoYXBwQ29uZmlnLklTX0RPV05USU1FKSB7XG5cdFx0cmV0dXJuXG5cdH1cblxuXHQvLyBEb27igJl0IHN0YXJ0IHRoZSByZW1haW5pbmcgc2FnYXMgdW50aWwgYXV0aCBpcyBpbml0aWFsaXplZFxuXHQvLyB0YWtlRXZlcnkgaXMgdXNlZCBiZWNhdXNlIHdlIHdvdWxkbuKAmXQgd2FudCB0byBibG9jayBvbiBgdGFrZWBcblx0eWllbGQgdGFrZUV2ZXJ5KEFVVEhfVE9LRU5fQUNUSU9OX1RZUEUuQVVUSF9JTklUSUFMSVpFRCwgZGVwZW5kZW50U2FnYXNHZW5lcmF0b3IpXG5cdHlpZWxkIGFsbCh7XG5cdFx0ZXJyb3JTYWdhOiBlcnJvclNhZ2EoKSxcblx0XHRtb2RlbEZldGNoU2FnYTogbW9kZWxGZXRjaFNhZ2EoZW5kcG9pbnRNYXBwaW5ncywgYXBwQ29uZmlnLkFQSV9VUkwsIGdldE9BdXRoVG9rZW4sIGVycm9ySGFuZGxlciksXG5cdFx0YXV0aFNhZ2E6IGF1dGhTYWdhKHBlcnNpc3RlbmNlU2VydmljZSwgY29kZVByb3ZpZGVyU2VydmljZSwgZXJyb3JIYW5kbGVyKVxuXHR9KVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLG9CQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxtQkFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBRUEsSUFBQU0sZ0JBQUEsR0FBQUMsc0JBQUEsQ0FBQVAsT0FBQTtBQUNBLElBQUFRLFNBQUEsR0FBQVQsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFlBQUEsR0FBQUYsc0JBQUEsQ0FBQVAsT0FBQTtBQUNBLElBQUFVLGdCQUFBLEdBQUFILHNCQUFBLENBQUFQLE9BQUE7QUFDQSxJQUFBVyxrQkFBQSxHQUFBSixzQkFBQSxDQUFBUCxPQUFBO0FBQ0EsSUFBQVkscUJBQUEsR0FBQUwsc0JBQUEsQ0FBQVAsT0FBQTtBQUNBLElBQUFhLFVBQUEsR0FBQU4sc0JBQUEsQ0FBQVAsT0FBQTtBQUNBLElBQUFjLG9CQUFBLEdBQUFQLHNCQUFBLENBQUFQLE9BQUE7QUFDQSxJQUFBZSxxQkFBQSxHQUFBUixzQkFBQSxDQUFBUCxPQUFBO0FBQ0EsSUFBQWdCLG9CQUFBLEdBQUFULHNCQUFBLENBQUFQLE9BQUE7QUFDQSxJ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RSxjQUE0QyxHQUFHO0VBQ2xELEdBQUdqQjtBQUNKLENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ08sTUFBTWtCLGlCQUFpQixHQUFJQyxLQUFtQyxJQUFLO0VBQ3pFRixjQUFjLEdBQUdFLEtBQUs7QUFDdkIsQ0FBQzs7QUFFRDtBQUFBSCxPQUFBLENBQUFFLGlCQUFBLEdBQUFBLGlCQUFBO0FBRUEsVUFBVUUsdUJBQXVCQSxDQUFBLEVBQUc7RUFDbkMsTUFBTSxJQUFBQyxZQUFHLEVBQUNKLGNBQWMsQ0FBQztBQUMxQjtBQUVBLE1BQU1LLFlBQTBCLEdBQUdBLENBQ2xDQyxLQUFZLEVBQ1pDLHVCQUFtRixFQUNuRkMsV0FBeUIsRUFDekJDLFdBQXlCLEVBQ3pCQyxjQUErQixLQUMzQjtFQUNKeEUsTUFBTSxDQUFDeUUsZ0JBQWdCLENBQ3RCTCxLQUFLLEVBQ0xDLHVCQUF1QixHQUNwQjtJQUNBSyxRQUFRLEVBQUU7TUFDVCxjQUFjLEVBQUU7UUFBRSxHQUFHTDtNQUF3QixDQUFDO01BQzlDLGNBQWMsRUFBR0MsV0FBVyxJQUFJLENBQUMsQ0FBNkI7TUFDOUQsY0FBYyxFQUFHQyxXQUFXLElBQUksQ0FBQyxDQUE2QjtNQUM5RCxrQkFBa0IsRUFBR0MsY0FBYyxJQUFJLENBQUM7SUFDekM7RUFDRCxDQUFDLEdBQ0FHLFNBQ0osQ0FBQztBQUNGLENBQUM7QUFFYyxVQUFVQyxRQUFRQSxDQUFBLEVBQWtEO0VBQ2xGLE1BQU1DLFNBQVMsR0FBRyxJQUFBQywyQkFBWSxFQUFDLENBQUM7RUFDaEMsTUFBTUMsZ0JBQWdCLEdBQUcsSUFBQUMsa0NBQW1CLEVBQUMsQ0FBQztFQUU5QyxJQUFJSCxTQUFTLENBQUNJLFdBQVcsRUFBRTtJQUMxQjtFQUNEOztFQUVBO0VBQ0E7RUFDQSxNQUFNLElBQUFDLGtCQUFTLEVBQUNDLGtDQUFzQixDQUFDQyxnQkFBZ0IsRUFBRW5CLHVCQUF1QixDQUFDO0VBQ2pGLE1BQU0sSUFBQUMsWUFBRyxFQUFDO0lBQ1RtQixTQUFTLEVBQUUsSUFBQUEsa0JBQVMsRUFBQyxDQUFDO0lBQ3RCQyxjQUFjLEVBQUUsSUFBQUEsdUJBQWMsRUFBQ1AsZ0JBQWdCLEVBQUVGLFNBQVMsQ0FBQ1UsT0FBTyxFQUFFQyx1QkFBYSxFQUFFckIsWUFBWSxDQUFDO0lBQ2hHc0IsUUFBUSxFQUFFLElBQUFBLGlCQUFRLEVBQUNDLHNDQUFrQixFQUFFQyx3Q0FBbUIsRUFBRXhCLFlBQVk7RUFDekUsQ0FBQyxDQUFDO0FBQ0giLCJpZ25vcmVMaXN0IjpbXX0=
@@ -2,6 +2,4 @@ export * from './AuthPersistenceService';
2
2
  export * from './AuthState';
3
3
  export * from './ClientCredentials';
4
4
  export * from './CodeProviderService';
5
- export * from './CasV1LoginRequestBody';
6
5
  export * from './LocalLoginRequestBody';
7
- export * from './TicketProviderService';
@@ -47,17 +47,6 @@ Object.keys(_CodeProviderService).forEach(function (key) {
47
47
  }
48
48
  });
49
49
  });
50
- var _CasV1LoginRequestBody = require("./CasV1LoginRequestBody");
51
- Object.keys(_CasV1LoginRequestBody).forEach(function (key) {
52
- if (key === "default" || key === "__esModule") return;
53
- if (key in exports && exports[key] === _CasV1LoginRequestBody[key]) return;
54
- Object.defineProperty(exports, key, {
55
- enumerable: true,
56
- get: function () {
57
- return _CasV1LoginRequestBody[key];
58
- }
59
- });
60
- });
61
50
  var _LocalLoginRequestBody = require("./LocalLoginRequestBody");
62
51
  Object.keys(_LocalLoginRequestBody).forEach(function (key) {
63
52
  if (key === "default" || key === "__esModule") return;
@@ -69,15 +58,4 @@ Object.keys(_LocalLoginRequestBody).forEach(function (key) {
69
58
  }
70
59
  });
71
60
  });
72
- var _TicketProviderService = require("./TicketProviderService");
73
- Object.keys(_TicketProviderService).forEach(function (key) {
74
- if (key === "default" || key === "__esModule") return;
75
- if (key in exports && exports[key] === _TicketProviderService[key]) return;
76
- Object.defineProperty(exports, key, {
77
- enumerable: true,
78
- get: function () {
79
- return _TicketProviderService[key];
80
- }
81
- });
82
- });
83
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQXV0aFBlcnNpc3RlbmNlU2VydmljZSIsInJlcXVpcmUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImV4cG9ydHMiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJfQXV0aFN0YXRlIiwiX0NsaWVudENyZWRlbnRpYWxzIiwiX0NvZGVQcm92aWRlclNlcnZpY2UiLCJfQ2FzVjFMb2dpblJlcXVlc3RCb2R5IiwiX0xvY2FsTG9naW5SZXF1ZXN0Qm9keSIsIl9UaWNrZXRQcm92aWRlclNlcnZpY2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvYXV0aC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL0F1dGhQZXJzaXN0ZW5jZVNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL0F1dGhTdGF0ZSdcbmV4cG9ydCAqIGZyb20gJy4vQ2xpZW50Q3JlZGVudGlhbHMnXG5leHBvcnQgKiBmcm9tICcuL0NvZGVQcm92aWRlclNlcnZpY2UnXG5leHBvcnQgKiBmcm9tICcuL0Nhc1YxTG9naW5SZXF1ZXN0Qm9keSdcbmV4cG9ydCAqIGZyb20gJy4vTG9jYWxMb2dpblJlcXVlc3RCb2R5J1xuZXhwb3J0ICogZnJvbSAnLi9UaWNrZXRQcm92aWRlclNlcnZpY2UnXG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBQUEsdUJBQUEsR0FBQUMsT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUgsdUJBQUEsRUFBQUksT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUMsT0FBQSxJQUFBQSxPQUFBLENBQUFELEdBQUEsTUFBQUwsdUJBQUEsQ0FBQUssR0FBQTtFQUFBSCxNQUFBLENBQUFLLGNBQUEsQ0FBQUQsT0FBQSxFQUFBRCxHQUFBO0lBQUFHLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxDQUFBO01BQUEsT0FBQVQsdUJB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
61
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQXV0aFBlcnNpc3RlbmNlU2VydmljZSIsInJlcXVpcmUiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsImV4cG9ydHMiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJfQXV0aFN0YXRlIiwiX0NsaWVudENyZWRlbnRpYWxzIiwiX0NvZGVQcm92aWRlclNlcnZpY2UiLCJfTG9jYWxMb2dpblJlcXVlc3RCb2R5Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2F1dGgvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9BdXRoUGVyc2lzdGVuY2VTZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9BdXRoU3RhdGUnXG5leHBvcnQgKiBmcm9tICcuL0NsaWVudENyZWRlbnRpYWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9Db2RlUHJvdmlkZXJTZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9Mb2NhbExvZ2luUmVxdWVzdEJvZHknXG4iXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsSUFBQUEsdUJBQUEsR0FBQUMsT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUgsdUJBQUEsRUFBQUksT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUMsT0FBQSxJQUFBQSxPQUFBLENBQUFELEdBQUEsTUFBQUwsdUJBQUEsQ0FBQUssR0FBQTtFQUFBSCxNQUFBLENBQUFLLGNBQUEsQ0FBQUQsT0FBQSxFQUFBRCxHQUFBO0lBQUFHLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxDQUFBO01BQUEsT0FBQVQsdUJBQUEsQ0FBQUssR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUNBLElBQUFLLFVBQUEsR0FBQVQsT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQU8sVUFBQSxFQUFBTixPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBQyxPQUFBLElBQUFBLE9BQUEsQ0FBQUQsR0FBQSxNQUFBSyxVQUFBLENBQUFMLEdBQUE7RUFBQUgsTUFBQSxDQUFBSyxjQUFBLENBQUFELE9BQUEsRUFBQUQsR0FBQTtJQUFBRyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFDLFVBQUEsQ0FBQUwsR0FBQTtJQUFBO0VBQUE7QUFBQTtBQUNBLElBQUFNLGtCQUFBLEdBQUFWLE9BQUE7QUFBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFRLGtCQUFBLEVBQUFQLE9BQUEsV0FBQUMsR0FBQTtFQUFBLElBQUFBLEdBQUEsa0JBQUFBLEdBQUE7RUFBQSxJQUFBQSxHQUFBLElBQUFDLE9BQUEsSUFBQUEsT0FBQSxDQUFBRCxHQUFBLE1BQUFNLGtCQUFBLENBQUFOLEdBQUE7RUFBQUgsTUFBQSxDQUFBSyxjQUFBLENBQUFELE9BQUEsRUFBQUQsR0FBQTtJQUFBRyxVQUFBO0lBQUFDLEdBQUEsV0FBQUEsQ0FBQTtNQUFBLE9BQUFFLGtCQUFBLENBQUFOLEdBQUE7SUFBQTtFQUFBO0FBQUE7QUFDQSxJQUFBTyxvQkFBQSxHQUFBWCxPQUFBO0FBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBUyxvQkFBQSxFQUFBUixPQUFBLFdBQUFDLEdBQUE7RUFBQSxJQUFBQSxHQUFBLGtCQUFBQSxHQUFBO0VBQUEsSUFBQUEsR0FBQSxJQUFBQyxPQUFBLElBQUFBLE9BQUEsQ0FBQUQsR0FBQSxNQUFBTyxvQkFBQSxDQUFBUCxHQUFBO0VBQUFILE1BQUEsQ0FBQUssY0FBQSxDQUFBRCxPQUFBLEVBQUFELEdBQUE7SUFBQUcsVUFBQTtJQUFBQyxHQUFBLFdBQUFBLENBQUE7TUFBQSxPQUFBRyxvQkFBQSxDQUFBUCxHQUFBO0lBQUE7RUFBQTtBQUFBO0FBQ0EsSUFBQVEsc0JBQUEsR0FBQVosT0FBQTtBQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQVUsc0JBQUEsRUFBQVQsT0FBQSxXQUFBQyxHQUFBO0VBQUEsSUFBQUEsR0FBQSxrQkFBQUEsR0FBQTtFQUFBLElBQUFBLEdBQUEsSUFBQUMsT0FBQSxJQUFBQSxPQUFBLENBQUFELEdBQUEsTUFBQVEsc0JBQUEsQ0FBQVIsR0FBQTtFQUFBSCxNQUFBLENBQUFLLGNBQUEsQ0FBQUQsT0FBQSxFQUFBRCxHQUFBO0lBQUFHLFVBQUE7SUFBQUMsR0FBQSxXQUFBQSxDQUFBO01BQUEsT0FBQUksc0JBQUEsQ0FBQVIsR0FBQTtJQUFBO0VBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
package/lib/utils/auth.js CHANGED
@@ -7,10 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.isTokenRefreshable = exports.isTokenExpired = exports.getPurdueIdentityProviderFromLocation = exports.calculateTokenSecondsRemaining = void 0;
8
8
  var _moment = _interopRequireDefault(require("moment"));
9
9
  var _configuration = require("../constants/configuration");
10
- var _ticketProviderService = require("../services/ticketProviderService");
11
10
  var _windowService = require("../services/windowService");
12
11
  var _date = require("./date");
13
12
  var _shard = require("./shard");
13
+ var _url = require("./url");
14
14
  const isTokenExpired = function (token) {
15
15
  let nowUtc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0, _date.getServerNowUtc)().toISOString();
16
16
  return !!token && !!token['.expires'] && (0, _date.isNowEqualOrAfterDate)(token['.expires'], nowUtc);
@@ -31,10 +31,9 @@ const getPurdueIdentityProviderFromLocation = () => {
31
31
  const appConfig = (0, _configuration.getAppConfig)();
32
32
  const location = _windowService.windowService.getLocation();
33
33
  if (!(0, _shard.isPurdueShard)() || !location.host.includes(appConfig.ROOT_DOMAIN)) return undefined;
34
- const service = _ticketProviderService.ticketProviderService.getAppServiceName();
35
- const casService = 'https://sso.purdue.edu/idp/profile/cas';
36
- const loginUrl = `${casService}/login?service=${service}`;
37
- const logoutUrl = `${casService}/logout?service=${service}`;
34
+ const webUrl = `${location.protocol}//${location.host}`;
35
+ const loginUrl = `${(0, _url.getApiUrl)()}/api/account/authorize?returnUrl=${encodeURIComponent(webUrl)}`;
36
+ const logoutUrl = webUrl;
38
37
  return {
39
38
  loginUrl,
40
39
  logoutUrl
@@ -52,4 +51,4 @@ const calculateTokenSecondsRemaining = function (authPersistenceService) {
52
51
  return Math.ceil(Math.max(secondsRemaining, 0));
53
52
  };
54
53
  exports.calculateTokenSecondsRemaining = calculateTokenSecondsRemaining;
55
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uZmlndXJhdGlvbiIsIl90aWNrZXRQcm92aWRlclNlcnZpY2UiLCJfd2luZG93U2VydmljZSIsIl9kYXRlIiwiX3NoYXJkIiwiaXNUb2tlbkV4cGlyZWQiLCJ0b2tlbiIsIm5vd1V0YyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImdldFNlcnZlck5vd1V0YyIsInRvSVNPU3RyaW5nIiwiaXNOb3dFcXVhbE9yQWZ0ZXJEYXRlIiwiZXhwb3J0cyIsImlzVG9rZW5SZWZyZXNoYWJsZSIsInJlZnJlc2hfdG9rZW4iLCJpc05vd0JlZm9yZURhdGUiLCJnZXRQdXJkdWVJZGVudGl0eVByb3ZpZGVyRnJvbUxvY2F0aW9uIiwiYXBwQ29uZmlnIiwiZ2V0QXBwQ29uZmlnIiwibG9jYXRpb24iLCJ3aW5kb3dTZXJ2aWNlIiwiZ2V0TG9jYXRpb24iLCJpc1B1cmR1ZVNoYXJkIiwiaG9zdCIsImluY2x1ZGVzIiwiUk9PVF9ET01BSU4iLCJzZXJ2aWNlIiwidGlja2V0UHJvdmlkZXJTZXJ2aWNlIiwiZ2V0QXBwU2VydmljZU5hbWUiLCJjYXNTZXJ2aWNlIiwibG9naW5VcmwiLCJsb2dvdXRVcmwiLCJjYWxjdWxhdGVUb2tlblNlY29uZHNSZW1haW5pbmciLCJhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlIiwib2F1dGhUb2tlbiIsImdldFBlcnNpc3RlZFRva2VuIiwic2Vjb25kc1JlbWFpbmluZyIsIm1vbWVudCIsImRpZmYiLCJNYXRoIiwiY2VpbCIsIm1heCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hdXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50J1xuaW1wb3J0IHsgZ2V0QXBwQ29uZmlnIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbmZpZ3VyYXRpb24nXG5pbXBvcnQgeyB0aWNrZXRQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy90aWNrZXRQcm92aWRlclNlcnZpY2UnXG5pbXBvcnQgeyB3aW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvd2luZG93U2VydmljZSdcbmltcG9ydCB7IEF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UsIElkZW50aXR5UHJvdmlkZXIsIE9BdXRoVG9rZW4sIE9BdXRoVG9rZW5SZXNwb25zZSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0U2VydmVyTm93VXRjLCBpc05vd0JlZm9yZURhdGUsIGlzTm93RXF1YWxPckFmdGVyRGF0ZSB9IGZyb20gJy4vZGF0ZSdcbmltcG9ydCB7IGlzUHVyZHVlU2hhcmQgfSBmcm9tICcuL3NoYXJkJ1xuXG5leHBvcnQgY29uc3QgaXNUb2tlbkV4cGlyZWQgPSAoXG5cdHRva2VuOiBPQXV0aFRva2VuUmVzcG9uc2UsXG5cdG5vd1V0YyA9IGdldFNlcnZlck5vd1V0YygpLnRvSVNPU3RyaW5nKClcbik6IHRva2VuIGlzIE9BdXRoVG9rZW4gPT4gISF0b2tlbiAmJiAhIXRva2VuWycuZXhwaXJlcyddICYmIGlzTm93RXF1YWxPckFmdGVyRGF0ZSh0b2tlblsnLmV4cGlyZXMnXSwgbm93VXRjKVxuXG5leHBvcnQgY29uc3QgaXNUb2tlblJlZnJlc2hhYmxlID0gKFxuXHR0b2tlbjogT0F1dGhUb2tlblJlc3BvbnNlLFxuXHRub3dVdGMgPSBnZXRTZXJ2ZXJOb3dVdGMoKS50b0lTT1N0cmluZygpXG4pOiB0b2tlbiBpcyBPQXV0aFRva2VuID0+XG5cdCEhdG9rZW4gJiZcblx0ISF0b2tlbi5yZWZyZXNoX3Rva2VuICYmXG5cdCEhdG9rZW5bJy5yZWZyZXNoX3Rva2VuX2V4cGlyZXMnXSAmJlxuXHRpc05vd0JlZm9yZURhdGUodG9rZW5bJy5yZWZyZXNoX3Rva2VuX2V4cGlyZXMnXSwgbm93VXRjKVxuXG4vKipcbiAqIElmIG9uIHRoZSBwdXJkdWUgc2hhcmQgb2YgdGhlIGFwcCdzIHJvb3QgZG9tYWluLFxuICogcmV0dXJucyBhIGJhcmVib25lcyBpZGVudGl0eSBwcm92aWRlciB0byB1c2UgZm9yIGF1dG8tbG9naW4sXG4gKiBvdGhlcndpc2UgcmV0dXJucyBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFB1cmR1ZUlkZW50aXR5UHJvdmlkZXJGcm9tTG9jYXRpb24gPSAoKSA9PiB7XG5cdGNvbnN0IGFwcENvbmZpZyA9IGdldEFwcENvbmZpZygpXG5cdGNvbnN0IGxvY2F0aW9uID0gd2luZG93U2VydmljZS5nZXRMb2NhdGlvbigpXG5cdGlmICghaXNQdXJkdWVTaGFyZCgpIHx8ICFsb2NhdGlvbi5ob3N0LmluY2x1ZGVzKGFwcENvbmZpZy5ST09UX0RPTUFJTikpIHJldHVybiB1bmRlZmluZWRcblx0Y29uc3Qgc2VydmljZSA9IHRpY2tldFByb3ZpZGVyU2VydmljZS5nZXRBcHBTZXJ2aWNlTmFtZSgpXG5cdGNvbnN0IGNhc1NlcnZpY2UgPSAnaHR0cHM6Ly9zc28ucHVyZHVlLmVkdS9pZHAvcHJvZmlsZS9jYXMnXG5cdGNvbnN0IGxvZ2luVXJsID0gYCR7Y2FzU2VydmljZX0vbG9naW4/c2VydmljZT0ke3NlcnZpY2V9YFxuXHRjb25zdCBsb2dvdXRVcmwgPSBgJHtjYXNTZXJ2aWNlfS9sb2dvdXQ/c2VydmljZT0ke3NlcnZpY2V9YFxuXHRyZXR1cm4geyBsb2dpblVybCwgbG9nb3V0VXJsIH0gYXMgSWRlbnRpdHlQcm92aWRlclxufVxuXG5leHBvcnQgY29uc3QgY2FsY3VsYXRlVG9rZW5TZWNvbmRzUmVtYWluaW5nID0gKFxuXHRhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlOiBBdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLFxuXHRub3dVdGMgPSBnZXRTZXJ2ZXJOb3dVdGMoKS50b0lTT1N0cmluZygpXG4pID0+IHtcblx0Y29uc3Qgb2F1dGhUb2tlbiA9IGF1dGhQZXJzaXN0ZW5jZVNlcnZpY2UuZ2V0UGVyc2lzdGVkVG9rZW4oKVxuXHRpZiAoIW9hdXRoVG9rZW4/LlsnLmV4cGlyZXMnXSkge1xuXHRcdHJldHVybiAwXG5cdH1cblx0Y29uc3Qgc2Vjb25kc1JlbWFpbmluZyA9IG1vbWVudChvYXV0aFRva2VuWycuZXhwaXJlcyddKS5kaWZmKG1vbWVudChub3dVdGMpLCAnc2Vjb25kcycsIHRydWUpXG5cdC8vIHJvdW5kIHVwIHJlbWFpbmluZyBzZWNvbmRzLCBpbiBjYXNlIHRoZSBkaWZmIGNvbnRhaW5zIG1pbGxpc2Vjb25kc1xuXHRyZXR1cm4gTWF0aC5jZWlsKE1hdGgubWF4KHNlY29uZHNSZW1haW5pbmcsIDApKVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsY0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsc0JBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGNBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLEtBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQUVPLE1BQU1NLGNBQWMsR0FBRyxTQUFBQSxDQUM3QkMsS0FBeUI7RUFBQSxJQUN6QkMsTUFBTSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxJQUFBRyxxQkFBZSxFQUFDLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7RUFBQSxPQUNmLENBQUMsQ0FBQ04sS0FBSyxJQUFJLENBQUMsQ0FBQ0EsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUFPLDJCQUFxQixFQUFDUCxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUVDLE1BQU0sQ0FBQztBQUFBO0FBQUFPLE9BQUEsQ0FBQVQsY0FBQSxHQUFBQSxjQUFBO0FBRXJHLE1BQU1VLGtCQUFrQixHQUFHLFNBQUFBLENBQ2pDVCxLQUF5QjtFQUFBLElBQ3pCQyxNQUFNLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLElBQUFHLHFCQUFlLEVBQUMsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQztFQUFBLE9BRXhDLENBQUMsQ0FBQ04sS0FBSyxJQUNQLENBQUMsQ0FBQ0EsS0FBSyxDQUFDVSxhQUFhLElBQ3JCLENBQUMsQ0FBQ1YsS0FBSyxDQUFDLHdCQUF3QixDQUFDLElBQ2pDLElBQUFXLHFCQUFlLEVBQUNYLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFQyxNQUFNLENBQUM7QUFBQTs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBTyxPQUFBLENBQUFDLGtCQUFBLEdBQUFBLGtCQUFBO0FBS08sTUFBTUcscUNBQXFDLEdBQUdBLENBQUEsS0FBTTtFQUMxRCxNQUFNQyxTQUFTLEdBQUcsSUFBQUMsMkJBQVksRUFBQyxDQUFDO0VBQ2hDLE1BQU1DLFFBQVEsR0FBR0MsNEJBQWEsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7RUFDNUMsSUFBSSxDQUFDLElBQUFDLG9CQUFhLEVBQUMsQ0FBQyxJQUFJLENBQUNILFFBQVEsQ0FBQ0ksSUFBSSxDQUFDQyxRQUFRLENBQUNQLFNBQVMsQ0FBQ1EsV0FBVyxDQUFDLEVBQUUsT0FBT2pCLFNBQVM7RUFDeEYsTUFBTWtCLE9BQU8sR0FBR0MsNENBQXFCLENBQUNDLGlCQUFpQixDQUFDLENBQUM7RUFDekQsTUFBTUMsVUFBVSxHQUFHLHdDQUF3QztFQUMzRCxNQUFNQyxRQUFRLEdBQUcsR0FBR0QsVUFBVSxrQkFBa0JILE9BQU8sRUFBRTtFQUN6RCxNQUFNSyxTQUFTLEdBQUcsR0FBR0YsVUFBVSxtQkFBbUJILE9BQU8sRUFBRTtFQUMzRCxPQUFPO0lBQUVJLFFBQVE7SUFBRUM7RUFBVSxDQUFDO0FBQy9CLENBQUM7QUFBQW5CLE9BQUEsQ0FBQUkscUNBQUEsR0FBQUEscUNBQUE7QUFFTSxNQUFNZ0IsOEJBQThCLEdBQUcsU0FBQUEsQ0FDN0NDLHNCQUE4QyxFQUUxQztFQUFBLElBREo1QixNQUFNLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLElBQUFHLHFCQUFlLEVBQUMsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQztFQUV4QyxNQUFNd0IsVUFBVSxHQUFHRCxzQkFBc0IsQ0FBQ0UsaUJBQWlCLENBQUMsQ0FBQztFQUM3RCxJQUFJLENBQUNELFVBQVUsR0FBRyxVQUFVLENBQUMsRUFBRTtJQUM5QixPQUFPLENBQUM7RUFDVDtFQUNBLE1BQU1FLGdCQUFnQixHQUFHLElBQUFDLGVBQU0sRUFBQ0gsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUNJLElBQUksQ0FBQyxJQUFBRCxlQUFNLEVBQUNoQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDO0VBQzdGO0VBQ0EsT0FBT2tDLElBQUksQ0FBQ0MsSUFBSSxDQUFDRCxJQUFJLENBQUNFLEdBQUcsQ0FBQ0wsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUFBeEIsT0FBQSxDQUFBb0IsOEJBQUEsR0FBQUEsOEJBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbW9tZW50IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfY29uZmlndXJhdGlvbiIsIl93aW5kb3dTZXJ2aWNlIiwiX2RhdGUiLCJfc2hhcmQiLCJfdXJsIiwiaXNUb2tlbkV4cGlyZWQiLCJ0b2tlbiIsIm5vd1V0YyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImdldFNlcnZlck5vd1V0YyIsInRvSVNPU3RyaW5nIiwiaXNOb3dFcXVhbE9yQWZ0ZXJEYXRlIiwiZXhwb3J0cyIsImlzVG9rZW5SZWZyZXNoYWJsZSIsInJlZnJlc2hfdG9rZW4iLCJpc05vd0JlZm9yZURhdGUiLCJnZXRQdXJkdWVJZGVudGl0eVByb3ZpZGVyRnJvbUxvY2F0aW9uIiwiYXBwQ29uZmlnIiwiZ2V0QXBwQ29uZmlnIiwibG9jYXRpb24iLCJ3aW5kb3dTZXJ2aWNlIiwiZ2V0TG9jYXRpb24iLCJpc1B1cmR1ZVNoYXJkIiwiaG9zdCIsImluY2x1ZGVzIiwiUk9PVF9ET01BSU4iLCJ3ZWJVcmwiLCJwcm90b2NvbCIsImxvZ2luVXJsIiwiZ2V0QXBpVXJsIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwibG9nb3V0VXJsIiwiY2FsY3VsYXRlVG9rZW5TZWNvbmRzUmVtYWluaW5nIiwiYXV0aFBlcnNpc3RlbmNlU2VydmljZSIsIm9hdXRoVG9rZW4iLCJnZXRQZXJzaXN0ZWRUb2tlbiIsInNlY29uZHNSZW1haW5pbmciLCJtb21lbnQiLCJkaWZmIiwiTWF0aCIsImNlaWwiLCJtYXgiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYXV0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCdcbmltcG9ydCB7IGdldEFwcENvbmZpZyB9IGZyb20gJy4uL2NvbnN0YW50cy9jb25maWd1cmF0aW9uJ1xuaW1wb3J0IHsgd2luZG93U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3dpbmRvd1NlcnZpY2UnXG5pbXBvcnQgeyBBdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLCBJZGVudGl0eVByb3ZpZGVyLCBPQXV0aFRva2VuLCBPQXV0aFRva2VuUmVzcG9uc2UgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IGdldFNlcnZlck5vd1V0YywgaXNOb3dCZWZvcmVEYXRlLCBpc05vd0VxdWFsT3JBZnRlckRhdGUgfSBmcm9tICcuL2RhdGUnXG5pbXBvcnQgeyBpc1B1cmR1ZVNoYXJkIH0gZnJvbSAnLi9zaGFyZCdcbmltcG9ydCB7IGdldEFwaVVybCB9IGZyb20gJy4vdXJsJ1xuXG5leHBvcnQgY29uc3QgaXNUb2tlbkV4cGlyZWQgPSAoXG5cdHRva2VuOiBPQXV0aFRva2VuUmVzcG9uc2UsXG5cdG5vd1V0YyA9IGdldFNlcnZlck5vd1V0YygpLnRvSVNPU3RyaW5nKClcbik6IHRva2VuIGlzIE9BdXRoVG9rZW4gPT4gISF0b2tlbiAmJiAhIXRva2VuWycuZXhwaXJlcyddICYmIGlzTm93RXF1YWxPckFmdGVyRGF0ZSh0b2tlblsnLmV4cGlyZXMnXSwgbm93VXRjKVxuXG5leHBvcnQgY29uc3QgaXNUb2tlblJlZnJlc2hhYmxlID0gKFxuXHR0b2tlbjogT0F1dGhUb2tlblJlc3BvbnNlLFxuXHRub3dVdGMgPSBnZXRTZXJ2ZXJOb3dVdGMoKS50b0lTT1N0cmluZygpXG4pOiB0b2tlbiBpcyBPQXV0aFRva2VuID0+XG5cdCEhdG9rZW4gJiZcblx0ISF0b2tlbi5yZWZyZXNoX3Rva2VuICYmXG5cdCEhdG9rZW5bJy5yZWZyZXNoX3Rva2VuX2V4cGlyZXMnXSAmJlxuXHRpc05vd0JlZm9yZURhdGUodG9rZW5bJy5yZWZyZXNoX3Rva2VuX2V4cGlyZXMnXSwgbm93VXRjKVxuXG4vKipcbiAqIElmIG9uIHRoZSBwdXJkdWUgc2hhcmQgb2YgdGhlIGFwcCdzIHJvb3QgZG9tYWluLFxuICogcmV0dXJucyBhIGJhcmVib25lcyBpZGVudGl0eSBwcm92aWRlciB0byB1c2UgZm9yIGF1dG8tbG9naW4sXG4gKiBvdGhlcndpc2UgcmV0dXJucyBgdW5kZWZpbmVkYC5cbiAqL1xuZXhwb3J0IGNvbnN0IGdldFB1cmR1ZUlkZW50aXR5UHJvdmlkZXJGcm9tTG9jYXRpb24gPSAoKSA9PiB7XG5cdGNvbnN0IGFwcENvbmZpZyA9IGdldEFwcENvbmZpZygpXG5cdGNvbnN0IGxvY2F0aW9uID0gd2luZG93U2VydmljZS5nZXRMb2NhdGlvbigpXG5cdGlmICghaXNQdXJkdWVTaGFyZCgpIHx8ICFsb2NhdGlvbi5ob3N0LmluY2x1ZGVzKGFwcENvbmZpZy5ST09UX0RPTUFJTikpIHJldHVybiB1bmRlZmluZWRcblx0Y29uc3Qgd2ViVXJsID0gYCR7bG9jYXRpb24ucHJvdG9jb2x9Ly8ke2xvY2F0aW9uLmhvc3R9YFxuXHRjb25zdCBsb2dpblVybCA9IGAke2dldEFwaVVybCgpfS9hcGkvYWNjb3VudC9hdXRob3JpemU/cmV0dXJuVXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHdlYlVybCl9YFxuXHRjb25zdCBsb2dvdXRVcmwgPSB3ZWJVcmxcblx0cmV0dXJuIHsgbG9naW5VcmwsIGxvZ291dFVybCB9IGFzIElkZW50aXR5UHJvdmlkZXJcbn1cblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZVRva2VuU2Vjb25kc1JlbWFpbmluZyA9IChcblx0YXV0aFBlcnNpc3RlbmNlU2VydmljZTogQXV0aFBlcnNpc3RlbmNlU2VydmljZSxcblx0bm93VXRjID0gZ2V0U2VydmVyTm93VXRjKCkudG9JU09TdHJpbmcoKVxuKSA9PiB7XG5cdGNvbnN0IG9hdXRoVG9rZW4gPSBhdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLmdldFBlcnNpc3RlZFRva2VuKClcblx0aWYgKCFvYXV0aFRva2VuPy5bJy5leHBpcmVzJ10pIHtcblx0XHRyZXR1cm4gMFxuXHR9XG5cdGNvbnN0IHNlY29uZHNSZW1haW5pbmcgPSBtb21lbnQob2F1dGhUb2tlblsnLmV4cGlyZXMnXSkuZGlmZihtb21lbnQobm93VXRjKSwgJ3NlY29uZHMnLCB0cnVlKVxuXHQvLyByb3VuZCB1cCByZW1haW5pbmcgc2Vjb25kcywgaW4gY2FzZSB0aGUgZGlmZiBjb250YWlucyBtaWxsaXNlY29uZHNcblx0cmV0dXJuIE1hdGguY2VpbChNYXRoLm1heChzZWNvbmRzUmVtYWluaW5nLCAwKSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLElBQUEsR0FBQUwsT0FBQTtBQUVPLE1BQU1NLGNBQWMsR0FBRyxTQUFBQSxDQUM3QkMsS0FBeUI7RUFBQSxJQUN6QkMsTUFBTSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxJQUFBRyxxQkFBZSxFQUFDLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7RUFBQSxPQUNmLENBQUMsQ0FBQ04sS0FBSyxJQUFJLENBQUMsQ0FBQ0EsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUFPLDJCQUFxQixFQUFDUCxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUVDLE1BQU0sQ0FBQztBQUFBO0FBQUFPLE9BQUEsQ0FBQVQsY0FBQSxHQUFBQSxjQUFBO0FBRXJHLE1BQU1VLGtCQUFrQixHQUFHLFNBQUFBLENBQ2pDVCxLQUF5QjtFQUFBLElBQ3pCQyxNQUFNLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLElBQUFHLHFCQUFlLEVBQUMsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQztFQUFBLE9BRXhDLENBQUMsQ0FBQ04sS0FBSyxJQUNQLENBQUMsQ0FBQ0EsS0FBSyxDQUFDVSxhQUFhLElBQ3JCLENBQUMsQ0FBQ1YsS0FBSyxDQUFDLHdCQUF3QixDQUFDLElBQ2pDLElBQUFXLHFCQUFlLEVBQUNYLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFQyxNQUFNLENBQUM7QUFBQTs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBTyxPQUFBLENBQUFDLGtCQUFBLEdBQUFBLGtCQUFBO0FBS08sTUFBTUcscUNBQXFDLEdBQUdBLENBQUEsS0FBTTtFQUMxRCxNQUFNQyxTQUFTLEdBQUcsSUFBQUMsMkJBQVksRUFBQyxDQUFDO0VBQ2hDLE1BQU1DLFFBQVEsR0FBR0MsNEJBQWEsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7RUFDNUMsSUFBSSxDQUFDLElBQUFDLG9CQUFhLEVBQUMsQ0FBQyxJQUFJLENBQUNILFFBQVEsQ0FBQ0ksSUFBSSxDQUFDQyxRQUFRLENBQUNQLFNBQVMsQ0FBQ1EsV0FBVyxDQUFDLEVBQUUsT0FBT2pCLFNBQVM7RUFDeEYsTUFBTWtCLE1BQU0sR0FBRyxHQUFHUCxRQUFRLENBQUNRLFFBQVEsS0FBS1IsUUFBUSxDQUFDSSxJQUFJLEVBQUU7RUFDdkQsTUFBTUssUUFBUSxHQUFHLEdBQUcsSUFBQUMsY0FBUyxFQUFDLENBQUMsb0NBQW9DQyxrQkFBa0IsQ0FBQ0osTUFBTSxDQUFDLEVBQUU7RUFDL0YsTUFBTUssU0FBUyxHQUFHTCxNQUFNO0VBQ3hCLE9BQU87SUFBRUUsUUFBUTtJQUFFRztFQUFVLENBQUM7QUFDL0IsQ0FBQztBQUFBbkIsT0FBQSxDQUFBSSxxQ0FBQSxHQUFBQSxxQ0FBQTtBQUVNLE1BQU1nQiw4QkFBOEIsR0FBRyxTQUFBQSxDQUM3Q0Msc0JBQThDLEVBRTFDO0VBQUEsSUFESjVCLE1BQU0sR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsSUFBQUcscUJBQWUsRUFBQyxDQUFDLENBQUNDLFdBQVcsQ0FBQyxDQUFDO0VBRXhDLE1BQU13QixVQUFVLEdBQUdELHNCQUFzQixDQUFDRSxpQkFBaUIsQ0FBQyxDQUFDO0VBQzdELElBQUksQ0FBQ0QsVUFBVSxHQUFHLFVBQVUsQ0FBQyxFQUFFO0lBQzlCLE9BQU8sQ0FBQztFQUNUO0VBQ0EsTUFBTUUsZ0JBQWdCLEdBQUcsSUFBQUMsZUFBTSxFQUFDSCxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQ0ksSUFBSSxDQUFDLElBQUFELGVBQU0sRUFBQ2hDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUM7RUFDN0Y7RUFDQSxPQUFPa0MsSUFBSSxDQUFDQyxJQUFJLENBQUNELElBQUksQ0FBQ0UsR0FBRyxDQUFDTCxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBQUF4QixPQUFBLENBQUFvQiw4QkFBQSxHQUFBQSw4QkFBQSIsImlnbm9yZUxpc3QiOltdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "studiokit-scaffolding-js",
3
- "version": "7.7.3",
3
+ "version": "7.8.0-next.1.2",
4
4
  "description": "Common scaffolding for Studio apps at Purdue",
5
5
  "repository": "https://gitlab.com/purdue-informatics/studiokit/studiokit-scaffolding-js",
6
6
  "license": "MIT",
@@ -1,2 +0,0 @@
1
- import { TicketProviderService } from '../types';
2
- export declare const ticketProviderService: TicketProviderService;
@@ -1,33 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ticketProviderService = void 0;
7
- var _queryString = require("query-string");
8
- var _windowService = require("./windowService");
9
- const ticketProviderService = exports.ticketProviderService = {
10
- getTicket: () => {
11
- const location = _windowService.windowService.getLocation();
12
- return (0, _queryString.parse)(location.search).ticket;
13
- },
14
- getAppServiceName: () => {
15
- const location = _windowService.windowService.getLocation();
16
- return `${location.protocol}//${location.host}/`;
17
- },
18
- removeTicket: () => {
19
- const location = _windowService.windowService.getLocation();
20
- const history = _windowService.windowService.getHistory();
21
- const parsedSearch = (0, _queryString.parse)(location.search);
22
- const {
23
- ticket,
24
- ...newSearch
25
- } = parsedSearch;
26
- let newSearchString = (0, _queryString.stringify)(newSearch);
27
- if (newSearchString) {
28
- newSearchString = `?${newSearchString}`;
29
- }
30
- history.pushState('', '', `${location.protocol}//${location.host}${location.pathname}${newSearchString}`);
31
- }
32
- };
33
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcXVlcnlTdHJpbmciLCJyZXF1aXJlIiwiX3dpbmRvd1NlcnZpY2UiLCJ0aWNrZXRQcm92aWRlclNlcnZpY2UiLCJleHBvcnRzIiwiZ2V0VGlja2V0IiwibG9jYXRpb24iLCJ3aW5kb3dTZXJ2aWNlIiwiZ2V0TG9jYXRpb24iLCJwYXJzZSIsInNlYXJjaCIsInRpY2tldCIsImdldEFwcFNlcnZpY2VOYW1lIiwicHJvdG9jb2wiLCJob3N0IiwicmVtb3ZlVGlja2V0IiwiaGlzdG9yeSIsImdldEhpc3RvcnkiLCJwYXJzZWRTZWFyY2giLCJuZXdTZWFyY2giLCJuZXdTZWFyY2hTdHJpbmciLCJzdHJpbmdpZnkiLCJwdXNoU3RhdGUiLCJwYXRobmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy90aWNrZXRQcm92aWRlclNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2UsIHN0cmluZ2lmeSB9IGZyb20gJ3F1ZXJ5LXN0cmluZydcbmltcG9ydCB7IFRpY2tldFByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgd2luZG93U2VydmljZSB9IGZyb20gJy4vd2luZG93U2VydmljZSdcblxuZXhwb3J0IGNvbnN0IHRpY2tldFByb3ZpZGVyU2VydmljZTogVGlja2V0UHJvdmlkZXJTZXJ2aWNlID0ge1xuXHRnZXRUaWNrZXQ6ICgpID0+IHtcblx0XHRjb25zdCBsb2NhdGlvbiA9IHdpbmRvd1NlcnZpY2UuZ2V0TG9jYXRpb24oKVxuXHRcdHJldHVybiBwYXJzZShsb2NhdGlvbi5zZWFyY2gpLnRpY2tldCBhcyBzdHJpbmdcblx0fSxcblx0Z2V0QXBwU2VydmljZU5hbWU6ICgpID0+IHtcblx0XHRjb25zdCBsb2NhdGlvbiA9IHdpbmRvd1NlcnZpY2UuZ2V0TG9jYXRpb24oKVxuXHRcdHJldHVybiBgJHtsb2NhdGlvbi5wcm90b2NvbH0vLyR7bG9jYXRpb24uaG9zdH0vYFxuXHR9LFxuXHRyZW1vdmVUaWNrZXQ6ICgpID0+IHtcblx0XHRjb25zdCBsb2NhdGlvbiA9IHdpbmRvd1NlcnZpY2UuZ2V0TG9jYXRpb24oKVxuXHRcdGNvbnN0IGhpc3RvcnkgPSB3aW5kb3dTZXJ2aWNlLmdldEhpc3RvcnkoKVxuXHRcdGNvbnN0IHBhcnNlZFNlYXJjaCA9IHBhcnNlKGxvY2F0aW9uLnNlYXJjaClcblx0XHRjb25zdCB7IHRpY2tldCwgLi4ubmV3U2VhcmNoIH0gPSBwYXJzZWRTZWFyY2hcblx0XHRsZXQgbmV3U2VhcmNoU3RyaW5nID0gc3RyaW5naWZ5KG5ld1NlYXJjaClcblx0XHRpZiAobmV3U2VhcmNoU3RyaW5nKSB7XG5cdFx0XHRuZXdTZWFyY2hTdHJpbmcgPSBgPyR7bmV3U2VhcmNoU3RyaW5nfWBcblx0XHR9XG5cdFx0aGlzdG9yeS5wdXNoU3RhdGUoJycsICcnLCBgJHtsb2NhdGlvbi5wcm90b2NvbH0vLyR7bG9jYXRpb24uaG9zdH0ke2xvY2F0aW9uLnBhdGhuYW1lfSR7bmV3U2VhcmNoU3RyaW5nfWApXG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsWUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsY0FBQSxHQUFBRCxPQUFBO0FBRU8sTUFBTUUscUJBQTRDLEdBQUFDLE9BQUEsQ0FBQUQscUJBQUEsR0FBRztFQUMzREUsU0FBUyxFQUFFQSxDQUFBLEtBQU07SUFDaEIsTUFBTUMsUUFBUSxHQUFHQyw0QkFBYSxDQUFDQyxXQUFXLENBQUMsQ0FBQztJQUM1QyxPQUFPLElBQUFDLGtCQUFLLEVBQUNILFFBQVEsQ0FBQ0ksTUFBTSxDQUFDLENBQUNDLE1BQU07RUFDckMsQ0FBQztFQUNEQyxpQkFBaUIsRUFBRUEsQ0FBQSxLQUFNO0lBQ3hCLE1BQU1OLFFBQVEsR0FBR0MsNEJBQWEsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7SUFDNUMsT0FBTyxHQUFHRixRQUFRLENBQUNPLFFBQVEsS0FBS1AsUUFBUSxDQUFDUSxJQUFJLEdBQUc7RUFDakQsQ0FBQztFQUNEQyxZQUFZLEVBQUVBLENBQUEsS0FBTTtJQUNuQixNQUFNVCxRQUFRLEdBQUdDLDRCQUFhLENBQUNDLFdBQVcsQ0FBQyxDQUFDO0lBQzVDLE1BQU1RLE9BQU8sR0FBR1QsNEJBQWEsQ0FBQ1UsVUFBVSxDQUFDLENBQUM7SUFDMUMsTUFBTUMsWUFBWSxHQUFHLElBQUFULGtCQUFLLEVBQUNILFFBQVEsQ0FBQ0ksTUFBTSxDQUFDO0lBQzNDLE1BQU07TUFBRUMsTUFBTTtNQUFFLEdBQUdRO0lBQVUsQ0FBQyxHQUFHRCxZQUFZO0lBQzdDLElBQUlFLGVBQWUsR0FBRyxJQUFBQyxzQkFBUyxFQUFDRixTQUFTLENBQUM7SUFDMUMsSUFBSUMsZUFBZSxFQUFFO01BQ3BCQSxlQUFlLEdBQUcsSUFBSUEsZUFBZSxFQUFFO0lBQ3hDO0lBQ0FKLE9BQU8sQ0FBQ00sU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBR2hCLFFBQVEsQ0FBQ08sUUFBUSxLQUFLUCxRQUFRLENBQUNRLElBQUksR0FBR1IsUUFBUSxDQUFDaUIsUUFBUSxHQUFHSCxlQUFlLEVBQUUsQ0FBQztFQUMxRztBQUNELENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,4 +0,0 @@
1
- export interface CasV1LoginRequestBody {
2
- username: string;
3
- password: string;
4
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2F1dGgvQ2FzVjFMb2dpblJlcXVlc3RCb2R5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2FzVjFMb2dpblJlcXVlc3RCb2R5IHtcblx0dXNlcm5hbWU6IHN0cmluZ1xuXHRwYXNzd29yZDogc3RyaW5nXG59XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,5 +0,0 @@
1
- export interface TicketProviderService {
2
- getTicket(): string | undefined;
3
- getAppServiceName(): string | undefined;
4
- removeTicket(): void;
5
- }
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL2F1dGgvVGlja2V0UHJvdmlkZXJTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVGlja2V0UHJvdmlkZXJTZXJ2aWNlIHtcblx0Z2V0VGlja2V0KCk6IHN0cmluZyB8IHVuZGVmaW5lZFxuXHRnZXRBcHBTZXJ2aWNlTmFtZSgpOiBzdHJpbmcgfCB1bmRlZmluZWRcblx0cmVtb3ZlVGlja2V0KCk6IHZvaWRcbn1cbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==